Beispiel #1
0
        public IActionResult CreateWorkItem(int projectId,
                                            [FromBody] WorkItemForCreationDto workItemForCreationDto)
        {
            if (workItemForCreationDto == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!_HoursApiRepository.ProjectExists(projectId))
            {
                return(NotFound());
            }

            var finalWorkItem = Mapper.Map <Entities.WorkItem>(workItemForCreationDto);

            _HoursApiRepository.AddWorkItemForProject(projectId, finalWorkItem);

            if (!_HoursApiRepository.Save())
            {
                return(StatusCode(500, "A problem happened while handling your request."));
            }

            var createdWorkItemToReturn = Mapper.Map <Models.WorkItemDto>(finalWorkItem);

            return(CreatedAtRoute("GetWorkItem", new
                                  { ProjectId = projectId, id = createdWorkItemToReturn.Id }, createdWorkItemToReturn));
        }
Beispiel #2
0
        public IActionResult CreateProject([FromBody] ProjectForCreationDto projectForCreationDto)
        {
            if (projectForCreationDto == null)
            {
                return(BadRequest());
            }

            //todo: Better validation checks
            if (projectForCreationDto.Description == projectForCreationDto.Name)
            {
                ModelState.AddModelError("Description", "The provided description should be different from the name.");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var project = Mapper.Map <Project>(projectForCreationDto);

            //todo: Improve this
            project.WorkItems = new List <WorkItem>();

            _hoursApiRepository.AddProject(project);

            if (!_hoursApiRepository.Save())
            {
                return(StatusCode(500, "A problem happened while handling your request."));
            }

            var createdProjectToReturn = Mapper.Map <Models.ProjectDto>(project);

            _logger.LogInformation("$Project created with id {createdProjectToReturn.Id}.");

            return(CreatedAtRoute("GetProject",
                                  new { id = createdProjectToReturn.Id }, createdProjectToReturn));
        }