151 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Text;
 | |
| using System.Windows.Forms;
 | |
| using PTServiceClient;
 | |
| 
 | |
| namespace PTServiceClient
 | |
| {
 | |
|   public partial class MainForm : Form
 | |
|   {
 | |
|     public MainForm()
 | |
|     {
 | |
|       InitializeComponent();
 | |
|     }
 | |
| 
 | |
|     private void MainForm_Load(object sender, EventArgs e)
 | |
|     {
 | |
|       using (PTService.PTService svc = new PTService.PTService())
 | |
|       {
 | |
|         this.ProjectDataBindingSource.DataSource = 
 | |
|           svc.GetProjectList();
 | |
|         this.ResourceDataBindingSource.DataSource = 
 | |
|           svc.GetResourceList();
 | |
|         this.RoleDataBindingSource.DataSource = 
 | |
|           svc.GetRoles();
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     private void ProjectDataDataGridView_SelectionChanged(object sender, EventArgs e)
 | |
|     {
 | |
|       if (this.ProjectDataDataGridView.SelectedRows.Count > 0)
 | |
|       {
 | |
|         string projectId = this.ProjectDataDataGridView.SelectedRows[0].Cells[0].Value.ToString();
 | |
|         if (projectId != this.IdLabel1.Text)
 | |
|         {
 | |
|           using (PTService.PTService svc = new PTService.PTService())
 | |
|           {
 | |
|             PTService.ProjectRequest request = new PTServiceClient.PTService.ProjectRequest();
 | |
|             request.Id = new Guid(projectId);
 | |
|             this.ProjectDetailBindingSource.DataSource = svc.GetProject(request);
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     private void SaveProjectButton_Click(object sender, EventArgs e)
 | |
|     {
 | |
|       using (PTService.PTService svc = new PTService.PTService())
 | |
|       {
 | |
|         SetCredentials(svc);
 | |
|         Guid id = new Guid(this.IdLabel1.Text);
 | |
|         if (Guid.Empty.Equals(id))
 | |
|         {
 | |
|           // adding
 | |
|           this.ProjectDetailBindingSource.DataSource =
 | |
|             svc.AddProject(
 | |
|             this.NameTextBox.Text,
 | |
|             this.StartedTextBox.Text,
 | |
|             this.EndedTextBox.Text,
 | |
|             this.DescriptionTextBox.Text);
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|           // updating
 | |
|           this.ProjectDetailBindingSource.DataSource =
 | |
|             svc.EditProject(new Guid(this.IdLabel1.Text),
 | |
|             this.NameTextBox.Text,
 | |
|             this.StartedTextBox.Text,
 | |
|             this.EndedTextBox.Text,
 | |
|             this.DescriptionTextBox.Text);
 | |
|         }
 | |
|         // refresh project list
 | |
|         this.ProjectDataBindingSource.DataSource = svc.GetProjectList();
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     private void ClearProjectButton_Click(object sender, EventArgs e)
 | |
|     {
 | |
|       this.ProjectDetailBindingSource.Clear();
 | |
|       this.ProjectDetailBindingSource.AddNew();
 | |
|     }
 | |
| 
 | |
|     private void AssignToProjectButton_Click(
 | |
|       object sender, EventArgs e)
 | |
|     {
 | |
|       if (this.ResourceIdLabel.Text.Trim().Length == 0)
 | |
|         MessageBox.Show(
 | |
|           "You must select a resource first", "Assign resource",
 | |
|           MessageBoxButtons.OK, MessageBoxIcon.Information);
 | |
|       if (this.ProjectIdLabel.Text.Trim().Length == 0 || 
 | |
|         Guid.Empty.Equals(new Guid(this.ProjectIdLabel.Text)))
 | |
|         MessageBox.Show(
 | |
|           "You must select a project first", "Assign resource",
 | |
|           MessageBoxButtons.OK, MessageBoxIcon.Information);
 | |
|       using (PTService.PTService svc = new PTService.PTService())
 | |
|       {
 | |
|         SetCredentials(svc);
 | |
|         try
 | |
|         {
 | |
|           // do the assignment
 | |
|           svc.AssignResource(
 | |
|             int.Parse(this.ResourceIdLabel.Text), 
 | |
|             new Guid(this.ProjectIdLabel.Text));
 | |
|           // refresh the detail view
 | |
|           PTService.ProjectRequest request = 
 | |
|             new PTServiceClient.PTService.ProjectRequest();
 | |
|           request.Id = new Guid(this.ProjectIdLabel.Text);
 | |
|           this.ProjectDetailBindingSource.DataSource = 
 | |
|             svc.GetProject(request);
 | |
|         }
 | |
|         catch (Exception ex)
 | |
|         {
 | |
|           MessageBox.Show(ex.Message, "Assign resource",
 | |
|             MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     private void ResourceDataDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 | |
|     {
 | |
|       ResourceName dlg = new ResourceName(this.ResourceDataDataGridView.SelectedRows[0].Cells[0].Value.ToString(),
 | |
|         this.ResourceDataDataGridView.SelectedRows[0].Cells[1].Value.ToString());
 | |
|       if (dlg.ShowDialog() == DialogResult.OK)
 | |
|       {
 | |
|         using (PTService.PTService svc = new PTService.PTService())
 | |
|         {
 | |
|           SetCredentials(svc);
 | |
|           // save the changes
 | |
|           int resourceId = int.Parse(dlg.IdLabel1.Text);
 | |
|           string firstName = dlg.FirstNameTextBox.Text;
 | |
|           string lastName = dlg.LastNameTextBox.Text;
 | |
|           svc.ChangeResourceName(resourceId, firstName, lastName);
 | |
|           // refresh the resource list.
 | |
|           this.ResourceDataBindingSource.DataSource = svc.GetResourceList();
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     private void SetCredentials(PTService.PTService svc)
 | |
|     {
 | |
|       PTService.CslaCredentials credentials = 
 | |
|         new PTService.CslaCredentials();
 | |
|       credentials.Username = usernameTextBox.Text;
 | |
|       credentials.Password = passwordTextBox.Text;
 | |
|       svc.CslaCredentialsValue = credentials;
 | |
|     }
 | |
|   }
 | |
| } |