Лабораторная работа №1
This commit is contained in:
parent
0c9c6f8496
commit
e422a50929
@ -6,12 +6,15 @@ public class Client
|
||||
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
|
||||
public static Client CreateEntity(int id, string name)
|
||||
public string LegalForm { get; private set; } = string.Empty;
|
||||
|
||||
public static Client CreateEntity(int id, string name, string legalForm)
|
||||
{
|
||||
return new Client
|
||||
{
|
||||
Id = id,
|
||||
Name = name ?? string.Empty
|
||||
Name = name ?? string.Empty,
|
||||
LegalForm = legalForm ?? string.Empty
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -12,16 +12,16 @@ public class Contract
|
||||
|
||||
public int Amount { get; private set; }
|
||||
|
||||
public DateTime Deadline { get; private set; }
|
||||
public DateTime StartDate { get; private set; }
|
||||
|
||||
public Status Status { get; private set; }
|
||||
public DateTime Deadline { get; private set; }
|
||||
|
||||
public ContractType ContractType { get; private set; }
|
||||
|
||||
public IEnumerable<Service> Services { get; private set; } = [];
|
||||
public IEnumerable<ServiceContract> ServiceContracts { get; private set; } = [];
|
||||
|
||||
public static Contract CreateEntity(int id, int clientId, int contractorId, int amount,
|
||||
DateTime deadline, Status status, ContractType contractType, IEnumerable<Service> services)
|
||||
DateTime deadline, ContractType contractType, IEnumerable<ServiceContract> serviceContracts)
|
||||
{
|
||||
return new Contract
|
||||
{
|
||||
@ -29,10 +29,10 @@ public class Contract
|
||||
ClientId = clientId,
|
||||
ContractorId = contractorId,
|
||||
Amount = amount,
|
||||
StartDate = DateTime.Now,
|
||||
Deadline = deadline,
|
||||
Status = status,
|
||||
ContractType = contractType,
|
||||
Services = services
|
||||
ServiceContracts = serviceContracts
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -6,12 +6,15 @@ public class Contractor
|
||||
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
|
||||
public static Contractor CreateEntity(int id, string name)
|
||||
public string Surname { get; private set; } = string.Empty;
|
||||
|
||||
public static Contractor CreateEntity(int id, string name, string surname)
|
||||
{
|
||||
return new Contractor
|
||||
{
|
||||
Id = id,
|
||||
Name = name ?? string.Empty
|
||||
Name = name ?? string.Empty,
|
||||
Surname = surname ?? string.Empty
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,12 @@
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Entities.Enums;
|
||||
|
||||
public enum VacationType
|
||||
{
|
||||
None = 0,
|
||||
|
||||
Paid = 1,
|
||||
|
||||
NonPaid = 2,
|
||||
|
||||
Maternity = 3
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
namespace OISEbd_22_Vasin_E.D._It_CompanyTP.Entities;
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Entities;
|
||||
|
||||
public class ServiceContract
|
||||
{
|
||||
@ -6,15 +6,12 @@ public class ServiceContract
|
||||
|
||||
public int ServiceId { get; private set; }
|
||||
|
||||
public int ContractId { get; private set; }
|
||||
|
||||
public static ServiceContract CreateElement(int id, int serviceId, int contractId)
|
||||
public static ServiceContract CreateElement(int id, int serviceId)
|
||||
{
|
||||
return new ServiceContract
|
||||
{
|
||||
Id = id,
|
||||
ServiceId = serviceId,
|
||||
ContractId = contractId
|
||||
ServiceId = serviceId
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,6 @@
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Entities;
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities.Enums;
|
||||
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Entities;
|
||||
|
||||
public class Vacation
|
||||
{
|
||||
@ -8,13 +10,16 @@ public class Vacation
|
||||
|
||||
public DateTime EndDate { get; private set; }
|
||||
|
||||
public static Vacation CreateEntity(int id, DateTime startDate, DateTime endDate)
|
||||
public VacationType VacationType { get; private set; }
|
||||
|
||||
public static Vacation CreateEntity(int id, DateTime startDate, DateTime endDate, VacationType vacationType)
|
||||
{
|
||||
return new Vacation
|
||||
{
|
||||
Id = id,
|
||||
StartDate = startDate,
|
||||
EndDate = endDate
|
||||
EndDate = endDate,
|
||||
VacationType = vacationType
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -32,6 +32,8 @@
|
||||
textBoxName = new TextBox();
|
||||
buttonCancel = new Button();
|
||||
buttonSave = new Button();
|
||||
textBoxLegalForm = new TextBox();
|
||||
labelLegalForm = new Label();
|
||||
SuspendLayout();
|
||||
//
|
||||
// labelName
|
||||
@ -45,14 +47,14 @@
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
textBoxName.Location = new Point(51, 12);
|
||||
textBoxName.Location = new Point(103, 12);
|
||||
textBoxName.Name = "textBoxName";
|
||||
textBoxName.Size = new Size(217, 23);
|
||||
textBoxName.Size = new Size(187, 23);
|
||||
textBoxName.TabIndex = 1;
|
||||
//
|
||||
// buttonCancel
|
||||
//
|
||||
buttonCancel.Location = new Point(151, 41);
|
||||
buttonCancel.Location = new Point(173, 77);
|
||||
buttonCancel.Name = "buttonCancel";
|
||||
buttonCancel.Size = new Size(117, 23);
|
||||
buttonCancel.TabIndex = 10;
|
||||
@ -62,7 +64,7 @@
|
||||
//
|
||||
// buttonSave
|
||||
//
|
||||
buttonSave.Location = new Point(11, 41);
|
||||
buttonSave.Location = new Point(12, 77);
|
||||
buttonSave.Name = "buttonSave";
|
||||
buttonSave.Size = new Size(117, 23);
|
||||
buttonSave.TabIndex = 9;
|
||||
@ -70,11 +72,29 @@
|
||||
buttonSave.UseVisualStyleBackColor = true;
|
||||
buttonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// textBoxLegalForm
|
||||
//
|
||||
textBoxLegalForm.Location = new Point(103, 48);
|
||||
textBoxLegalForm.Name = "textBoxLegalForm";
|
||||
textBoxLegalForm.Size = new Size(187, 23);
|
||||
textBoxLegalForm.TabIndex = 14;
|
||||
//
|
||||
// labelLegalForm
|
||||
//
|
||||
labelLegalForm.AutoSize = true;
|
||||
labelLegalForm.Location = new Point(11, 41);
|
||||
labelLegalForm.Name = "labelLegalForm";
|
||||
labelLegalForm.Size = new Size(86, 30);
|
||||
labelLegalForm.TabIndex = 13;
|
||||
labelLegalForm.Text = "Юридическая \r\nформа:";
|
||||
//
|
||||
// FormClient
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(283, 75);
|
||||
ClientSize = new Size(300, 113);
|
||||
Controls.Add(textBoxLegalForm);
|
||||
Controls.Add(labelLegalForm);
|
||||
Controls.Add(buttonCancel);
|
||||
Controls.Add(buttonSave);
|
||||
Controls.Add(textBoxName);
|
||||
@ -92,5 +112,7 @@
|
||||
private TextBox textBoxName;
|
||||
private Button buttonCancel;
|
||||
private Button buttonSave;
|
||||
private TextBox textBoxLegalForm;
|
||||
private Label labelLegalForm;
|
||||
}
|
||||
}
|
@ -22,6 +22,7 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
}
|
||||
|
||||
textBoxName.Text = client.Name;
|
||||
textBoxLegalForm.Text = client.LegalForm;
|
||||
_clientId = value;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -42,7 +43,8 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(textBoxName.Text))
|
||||
if (string.IsNullOrEmpty(textBoxName.Text) ||
|
||||
string.IsNullOrEmpty(textBoxLegalForm.Text))
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
@ -50,12 +52,12 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
if (_clientId.HasValue)
|
||||
{
|
||||
_clientRepository.UpdateClient(Client.CreateEntity(_clientId.Value,
|
||||
textBoxName.Text));
|
||||
textBoxName.Text, textBoxLegalForm.Text));
|
||||
}
|
||||
else
|
||||
{
|
||||
_clientRepository.CreateClient(Client.CreateEntity(0,
|
||||
textBoxName.Text));
|
||||
textBoxName.Text, textBoxLegalForm.Text));
|
||||
}
|
||||
|
||||
Close();
|
||||
|
@ -36,15 +36,13 @@
|
||||
comboBoxContractor = new ComboBox();
|
||||
labelDeadline = new Label();
|
||||
dateTimePickerDeadline = new DateTimePicker();
|
||||
labelStatus = new Label();
|
||||
comboBoxStatus = new ComboBox();
|
||||
checkedListBoxContractType = new CheckedListBox();
|
||||
labelContractType = new Label();
|
||||
groupBoxServices = new GroupBox();
|
||||
dataGridViewServices = new DataGridView();
|
||||
ColumnServiceName = new DataGridViewComboBoxColumn();
|
||||
buttonCancel = new Button();
|
||||
buttonSave = new Button();
|
||||
ColumnServiceName = new DataGridViewComboBoxColumn();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDownAmount).BeginInit();
|
||||
groupBoxServices.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewServices).BeginInit();
|
||||
@ -70,7 +68,9 @@
|
||||
//
|
||||
// numericUpDownAmount
|
||||
//
|
||||
numericUpDownAmount.Increment = new decimal(new int[] { 10000, 0, 0, 0 });
|
||||
numericUpDownAmount.Location = new Point(117, 70);
|
||||
numericUpDownAmount.Maximum = new decimal(new int[] { 1000000000, 0, 0, 0 });
|
||||
numericUpDownAmount.Name = "numericUpDownAmount";
|
||||
numericUpDownAmount.Size = new Size(199, 23);
|
||||
numericUpDownAmount.TabIndex = 2;
|
||||
@ -116,27 +116,10 @@
|
||||
dateTimePickerDeadline.Size = new Size(200, 23);
|
||||
dateTimePickerDeadline.TabIndex = 7;
|
||||
//
|
||||
// labelStatus
|
||||
//
|
||||
labelStatus.AutoSize = true;
|
||||
labelStatus.Location = new Point(12, 131);
|
||||
labelStatus.Name = "labelStatus";
|
||||
labelStatus.Size = new Size(46, 15);
|
||||
labelStatus.TabIndex = 8;
|
||||
labelStatus.Text = "Статус:";
|
||||
//
|
||||
// comboBoxStatus
|
||||
//
|
||||
comboBoxStatus.FormattingEnabled = true;
|
||||
comboBoxStatus.Location = new Point(117, 128);
|
||||
comboBoxStatus.Name = "comboBoxStatus";
|
||||
comboBoxStatus.Size = new Size(200, 23);
|
||||
comboBoxStatus.TabIndex = 9;
|
||||
//
|
||||
// checkedListBoxContractType
|
||||
//
|
||||
checkedListBoxContractType.FormattingEnabled = true;
|
||||
checkedListBoxContractType.Location = new Point(117, 157);
|
||||
checkedListBoxContractType.Location = new Point(117, 128);
|
||||
checkedListBoxContractType.Name = "checkedListBoxContractType";
|
||||
checkedListBoxContractType.Size = new Size(199, 58);
|
||||
checkedListBoxContractType.TabIndex = 10;
|
||||
@ -144,7 +127,7 @@
|
||||
// labelContractType
|
||||
//
|
||||
labelContractType.AutoSize = true;
|
||||
labelContractType.Location = new Point(12, 166);
|
||||
labelContractType.Location = new Point(12, 137);
|
||||
labelContractType.Name = "labelContractType";
|
||||
labelContractType.Size = new Size(89, 15);
|
||||
labelContractType.TabIndex = 11;
|
||||
@ -153,7 +136,7 @@
|
||||
// groupBoxServices
|
||||
//
|
||||
groupBoxServices.Controls.Add(dataGridViewServices);
|
||||
groupBoxServices.Location = new Point(12, 221);
|
||||
groupBoxServices.Location = new Point(12, 192);
|
||||
groupBoxServices.Name = "groupBoxServices";
|
||||
groupBoxServices.Size = new Size(305, 246);
|
||||
groupBoxServices.TabIndex = 12;
|
||||
@ -174,9 +157,17 @@
|
||||
dataGridViewServices.Size = new Size(299, 224);
|
||||
dataGridViewServices.TabIndex = 0;
|
||||
//
|
||||
// ColumnServiceName
|
||||
//
|
||||
ColumnServiceName.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
ColumnServiceName.HeaderText = "Название услуги";
|
||||
ColumnServiceName.Name = "ColumnServiceName";
|
||||
ColumnServiceName.Resizable = DataGridViewTriState.True;
|
||||
ColumnServiceName.SortMode = DataGridViewColumnSortMode.Automatic;
|
||||
//
|
||||
// buttonCancel
|
||||
//
|
||||
buttonCancel.Location = new Point(200, 470);
|
||||
buttonCancel.Location = new Point(200, 441);
|
||||
buttonCancel.Name = "buttonCancel";
|
||||
buttonCancel.Size = new Size(117, 23);
|
||||
buttonCancel.TabIndex = 14;
|
||||
@ -186,7 +177,7 @@
|
||||
//
|
||||
// buttonSave
|
||||
//
|
||||
buttonSave.Location = new Point(12, 470);
|
||||
buttonSave.Location = new Point(12, 441);
|
||||
buttonSave.Name = "buttonSave";
|
||||
buttonSave.Size = new Size(117, 23);
|
||||
buttonSave.TabIndex = 13;
|
||||
@ -194,26 +185,16 @@
|
||||
buttonSave.UseVisualStyleBackColor = true;
|
||||
buttonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// ColumnServiceName
|
||||
//
|
||||
ColumnServiceName.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||
ColumnServiceName.HeaderText = "Название услуги";
|
||||
ColumnServiceName.Name = "ColumnServiceName";
|
||||
ColumnServiceName.Resizable = DataGridViewTriState.True;
|
||||
ColumnServiceName.SortMode = DataGridViewColumnSortMode.Automatic;
|
||||
//
|
||||
// FormContract
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(332, 504);
|
||||
ClientSize = new Size(332, 474);
|
||||
Controls.Add(buttonCancel);
|
||||
Controls.Add(buttonSave);
|
||||
Controls.Add(groupBoxServices);
|
||||
Controls.Add(labelContractType);
|
||||
Controls.Add(checkedListBoxContractType);
|
||||
Controls.Add(comboBoxStatus);
|
||||
Controls.Add(labelStatus);
|
||||
Controls.Add(dateTimePickerDeadline);
|
||||
Controls.Add(labelDeadline);
|
||||
Controls.Add(comboBoxContractor);
|
||||
@ -242,8 +223,6 @@
|
||||
private ComboBox comboBoxContractor;
|
||||
private Label labelDeadline;
|
||||
private DateTimePicker dateTimePickerDeadline;
|
||||
private Label labelStatus;
|
||||
private ComboBox comboBoxStatus;
|
||||
private CheckedListBox checkedListBoxContractType;
|
||||
private Label labelContractType;
|
||||
private GroupBox groupBoxServices;
|
||||
|
@ -8,40 +8,6 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
{
|
||||
private readonly IContractRepository _contractRepository;
|
||||
|
||||
private int? _contractId;
|
||||
|
||||
public int Id
|
||||
{
|
||||
set
|
||||
{
|
||||
try
|
||||
{
|
||||
var contract = _contractRepository.ReadContractById(value);
|
||||
if (contract == null)
|
||||
{
|
||||
throw new InvalidDataException(nameof(contract));
|
||||
}
|
||||
|
||||
comboBoxClient.SelectedItem = contract.ClientId;
|
||||
comboBoxContractor.SelectedItem = contract.ContractorId;
|
||||
numericUpDownAmount.Value = contract.Amount;
|
||||
dateTimePickerDeadline.Value = contract.Deadline;
|
||||
comboBoxStatus.SelectedItem = contract.Status;
|
||||
checkedListBoxContractType.Items.Clear();
|
||||
foreach (ContractType type in Enum.GetValues(typeof(ContractType)))
|
||||
{
|
||||
checkedListBoxContractType.Items.Add(type, contract.ContractType.HasFlag(type));
|
||||
}
|
||||
_contractId = value;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public FormContract(IContractRepository contractRepository, IClientRepository clientRepository,
|
||||
IContractorRepository contractorRepository, IServiceRepository serviceRepository)
|
||||
{
|
||||
@ -64,8 +30,6 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
{
|
||||
checkedListBoxContractType.Items.Add(elem);
|
||||
}
|
||||
|
||||
comboBoxStatus.DataSource = Enum.GetValues(typeof(Status));
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
@ -75,19 +39,13 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
if (checkedListBoxContractType.CheckedItems.Count == 0 ||
|
||||
comboBoxContractor.SelectedIndex < 0 ||
|
||||
comboBoxClient.SelectedIndex < 0 ||
|
||||
comboBoxStatus.SelectedIndex < 0)
|
||||
dataGridViewServices.Rows.Count == 1)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
|
||||
if (_contractId.HasValue)
|
||||
{
|
||||
_contractRepository.UpdateContract(CreateContract(_contractId.Value));
|
||||
}
|
||||
else
|
||||
{
|
||||
_contractRepository.CreateContract(CreateContract(0));
|
||||
}
|
||||
_contractRepository.CreateContract(CreateContract(0));
|
||||
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -108,20 +66,20 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
|
||||
return Contract.CreateEntity(id, (int)comboBoxClient.SelectedValue!,
|
||||
(int)comboBoxContractor.SelectedValue!, Convert.ToInt32(numericUpDownAmount.Value),
|
||||
dateTimePickerDeadline.Value, (Status)comboBoxStatus.SelectedItem!, contractType,
|
||||
CreateListServicesFromDataGrid());
|
||||
dateTimePickerDeadline.Value, contractType,
|
||||
CreateListServiceContractsFromDataGrid());
|
||||
}
|
||||
|
||||
private List<Service> CreateListServicesFromDataGrid()
|
||||
private List<ServiceContract> CreateListServiceContractsFromDataGrid()
|
||||
{
|
||||
var list = new List<Service>();
|
||||
var list = new List<ServiceContract>();
|
||||
|
||||
foreach (DataGridViewRow row in dataGridViewServices.Rows)
|
||||
if (row.Cells["ColumnServiceName"].Value != null &&
|
||||
row.Cells["ColumnServiceDescription"].Value != null)
|
||||
if (row.Cells["ColumnServiceName"].Value != null)
|
||||
{
|
||||
list.Add(Service.CreateEntity(0, Convert.ToString(row.Cells["ColumnServiceName"].Value)!));
|
||||
list.Add(ServiceContract.CreateElement(0, Convert.ToInt32(row.Cells["ColumnServiceName"].Value)));
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
@ -32,11 +32,13 @@
|
||||
buttonSave = new Button();
|
||||
textBoxName = new TextBox();
|
||||
labelName = new Label();
|
||||
textBoxSurname = new TextBox();
|
||||
labelSurname = new Label();
|
||||
SuspendLayout();
|
||||
//
|
||||
// buttonCancel
|
||||
//
|
||||
buttonCancel.Location = new Point(150, 41);
|
||||
buttonCancel.Location = new Point(150, 70);
|
||||
buttonCancel.Name = "buttonCancel";
|
||||
buttonCancel.Size = new Size(117, 23);
|
||||
buttonCancel.TabIndex = 14;
|
||||
@ -46,7 +48,7 @@
|
||||
//
|
||||
// buttonSave
|
||||
//
|
||||
buttonSave.Location = new Point(10, 41);
|
||||
buttonSave.Location = new Point(10, 70);
|
||||
buttonSave.Name = "buttonSave";
|
||||
buttonSave.Size = new Size(117, 23);
|
||||
buttonSave.TabIndex = 13;
|
||||
@ -56,9 +58,9 @@
|
||||
//
|
||||
// textBoxName
|
||||
//
|
||||
textBoxName.Location = new Point(50, 12);
|
||||
textBoxName.Location = new Point(77, 12);
|
||||
textBoxName.Name = "textBoxName";
|
||||
textBoxName.Size = new Size(217, 23);
|
||||
textBoxName.Size = new Size(190, 23);
|
||||
textBoxName.TabIndex = 12;
|
||||
//
|
||||
// labelName
|
||||
@ -70,11 +72,29 @@
|
||||
labelName.TabIndex = 11;
|
||||
labelName.Text = "Имя:";
|
||||
//
|
||||
// textBoxSurname
|
||||
//
|
||||
textBoxSurname.Location = new Point(77, 41);
|
||||
textBoxSurname.Name = "textBoxSurname";
|
||||
textBoxSurname.Size = new Size(190, 23);
|
||||
textBoxSurname.TabIndex = 16;
|
||||
//
|
||||
// labelSurname
|
||||
//
|
||||
labelSurname.AutoSize = true;
|
||||
labelSurname.Location = new Point(10, 44);
|
||||
labelSurname.Name = "labelSurname";
|
||||
labelSurname.Size = new Size(61, 15);
|
||||
labelSurname.TabIndex = 15;
|
||||
labelSurname.Text = "Фамилия:";
|
||||
//
|
||||
// FormContractor
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(286, 79);
|
||||
ClientSize = new Size(281, 104);
|
||||
Controls.Add(textBoxSurname);
|
||||
Controls.Add(labelSurname);
|
||||
Controls.Add(buttonCancel);
|
||||
Controls.Add(buttonSave);
|
||||
Controls.Add(textBoxName);
|
||||
@ -92,5 +112,7 @@
|
||||
private Button buttonSave;
|
||||
private TextBox textBoxName;
|
||||
private Label labelName;
|
||||
private TextBox textBoxSurname;
|
||||
private Label labelSurname;
|
||||
}
|
||||
}
|
@ -19,6 +19,7 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
if (contractor == null) throw new InvalidDataException(nameof(contractor));
|
||||
|
||||
textBoxName.Text = contractor.Name;
|
||||
textBoxSurname.Text = contractor.Surname;
|
||||
_contractorId = value;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -39,18 +40,21 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(textBoxName.Text))
|
||||
if (string.IsNullOrEmpty(textBoxName.Text) ||
|
||||
string.IsNullOrEmpty(textBoxSurname.Text))
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
|
||||
if (_contractorId.HasValue)
|
||||
{
|
||||
_contractorRepository.UpdateContractor(Contractor.CreateEntity(_contractorId.Value, textBoxName.Text));
|
||||
_contractorRepository.UpdateContractor(Contractor.CreateEntity(_contractorId.Value,
|
||||
textBoxName.Text, textBoxSurname.Text));
|
||||
}
|
||||
else
|
||||
{
|
||||
_contractorRepository.CreateContractor(Contractor.CreateEntity(0, textBoxName.Text));
|
||||
_contractorRepository.CreateContractor(Contractor.CreateEntity(0,
|
||||
textBoxName.Text, textBoxSurname.Text));
|
||||
}
|
||||
|
||||
Close();
|
||||
|
@ -31,6 +31,7 @@
|
||||
dataGridViewData = new DataGridView();
|
||||
panel = new Panel();
|
||||
buttonAdd = new Button();
|
||||
buttonDel = new Button();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewData).BeginInit();
|
||||
panel.SuspendLayout();
|
||||
SuspendLayout();
|
||||
@ -55,6 +56,7 @@
|
||||
//
|
||||
// panel
|
||||
//
|
||||
panel.Controls.Add(buttonDel);
|
||||
panel.Controls.Add(buttonAdd);
|
||||
panel.Dock = DockStyle.Right;
|
||||
panel.Location = new Point(861, 0);
|
||||
@ -73,6 +75,17 @@
|
||||
buttonAdd.UseVisualStyleBackColor = true;
|
||||
buttonAdd.Click += ButtonAdd_Click;
|
||||
//
|
||||
// buttonDel
|
||||
//
|
||||
buttonDel.BackgroundImage = Properties.Resources.icon_remove;
|
||||
buttonDel.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonDel.Location = new Point(16, 108);
|
||||
buttonDel.Name = "buttonDel";
|
||||
buttonDel.Size = new Size(90, 90);
|
||||
buttonDel.TabIndex = 3;
|
||||
buttonDel.UseVisualStyleBackColor = true;
|
||||
buttonDel.Click += ButtonDel_Click;
|
||||
//
|
||||
// FormContractorVacations
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
@ -94,5 +107,6 @@
|
||||
private DataGridView dataGridViewData;
|
||||
private Panel panel;
|
||||
private Button buttonAdd;
|
||||
private Button buttonDel;
|
||||
}
|
||||
}
|
@ -13,7 +13,7 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
{
|
||||
InitializeComponent();
|
||||
_container = container ?? throw new ArgumentException(nameof(container));
|
||||
_contractorVacationRepository = contractorVacationRepository ??
|
||||
_contractorVacationRepository = contractorVacationRepository ??
|
||||
throw new ArgumentException(nameof(contractorVacationRepository));
|
||||
}
|
||||
|
||||
@ -42,6 +42,25 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonDel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
return;
|
||||
|
||||
if (MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.YesNo) != DialogResult.Yes)
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
_contractorVacationRepository.DeleteContractorVacation(findId);
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при удалении", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadList() => dataGridViewData.DataSource = _contractorVacationRepository.ReadContractorVacations();
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
|
@ -30,7 +30,6 @@
|
||||
{
|
||||
dataGridViewData = new DataGridView();
|
||||
panel = new Panel();
|
||||
buttonUpd = new Button();
|
||||
buttonAdd = new Button();
|
||||
((System.ComponentModel.ISupportInitialize)dataGridViewData).BeginInit();
|
||||
panel.SuspendLayout();
|
||||
@ -56,7 +55,6 @@
|
||||
//
|
||||
// panel
|
||||
//
|
||||
panel.Controls.Add(buttonUpd);
|
||||
panel.Controls.Add(buttonAdd);
|
||||
panel.Dock = DockStyle.Right;
|
||||
panel.Location = new Point(861, 0);
|
||||
@ -64,17 +62,6 @@
|
||||
panel.Size = new Size(123, 461);
|
||||
panel.TabIndex = 6;
|
||||
//
|
||||
// buttonUpd
|
||||
//
|
||||
buttonUpd.BackgroundImage = Properties.Resources.icon_edit;
|
||||
buttonUpd.BackgroundImageLayout = ImageLayout.Stretch;
|
||||
buttonUpd.Location = new Point(16, 108);
|
||||
buttonUpd.Name = "buttonUpd";
|
||||
buttonUpd.Size = new Size(90, 90);
|
||||
buttonUpd.TabIndex = 1;
|
||||
buttonUpd.UseVisualStyleBackColor = true;
|
||||
buttonUpd.Click += ButtonUpd_Click;
|
||||
//
|
||||
// buttonAdd
|
||||
//
|
||||
buttonAdd.BackgroundImage = Properties.Resources.icon_add;
|
||||
@ -106,7 +93,6 @@
|
||||
|
||||
private DataGridView dataGridViewData;
|
||||
private Panel panel;
|
||||
private Button buttonUpd;
|
||||
private Button buttonAdd;
|
||||
}
|
||||
}
|
@ -41,37 +41,6 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void ButtonUpd_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!TryGetIdentifierFromSelectedRow(out var findId))
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
var form = _container.Resolve<FormContract>();
|
||||
form.Id = findId;
|
||||
form.ShowDialog();
|
||||
LoadList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Ошибка при изменении", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadList() => dataGridViewData.DataSource = _contractRepository.ReadContracts();
|
||||
|
||||
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||
{
|
||||
id = 0;
|
||||
if (dataGridViewData.SelectedRows.Count < 1)
|
||||
{
|
||||
MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
id = Convert.ToInt32(dataGridViewData.SelectedRows[0].Cells["Id"].Value);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -34,6 +34,8 @@
|
||||
labelEndDate = new Label();
|
||||
buttonCancel = new Button();
|
||||
buttonSave = new Button();
|
||||
comboBoxVacationType = new ComboBox();
|
||||
labelVacationType = new Label();
|
||||
SuspendLayout();
|
||||
//
|
||||
// labelStartDate
|
||||
@ -70,7 +72,7 @@
|
||||
//
|
||||
// buttonCancel
|
||||
//
|
||||
buttonCancel.Location = new Point(178, 70);
|
||||
buttonCancel.Location = new Point(178, 99);
|
||||
buttonCancel.Name = "buttonCancel";
|
||||
buttonCancel.Size = new Size(117, 23);
|
||||
buttonCancel.TabIndex = 12;
|
||||
@ -80,7 +82,7 @@
|
||||
//
|
||||
// buttonSave
|
||||
//
|
||||
buttonSave.Location = new Point(12, 70);
|
||||
buttonSave.Location = new Point(15, 99);
|
||||
buttonSave.Name = "buttonSave";
|
||||
buttonSave.Size = new Size(117, 23);
|
||||
buttonSave.TabIndex = 11;
|
||||
@ -88,11 +90,30 @@
|
||||
buttonSave.UseVisualStyleBackColor = true;
|
||||
buttonSave.Click += ButtonSave_Click;
|
||||
//
|
||||
// comboBoxVacationType
|
||||
//
|
||||
comboBoxVacationType.FormattingEnabled = true;
|
||||
comboBoxVacationType.Location = new Point(95, 70);
|
||||
comboBoxVacationType.Name = "comboBoxVacationType";
|
||||
comboBoxVacationType.Size = new Size(200, 23);
|
||||
comboBoxVacationType.TabIndex = 13;
|
||||
//
|
||||
// labelVacationType
|
||||
//
|
||||
labelVacationType.AutoSize = true;
|
||||
labelVacationType.Location = new Point(12, 73);
|
||||
labelVacationType.Name = "labelVacationType";
|
||||
labelVacationType.Size = new Size(77, 15);
|
||||
labelVacationType.TabIndex = 14;
|
||||
labelVacationType.Text = "Тип отпуска:";
|
||||
//
|
||||
// FormVacation
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(310, 102);
|
||||
ClientSize = new Size(310, 136);
|
||||
Controls.Add(labelVacationType);
|
||||
Controls.Add(comboBoxVacationType);
|
||||
Controls.Add(buttonCancel);
|
||||
Controls.Add(buttonSave);
|
||||
Controls.Add(dateTimePickerEndDate);
|
||||
@ -114,5 +135,7 @@
|
||||
private Label labelEndDate;
|
||||
private Button buttonCancel;
|
||||
private Button buttonSave;
|
||||
private ComboBox comboBoxVacationType;
|
||||
private Label labelVacationType;
|
||||
}
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities;
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities.Enums;
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Repositories;
|
||||
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
@ -23,6 +24,7 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
|
||||
dateTimePickerStartDate.Value = vacation.StartDate;
|
||||
dateTimePickerEndDate.Value = vacation.EndDate;
|
||||
comboBoxVacationType.SelectedItem = vacation.VacationType;
|
||||
_vacationId = value;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -37,21 +39,28 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Forms
|
||||
{
|
||||
InitializeComponent();
|
||||
_vacationRepository = vacationRepository ?? throw new ArgumentNullException(nameof(vacationRepository));
|
||||
|
||||
comboBoxVacationType.DataSource = Enum.GetValues(typeof(VacationType));
|
||||
}
|
||||
|
||||
private void ButtonSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (comboBoxVacationType.SelectedIndex < 1)
|
||||
{
|
||||
throw new Exception("Имеются незаполненные поля");
|
||||
}
|
||||
|
||||
if (_vacationId.HasValue)
|
||||
{
|
||||
_vacationRepository.UpdateVacation(Vacation.CreateEntity(_vacationId.Value,
|
||||
dateTimePickerStartDate.Value, dateTimePickerEndDate.Value));
|
||||
_vacationRepository.UpdateVacation(Vacation.CreateEntity(_vacationId.Value,
|
||||
dateTimePickerStartDate.Value, dateTimePickerEndDate.Value, (VacationType)comboBoxVacationType.SelectedValue!));
|
||||
}
|
||||
else
|
||||
{
|
||||
_vacationRepository.CreateVacation(Vacation.CreateEntity(0, dateTimePickerStartDate.Value,
|
||||
dateTimePickerEndDate.Value));
|
||||
dateTimePickerEndDate.Value, (VacationType)comboBoxVacationType.SelectedValue!));
|
||||
}
|
||||
|
||||
Close();
|
||||
|
@ -1,5 +1,6 @@
|
||||
using ISEbd_22_Vasin_E.D._It_Company;
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Repositories;
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Repositories.Implementations;
|
||||
using Unity;
|
||||
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company
|
||||
|
@ -6,12 +6,8 @@ namespace ISEbd_22_Vasin_E.D._It_Company.Repositories;
|
||||
public interface IContractRepository
|
||||
{
|
||||
IEnumerable<Contract> ReadContracts(int? clientId = null, int? contractorId = null, int? amountFrom = null,
|
||||
int? amountTo = null, DateTime? deadlineFrom = null, DateTime? deadlineTo = null,
|
||||
Status? status = null, ContractType? contractType = null);
|
||||
|
||||
Contract ReadContractById(int id);
|
||||
int? amountTo = null, DateTime? startDateFrom = null, DateTime? startDateTo = null,
|
||||
DateTime? deadlineFrom = null, DateTime? deadlineTo = null, ContractType? contractType = null);
|
||||
|
||||
void CreateContract(Contract contract);
|
||||
|
||||
void UpdateContract(Contract contract);
|
||||
}
|
||||
|
@ -8,4 +8,6 @@ public interface IContractorVacationRepository
|
||||
int? vacationId = null);
|
||||
|
||||
void CreateContractorVacation(ContractorVacation contractorVacation);
|
||||
|
||||
void DeleteContractorVacation(int id);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities;
|
||||
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories;
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories.Implementations;
|
||||
|
||||
public class ClientRepository : IClientRepository
|
||||
{
|
||||
@ -14,7 +14,7 @@ public class ClientRepository : IClientRepository
|
||||
|
||||
public Client ReadClientById(int id)
|
||||
{
|
||||
return Client.CreateEntity(0, string.Empty);
|
||||
return Client.CreateEntity(0, string.Empty, string.Empty);
|
||||
}
|
||||
|
||||
public IEnumerable<Client> ReadClients()
|
||||
|
@ -1,7 +1,7 @@
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities;
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities.Enums;
|
||||
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories;
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories.Implementations;
|
||||
|
||||
public class ContractRepository : IContractRepository
|
||||
{
|
||||
@ -9,19 +9,10 @@ public class ContractRepository : IContractRepository
|
||||
{
|
||||
}
|
||||
|
||||
public Contract ReadContractById(int id)
|
||||
{
|
||||
return Contract.CreateEntity(0, 0, 0, 0, DateTime.Now, Entities.Enums.Status.None, Entities.Enums.ContractType.None, []);
|
||||
}
|
||||
|
||||
public IEnumerable<Contract> ReadContracts(int? clientId = null, int? contractorId = null, int? amountFrom = null,
|
||||
int? amountTo = null, DateTime? deadlineFrom = null, DateTime? deadlineTo = null,
|
||||
Status? status = null, ContractType? contractType = null)
|
||||
int? amountTo = null, DateTime? startDateFrom = null, DateTime? startDateTo = null,
|
||||
DateTime? deadlineFrom = null, DateTime? deadlineTo = null, ContractType? contractType = null)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public void UpdateContract(Contract contract)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities;
|
||||
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories;
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories.Implementations;
|
||||
|
||||
public class ContractorRepository : IContractorRepository
|
||||
{
|
||||
@ -14,7 +14,7 @@ public class ContractorRepository : IContractorRepository
|
||||
|
||||
public Contractor ReadContractorById(int id)
|
||||
{
|
||||
return Contractor.CreateEntity(0, string.Empty);
|
||||
return Contractor.CreateEntity(0, string.Empty, string.Empty);
|
||||
}
|
||||
|
||||
public IEnumerable<Contractor> ReadContractors()
|
||||
|
@ -1,6 +1,6 @@
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities;
|
||||
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories;
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories.Implementations;
|
||||
|
||||
public class ContractorVacationRepository : IContractorVacationRepository
|
||||
{
|
||||
@ -13,4 +13,8 @@ public class ContractorVacationRepository : IContractorVacationRepository
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public void DeleteContractorVacation(int id)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities;
|
||||
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories;
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories.Implementations;
|
||||
|
||||
public class ServiceRepository : IServiceRepository
|
||||
{
|
||||
|
@ -1,6 +1,7 @@
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities;
|
||||
using ISEbd_22_Vasin_E.D._It_Company.Entities.Enums;
|
||||
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories;
|
||||
namespace ISEbd_22_Vasin_E.D._It_Company.Repositories.Implementations;
|
||||
|
||||
public class VacationRepository : IVacationRepository
|
||||
{
|
||||
@ -14,7 +15,7 @@ public class VacationRepository : IVacationRepository
|
||||
|
||||
public Vacation ReadVacationById(int id)
|
||||
{
|
||||
return Vacation.CreateEntity(0, DateTime.Now, DateTime.Now);
|
||||
return Vacation.CreateEntity(0, DateTime.Now, DateTime.Now, VacationType.None);
|
||||
}
|
||||
|
||||
public IEnumerable<Vacation> ReadVacations()
|
||||
|
Loading…
x
Reference in New Issue
Block a user