Пример #1
0
        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" }
            });
        }
Пример #2
0
        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);
        }