public async Task <ActionResult <ProjectTaskPerformer> > CreateItem([FromForm] ProjectTaskPerformer item) { try { if (item.ProjectTaskPerformerId > 0) { return(BadRequest("Идентификатор записи должен быть равен 0")); } if (item.ProjectTaskId == 0) { return(BadRequest("Идентификатор задачи не должен быть равен 0")); } if (item.UserId == 0) { return(BadRequest("Идентификатор пользователя не должен быть равен 0")); } var existItems = await _projectTaskPerformerRepository .FindAsync(e => e.UserId.Equals(item.UserId) && e.ProjectTaskId.Equals(item.ProjectTaskId) && !e.Deleted); if (existItems.Count > 0) { return(BadRequest("Указанный исполнитель уже назначен на эту задачу")); } var user = await _userRepository.FindByIdAsync(item.UserId); if (user == null) { return(BadRequest("Пользователь не найден")); } var task = await _projectTaskRepository.FindByIdAsync(item.UserId); if (task == null) { return(BadRequest("Задача не найдена")); } item.User = user; item.Task = task; await _projectTaskPerformerRepository.CreateAsync(item); return(item); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> DeleteItem(int id) { try { var item = await _projectTaskRepository.FindByIdAsync(id); if (item == null) { return(NotFound()); } else { item.Deleted = true; item.DateDeleted = DateTime.Now; var userDeleted = (await _userRepository.FindAsync(e => !e.Deleted && e.Login.ToLower().Equals(_userService.userLogin.ToLower()))).SingleOrDefault(); item.LoginDeleted = userDeleted != null ? userDeleted.ShortName : _userService.userLogin; await _projectTaskRepository.EditAsync(item); // удалить всех исполнителей var performers = await _projectTaskPerformerRepository.FindAsync(e => e.ProjectTaskId.Equals(id) && !e.Deleted); foreach (var performer in performers) { performer.Deleted = true; } await _projectTaskPerformerRepository.EditAsync(performers.ToList()); return(NoContent()); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }