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;
}
}
}