Exemple #1
0
        public async Task <IActionResult> UpdateProject(int id, [FromBody] ProjectBaseDto dto)
        {
            try
            {
                if (dto == null || id == 0)
                {
                    return(BadRequest());
                }

                var exists = await _sdlcSystemAppService.CheckSdlcSystemExists(dto.SdlcSystemId);

                if (!exists)
                {
                    return(NotFound());
                }

                var conflictSystem = await _projectAppService.CheckForConflictingSystem(dto.SdlcSystemId, id);

                if (conflictSystem && string.IsNullOrWhiteSpace(dto.ExternalId) &&
                    string.IsNullOrWhiteSpace(dto.Name))
                {
                    return(Conflict());
                }

                var conflictExternalId = await _projectAppService.CheckForConflictingExternalId(dto.ExternalId, id);

                if (conflictExternalId && dto.SdlcSystemId == 0 &&
                    string.IsNullOrWhiteSpace(dto.Name))
                {
                    return(Conflict());
                }

                var result = await _projectAppService.UpdateProject(id, dto);

                if (!result.Value)
                {
                    return(NotFound());
                }

                if (result == null)
                {
                    return(StatusCode(500, "A problem occurred while handling your request."));
                }

                return(Ok());//We have also the option to return NoContent(); instead, for update usually, successfull request that shouldn't return anything
            }
            catch (Exception ex)
            {
                _log4net.Info(ex.Message, ex);
                return(StatusCode(500));
            }
        }
 public ProjectDto CreateProject(ProjectBaseDto projectDto)
 {
     try
     {
         var itemToCreate = _mapper.Map <Project>(projectDto);
         _projectRepository.Add(itemToCreate);
         _projectRepository.Save();
         var createdDto = _mapper.Map <ProjectDto>(itemToCreate);
         return(createdDto);
     }
     catch (Exception ex)
     {
         _log4net.Info(ex.Message, ex);
         throw;
     }
 }
Exemple #3
0
        public async Task <IActionResult> CreateProject([FromBody] ProjectBaseDto dto)
        {
            try
            {
                if (dto == null)
                {
                    return(BadRequest());
                }
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var exists = await _sdlcSystemAppService.CheckSdlcSystemExists(dto.SdlcSystemId);

                if (!exists)
                {
                    return(NotFound());
                }

                var conflict = await _projectAppService.CheckForConflicting(dto.SdlcSystemId, dto.ExternalId);

                if (conflict)
                {
                    return(Conflict());
                }

                var result = _projectAppService.CreateProject(dto);
                return(result == null?StatusCode(500, "A problem occurred while handling your request.")
                           : CreatedAtRoute("GetProject", new { id = result.Id }, result));
            }
            catch (Exception ex)
            {
                _log4net.Info(ex.Message, ex);
                return(StatusCode(500));
            }
        }
        public async Task <bool?> UpdateProject(int id, ProjectBaseDto projectDto)
        {
            try
            {
                var entityToUpdate = await _projectRepository.Get(id);

                if (entityToUpdate == null)
                {
                    return(false);
                }
                entityToUpdate.LastModificationTime = Clock.Now;
                _mapper.Map(projectDto, entityToUpdate);
                if (!_projectRepository.Save())
                {
                    return(null);
                }
                return(true);
            }
            catch (Exception ex)
            {
                _log4net.Info(ex.Message, ex);
                throw;
            }
        }