public IActionResult CreateProject([FromBody] ProjectForCreationDto 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 = _mapper.Map <Project>(project); _repository.Project.CreateProject(projectEntity); _repository.Save(); var createdProject = _mapper.Map <ProjectDto>(projectEntity); return(CreatedAtRoute("ProjectById", new { id = createdProject.ProjectId }, createdProject)); } catch (Exception ex) { _logger.LogError($"Something went wrong inside CreateProject action: {ex.Message}"); return(StatusCode(500, "Internal server error")); } }
public ActionResult <ProjectDto> CreateProject(ProjectForCreationDto projectInput) { var projectToCreate = mapper.Map <Project>(projectInput); projectRepository.CreateProject(projectToCreate); projectRepository.Save(); var projectToReturn = mapper.Map <ProjectDto>(projectToCreate); return(CreatedAtRoute("GetProject", new { projectId = projectToReturn.Id }, projectToReturn)); }
public async Task <IActionResult> EditProject(int id, ProjectForCreationDto projectForCreationDto) { var projectFromRepo = await _repo.GetProject(id); _mapper.Map(projectForCreationDto, projectFromRepo); if (await _repo.SaveAll()) { return(Ok()); } return(BadRequest("Failed to update project")); }
public async Task <IActionResult> CreateProject(ProjectForCreationDto projectForCreationDto) { var project = _mapper.Map <Project>(projectForCreationDto); _repo.Add(project); if (await _repo.SaveAll()) { return(CreatedAtRoute("GetProject", new{ id = project.Id }, project)); } return(BadRequest("Failed to save project")); }
public ActionResult <ProjectDto> UpdateProject(Guid projectId, ProjectForCreationDto projectInput) { if (!projectRepository.ProjectExist(projectId)) { return(NotFound()); } var projectToUpdate = mapper.Map <Project>(projectInput); projectRepository.UpdateProject(projectId, projectToUpdate); projectRepository.Save(); var projectToReturn = mapper.Map <ProjectDto>( projectRepository.GetProject(projectId)); return(CreatedAtRoute("GetProject", new { projectId = projectToReturn.Id }, projectToReturn)); }
public async Task <IActionResult> AddProject([FromBody] ProjectForCreationDto newProject) { if (newProject == null) { return(BadRequest("could not be seerialized")); } var validator = new ProjectForCreationDtoValidator(); var results = validator.Validate(newProject); if (!results.IsValid) { return(BadRequest(results)); } Project projectToCreate = Mapper.Map <Project>(newProject); projectToCreate.ApiKey = "testing123"; _imersiveRepo.AddProject(projectToCreate, 3); return(NoContent()); }
public async Task <IActionResult> CreateProject(ProjectForCreationDto projectForCreationDto) { if (await _repo.ExistProject(projectForCreationDto.Name)) { return(BadRequest("Project already exists")); } var projectToCreate = _mapper.Map <Project>(projectForCreationDto); var projectDirectoryInfo = await _fileRepo.CreateProjectDirectory(projectForCreationDto.Name); projectToCreate.Path = projectDirectoryInfo.ToString(); if (await _repo.CreateProject(projectToCreate)) { var projectToReturn = _mapper.Map <ProjectToReturnDto>(projectToCreate); return(CreatedAtRoute("GetProject", new { id = projectToCreate.Id }, projectToReturn)); } throw new System.Exception("Creating the Project failed"); }
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)); }
public async Task <IActionResult> CreateProject(ProjectForCreationDto projectForCreation) { var dateCheck = ValidateProjectDates(projectForCreation); if (dateCheck) { return(BadRequest("Start Date must be from today and less than End Date")); } var project = _mapper.Map <Project>(projectForCreation); _repository.Project.Create(project); var saveProject = await _repository.SaveAsync(); if (!saveProject) { throw new Exception($"Failed to Create Project"); } var projectToReturn = _mapper.Map <ProjectForDetailedDto>(project); return(CreatedAtRoute("GetProject", new { projectId = projectToReturn.ProjectId }, projectToReturn)); }