public async Task <IActionResult> Post([FromBody] IssueCreateDto item, CancellationToken ct) { try { // map dto to model var toAdd = Mapper.Map <Issue>(item); // create self link and open timestamp toAdd.SelfLink = $"{Request.Path}"; toAdd.DateTimeOpened = DateTime.UtcNow; // add new issue to the repository var data = await _issueRepository.AddBug(toAdd, ct); // map model to response dto var result = Mapper.Map <IssueDto>(toAdd); // return created response return(Created($"/api/bugs/{data}", new SuccessResult { Results = new[] { result }, Status = "Successful" })); } catch (ArgumentException ex) { return(BadRequest(ex.Message)); } }
public ActionResult <IssueReadDto> CreateIssue(IssueCreateDto issueCreateDto) { var issueModel = _mapper.Map <Issue>(issueCreateDto); _repository.CreateIssue(issueModel); _repository.SaveChanges(); var issueReadDto = _mapper.Map <IssueReadDto>(issueModel); return(CreatedAtRoute(nameof(GetIssueById), new { Id = issueReadDto.Id }, issueReadDto)); }
public Guid Create(IssueCreateDto issueCreateDto, IUser currentUser) { if (currentUser == null) { throw new ArgumentNullException(nameof(currentUser)); } var responsible = _employeeRepository.GetById(issueCreateDto.ResponsibleId); var issue = new Issue(issueCreateDto.About, issueCreateDto.Urgency, currentUser, responsible); _issueRepository.Insert(issue); _unitOfWork.Save(); return(issue.Id); }
public IHttpActionResult Create([FromBody] IssueCreateDto issueCreateDto) { var id = _issueService.Create(issueCreateDto, CurrentUser()); return(Ok(id)); }
public async Task <IActionResult> Create([FromBody] IssueCreateDto dto) { var userId = User.GetUserId(); var user = await _repo.GetUser(userId); if (user == null) { return(NotFound(new { message = "User not found" })); } var project = await _repo.GetProject(dto.ProjectId, userId); if (project == null) { return(NotFound(new { message = "Project not found." })); } var phase = project.Phases.FirstOrDefault(p => p.Id == dto.PhaseId); if (phase == null) { return(NotFound(new { message = "Phase not found." })); } var issue = _mapper.Map <Issue>(dto); issue.CreatedById = userId; issue.CreatedAt = DateTime.Today.ToShortDateString(); issue.PhaseId = dto.PhaseId; issue.Status = Status.TO_DO; _repo.Add(issue); if (dto.Labels != null) { foreach (var id in dto.Labels) { var label = await _repo.GetLabel(id); var il = new IssueLabel { IssueId = issue.Id, LabelId = label.Id, Issue = issue, Label = label }; issue.IssueLabels.Add(il); } } foreach (var id in dto.IssuedTo) { var iu = new IssueUser { IssueId = issue.Id, UserId = id }; issue.IssuedTo.Add(iu); } if (await _repo.SaveAll()) { var issueToReturn = _mapper.Map <IssueListItemDto>(issue); return(Ok(new { message = "Successfully created the issue", issue = issueToReturn })); } return(BadRequest(new { message = "Error saving the issue." })); }