public void UpdateTask(TaskRequest request, TaskResponse response) { var editedTask = _mapper.Map <TaskEntity>(request.Task); var task = _uow.Repository <TaskEntity>().Update(editedTask); if (task != null) { if (task.Sprint != -1) { var xRefSprintTask = new XRefSprintTaskEntity { SprintId = (int)task.Sprint, TaskId = task.Id, OrderId = -1 }; var xst = _uow.Repository <XRefSprintTaskEntity>().GetOverview(t => t.TaskId == task.Id).FirstOrDefault(); if (xst == null) { _uow.Repository <XRefSprintTaskEntity>().Add(xRefSprintTask); } var backlogTaskDb = _uow.Repository <XRefBacklogTaskEntity>().GetOverview(t => t.TaskId == editedTask.Id).FirstOrDefault(); if (backlogTaskDb != null) { _uow.Repository <XRefBacklogTaskEntity>().Delete(backlogTaskDb); } } else { var backlog = _uow.Repository <BacklogEntity>().GetOverview(b => b.TeamId == request.Task.TeamId).FirstOrDefault(); var xRefBacklogTask = new XRefBacklogTaskEntity { TaskId = task.Id, BacklogId = backlog.BacklogId }; var xbt = _uow.Repository <XRefBacklogTaskEntity>().GetOverview(t => t.TaskId == task.Id).FirstOrDefault(); if (xbt == null) { _uow.Repository <XRefBacklogTaskEntity>().Add(xRefBacklogTask); } var sprintTaskDb = _uow.Repository <XRefSprintTaskEntity>().GetOverview(t => t.TaskId == editedTask.Id).FirstOrDefault(); if (sprintTaskDb != null) { _uow.Repository <XRefSprintTaskEntity>().Delete(sprintTaskDb); } } _uow.Save(); response.Task = _mapper.Map <TaskVM>(task); } else { response.Errors.Add("Update error", "Cannot update task"); } }
public void CreateTask(TaskRequest request, TaskResponse response) { response.Errors = Validator.CreateTask(request.Task); if (response.Errors.Count() > 0) { return; } var newTask = _mapper.Map <TaskEntity>(request.Task); var task = _uow.Repository <TaskEntity>().Add(newTask); _uow.Save(); if (task != null) { if (task.Sprint != -1) { var xRefSprintTask = new XRefSprintTaskEntity { SprintId = (int)task.Sprint, TaskId = task.Id }; _uow.Repository <XRefSprintTaskEntity>().Add(xRefSprintTask); var backlogTaskDb = _uow.Repository <XRefBacklogTaskEntity>().GetOverview(t => t.TaskId == task.Id).FirstOrDefault(); if (backlogTaskDb != null) { _uow.Repository <XRefBacklogTaskEntity>().Delete(backlogTaskDb); } } else { var backlog = _uow.Repository <BacklogEntity>().GetOverview(b => b.TeamId == request.Task.TeamId).FirstOrDefault(); var xRefBacklogTask = new XRefBacklogTaskEntity { TaskId = task.Id, BacklogId = backlog.BacklogId }; _uow.Repository <XRefBacklogTaskEntity>().Add(xRefBacklogTask); var sprintTaskDb = _uow.Repository <XRefSprintTaskEntity>().GetOverview(t => t.TaskId == task.Id).FirstOrDefault(); if (sprintTaskDb != null) { _uow.Repository <XRefSprintTaskEntity>().Delete(sprintTaskDb); } } _uow.Save(); response.Task = _mapper.Map <TaskVM>(task); } else { response.Errors.Add("Create error", "Cannot create task"); } }