public async Task <Contract.Models.Status> Create(CreateStatusDto createStatusDto) { ValidationHelper.ValidateAndThrow(createStatusDto); if (!await _folderGetOperations.ExistsById(createStatusDto.FolderId)) { throw new NotFoundException("Директория для статуса не найдена"); } if (!await _sourceGetOperations.ExistsById(createStatusDto.SourceId)) { createStatusDto.SourceId = SourceIds.Flex.ToString(); } var model = new Contract.Models.Status { Id = Guid.NewGuid().ToString(), Name = createStatusDto.Name, FolderId = createStatusDto.FolderId, SourceId = createStatusDto.SourceId, ExternalId = createStatusDto.ExternalId }; await _taskStatusWriteOperations.Create(model); return(model); }
public async Task <IActionResult> CreateStatus([FromBody] CreateStatusDto createStatusDto) { var command = mapper.Map <CreateStatusCommand>(createStatusDto); await statusesService.CreateStatusAsync(command); return(Created($"/api/statuses/{command.Id}", new EntityCreatedDto { Id = command.Id })); }
public async Task CreateStatusWithNotExistingFolder() { var dto = new CreateStatusDto { Name = "a", FolderId = "aaaaa" }; Assert.ThrowsAsync <NotFoundException>(async() => await _taskStatusService.Create(dto)); }
public async Task<ActionResult<ReadStatusDto>> Update(int statusId, [FromBody] CreateStatusDto createStatusDto) { try { var updatedProject = await _statusService.UpdateAsync(statusId, createStatusDto); return Ok(updatedProject); } catch (TaskException ex) { return NotFound(ex.Message); } }
public async Task<ActionResult<ReadStatusDto>> Add([FromBody] CreateStatusDto createStatusDto) { try { var addedStatus = await _statusService.AddAsync(createStatusDto); return CreatedAtAction("Add", addedStatus); } catch (TaskException ex) { return Conflict(ex.Message); } }
public async Task CreateValidStatus() { var dto = new CreateStatusDto { Name = "todo", SourceId = SourceIds.Flex.ToString(), FolderId = FolderHelper.ValidFolder.Id }; var result = await _taskStatusService.Create(dto); Assert.NotNull(result); Assert.IsNotEmpty(result.Id); Assert.AreEqual(dto.Name, result.Name); }
public async Task <ReadStatusDto> UpdateAsync(int id, CreateStatusDto model) { var status = await _unitOfWork.StatusRepository.GetByIdAsync(id); if (status == null) { throw new TaskException($"Status with id = {id} not found.", HttpStatusCode.NotFound); } status.Title = model.Title; await _unitOfWork.StatusRepository.UpdateAsync(status); await _unitOfWork.SaveAsync(); _logger.LogInfo($"Updated status with id = {id}"); return(_mapper.Map <ReadStatusDto>(status)); }
public async Task <ReadStatusDto> AddAsync(CreateStatusDto model) { var status = _unitOfWork.StatusRepository .FindByCondition(s => s.Title == model.Title, false) .FirstOrDefault(); if (status != null) { throw new TaskException($"Status with title \"{model.Title}\" already exist.", HttpStatusCode.Conflict); } var statusToAdd = _mapper.Map <DAL.Entities.Status>(model); await _unitOfWork.StatusRepository.AddAsync(statusToAdd); var addedStatus = await _unitOfWork.StatusRepository.FindByCondition(s => s.Title == model.Title, false) .Include(s => s.Tasks) .FirstOrDefaultAsync(); _logger.LogInfo($"Created status with id = {addedStatus.Id}."); return(_mapper.Map <ReadStatusDto>(addedStatus)); }
public async Task <ActionResult> CreateStatus(string folderId, string title) { try { var status = new CreateStatusDto() { FolderId = folderId, Name = title }; var item = await _taskStatusService.Create(status); var folder = await _folderGetOperations.GetById(folderId); folder.StatusesOrder.Add(item.Id); await _folderWriteOperations.Update(folderId, folder); return(Json(item.Id)); } catch { return(Redirect("/Folder/Folders/" + folderId)); } }