public ProjectTest() { _projectService = new DataService <Project>(); var mockMapper = new MapperConfiguration(cfg => { cfg.AddProfile(new AutoMapperProfiles()); }); _mapper = mockMapper.CreateMapper(); _project = new ProjectForAddDto { ProjectName = "Test Project", Address = "1 See Stree MedowBank College", Phone = "029988889", ProjectDetails = "This is a Unit Test project Object" }; _projectUpdateObj = new ProjectForUpdateDto { ProjectName = "Test Project updated Last", Address = "1 See Stree MedowBank College", Phone = "029988889", ProjectDetails = "This is a Unit Test project Object", ContactList = new List <int>() { 2, 3 } }; }
public async Task <IActionResult> UpdateProject(int id, ProjectForUpdateDto projectForUpdateDto) { Project project = await _projectService.GetProject(id); _mapper.Map(projectForUpdateDto, project); if (projectForUpdateDto.ContactList.Count() > 0) { List <ProjectContact> Contacts = new List <ProjectContact>(); foreach (int contactId in projectForUpdateDto.ContactList) { ProjectContact pc = new ProjectContact { ContactId = contactId }; Contacts.Add(pc); } project.Contacts = Contacts; } if (await _projectService.Update(project)) { var projectView = _mapper.Map <ProjectForViewDto>(project); return(Ok(projectView)); } throw new Exception($"Updating project {id} failed on save"); }
public async Task <IActionResult> UpdateProject(Guid projectId, ProjectForUpdateDto projectForUpdate) { var dateCheck = ValidateProjectDates(projectForUpdate); if (dateCheck) { return(BadRequest("Start Date must be from today and less than End Date")); } var projectFromRepo = await _repository.Project.GetProject(projectId); if (projectFromRepo == null) { return(BadRequest("Invalid Request")); } _mapper.Map(projectForUpdate, projectFromRepo); _repository.Project.UpdateProject(projectFromRepo); var updateProject = await _repository.SaveAsync(); if (!updateProject) { throw new Exception("Failed to Update Project"); } return(NoContent()); }
public IActionResult UpdateProject(int id, [FromBody] ProjectForUpdateDto projectForUpdate) { if (projectForUpdate == null) { return(BadRequest()); } //TODO: Test for duplicate name if (projectForUpdate.Description == projectForUpdate.Name) { ModelState.AddModelError("Description", "The provided description should be different from the name."); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var projectEntity = _hoursApiRepository.GetProject(id, false); if (projectEntity == null) { return(NotFound()); } Mapper.Map(projectForUpdate, projectEntity); if (!_hoursApiRepository.Save()) { return(StatusCode(500, "A problem happened while handling your request.")); } return(NoContent()); }
public async Task <bool> UpdateAsync(int projectId, ProjectForUpdateDto projectForUpdateDto) { var project = await GetAsync(projectId); _mapper.Map(projectForUpdateDto, project); return(await _dataContext.SaveChangesAsync() > 0); }
public async Task <IActionResult> UpdateProject(int id, ProjectForUpdateDto projectForUpdateDto) { // //--> vérifier que id envoyé est le même id dans le Token // if(id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) // return Unauthorized(); var projectFromRepo = await _repo.GetProject(id); _mapper.Map(projectForUpdateDto, projectFromRepo); if (await _repo.SaveAll()) { return(NoContent()); } throw new Exception($"Un problème est survenu lors de la modification des données"); }
public async Task <IActionResult> UpdateProject(int id, ProjectForUpdateDto projectForUpdate) { var projectFromRepo = await _repo.GetProject(id); if (projectFromRepo.isArchived) { BadRequest("Project is Archived"); } _mapper.Map(projectForUpdate, projectFromRepo); if (await _repo.SaveAll()) { return(NoContent()); } throw new Exception($"updating project {id} failed to update"); }
public async Task <IActionResult> UpdateAsync(int id, [FromBody] ProjectForUpdateDto projectForUpdateDto) { var project = await _projectService.GetAsync(id); if (project == null) { return(BadRequest($@"Project with id {id} does not exist")); } var successResult = await _projectService.UpdateAsync(id, projectForUpdateDto); if (successResult) { return(NoContent()); } return(StatusCode(StatusCodes.Status500InternalServerError, "Something went wrong while updating project in the database.")); }
public IActionResult UpdateProject(Guid id, [FromBody] ProjectForUpdateDto project) { try { if (project == null) { _logger.LogError("Project object sent from client is null."); return(BadRequest("Project object is null")); } if (!ModelState.IsValid) { _logger.LogError("Invalid project object sent from client."); return(BadRequest("Invalid model object")); } var projectEntity = _repository.Project.GetProjectById(id); if (projectEntity == null) { _logger.LogError($"Project with id: {id}, hasn't been found in db."); return(NotFound()); } _mapper.Map(project, projectEntity); _repository.Project.UpdateProject(projectEntity); _repository.Save(); return(NoContent()); } catch (Exception ex) { _logger.LogError($"Something went wrong inside UpdateProject action: {ex.Message}"); return(StatusCode(500, "Internal server error")); } }
public async Task <IActionResult> UpdateProject(Guid id, [FromBody] ProjectForUpdateDto projectToUpdate) { if (id == null) { _logger.LogError("Project object sent from client is null."); return(BadRequest("The project you are searching doesnot exist")); } if (!ModelState.IsValid) { _logger.LogError("Invalid model state for the Project"); return(UnprocessableEntity(ModelState)); } var originalproject = await _repo.Project.GetProject(id); if (originalproject == null) { _logger.LogError("Invalid project id"); return(BadRequest("The project that you are trying to update doesnot exist")); } var projectManager = await _repo.ProjectManager.GetProjectManager(id); //check for owner var isOwner = CheckProjectOwner.IsProjectOwner(User, projectManager); if (!isOwner) { return(Unauthorized("Sorry! You cannot modify this project.")); } var submittedByName = originalproject.SubmittedByName; var submittedByEmail = originalproject.SubmittedByEmail; var createdAt = originalproject.CreatedAt; var userProjects = originalproject.UsersProjects; //Have to figure out a way to update many to many realtionship from anywhere otherwise like this //the code will be much longer if we have //Remove previous Project Manager from database if (projectManager != null) { _repo.ProjectManager.RemoveProjectAndManager(projectManager); await _repo.Save(); } //Remove previous UserProject from database if (userProjects != null) { _repo.UserProject.RemoveProjectAndUser(userProjects); await _repo.Save(); } //Mapping var finalprojectToUpdate = _mapper.Map(projectToUpdate, originalproject); finalprojectToUpdate.SubmittedByEmail = submittedByEmail; finalprojectToUpdate.SubmittedByName = submittedByName; finalprojectToUpdate.CreatedAt = createdAt; finalprojectToUpdate.UsersProjects = userProjects.ToList(); _repo.Project.UpdateProject(finalprojectToUpdate); await _repo.Save(); return(Ok("Project Updated Sucessfully")); }