コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
        }
コード例 #3
0
ファイル: IssueService.cs プロジェクト: dyatlov-a/DDD-demo
        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);
        }
コード例 #4
0
        public IHttpActionResult Create([FromBody] IssueCreateDto issueCreateDto)
        {
            var id = _issueService.Create(issueCreateDto, CurrentUser());

            return(Ok(id));
        }
コード例 #5
0
        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." }));
        }