public TaskEditForm(int rowIndex, ProjectHours task, string projectName, Employee employee) { InitializeComponent(); this.rowIndex = rowIndex; this.task = task; this.projectName = projectName; this.employee = employee; this.db = new TimeTableContext(); this.project = this.db.Projects.Include(p => p.ProjectMonths).First(p => p.ProjectName == projectName); }
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { var senderGrid = (DataGridView)sender; if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 0 && e.RowIndex < this.tasks.Count) { if (e.ColumnIndex == 4) { ProjectHours task = this.tasks[e.RowIndex]; TaskEditForm taskEditForm = new TaskEditForm(e.RowIndex, task, this.projectName, this.employee); taskEditForm.EditEventHandler += TaskEditForm_EditEventHandler; taskEditForm.Show(); } else if (e.ColumnIndex == 5) { Project project = this.db.Projects.Include(p => p.ProjectMonths).First(p => p.ProjectName == this.projectName); if (project.ProjectStatus == "C") { MessageBox.Show($"The project is finished!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } ProjectHours task = this.tasks[e.RowIndex]; if (project.ProjectMonths.Any(pm => pm.ProjectMonth == task.ProjectTaskdate.Month && pm.ProjectYear == task.ProjectTaskdate.Year)) { ProjectMonths projectMonth = project.ProjectMonths .First(pm => pm.ProjectMonth == task.ProjectTaskdate.Month && pm.ProjectYear == task.ProjectTaskdate.Year); if (projectMonth.ProjectMonthStatus == "C") { MessageBox.Show("This month is finished for the project!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } DialogResult result = MessageBox.Show("Are you sure you want to delete this task ?", "Delete Task", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { var args = new DeleteEventArgs() { Task = task }; DeleteEventHandler?.Invoke(this, args); dataGridView1.Rows.RemoveAt(e.RowIndex); MessageBox.Show( $"Task was successfully deleted from {this.projectName}!", "Successful Task Deletion", MessageBoxButtons.OK, MessageBoxIcon.Information ); } } } }
private void addTaskBtn_Click(object sender, EventArgs e) { int taskHours = 0; string projectName = projectComboBox.Text; string task = taskTextBox.Text; DateTime taskDate = taskDateTimePicker.Value; Project project = this.db.Projects.Include(p => p.ProjectMonths).First(p => p.ProjectName == projectName); if (project.ProjectStatus == "C") { MessageBox.Show($"Tasks cannot be added to finished project!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } decimal employeeMaxWorkingHoursOnProject = project.ProjectMaxhours != null ? (decimal)project.ProjectMaxhours : (decimal)int.MaxValue; decimal employeeCurrentWorkingHoursOnProject = this.employee.ProjectHours.Where(ph => ph.ProjectId == project.ProjectId).Sum(ph => ph.ProjectHours1); if (IsValidTask(task) && IsValidHours(ref taskHours, employeeCurrentWorkingHoursOnProject, employeeMaxWorkingHoursOnProject) && IsValidDate(taskDate, project, employee)) { var projectTask = new ProjectHours() { ProjectTask = task, ProjectHours1 = taskHours, ProjectTaskdate = taskDate }; var args = new RegisterEventArgs() { ProjectName = projectName, ProjectTask = projectTask }; RegisterEventHandler?.Invoke(this, args); this.Close(); } }