public async Task <ActionResult> UpdateByProjectTasksDevelopers(ProjectTaskCalendarUpdateViewModel viewModel) { var updatedAssigment = await db.UpdateMapByProjectManerDeveloperTask(viewModel); db.UpdateAssignment(updatedAssigment); await db.SaveChangesAsync(); return(new JsonResult { Data = new { status = "save" } }); }
public async Task <Assignment> UpdateMapByProjectManerDeveloperTask(ProjectTaskCalendarUpdateViewModel viewModel) { var assignment = db.Assignments.Include(x => x.Developers).Include(x => x.Project) .SingleOrDefault(x => x.Id == viewModel.AssigmentId); var developer = assignment.AssingToNone == true ? await db.Users.SingleOrDefaultAsync(x => x.Id == viewModel.DeveloperId) : GetDeveloperWithTask(assignment); var status = await db.Statuses.SingleOrDefaultAsync(x => x.Id == viewModel.StatusId); assignment.Progress = viewModel.Progress; assignment.Progress = viewModel.StatusId; assignment.Status = status; assignment.StatusId = viewModel.StatusId; assignment.Deadline = viewModel.End; if (developer != null && assignment.AssingToNone == false && viewModel.DeveloperId != "None") { try { await UpdateAssigmentsAndDevelopers(viewModel.DeveloperId, assignment, developer); } catch (Exception e) { throw e; } return(assignment); } if (viewModel.DeveloperId == "None") { if (developer != null) { assignment.Developers.Remove(developer); developer.Assignments.Remove(assignment); } assignment.AssingToNone = true; return(assignment); } assignment.Developers.Add(developer); developer.Assignments.Add(assignment); assignment.AssingToNone = false; return(assignment); }