public async Task <IActionResult> PutIndustry(int id, IndustryDto industry) { CommonResponse <IndustryDto> response = new CommonResponse <IndustryDto>(); if (id != industry.Id) { response.Error = new Error { Status = 400, Message = "There was a mismatch with the provided id and the object." }; return(BadRequest(response)); } // Maps to industry model Industry industryModel = _mapper.Map <Industry>(industry); _context.Entry(industryModel).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!IndustryExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <CommonResponse <UserDto> > > PostUser(UserCreateDto user) { // Create response object CommonResponse <UserDto> respons = new CommonResponse <UserDto>(); if (!ModelState.IsValid) { respons.Error = new Error { Status = 400, Message = "The user did not pass validation, ensure it is in the correct format." }; return(BadRequest(respons)); } User userModel = _mapper.Map <User>(user); // Try catch try { _context.Users.Add(userModel); await _context.SaveChangesAsync(); } catch (Exception e) { respons.Error = new Error { Status = 500, Message = e.Message }; return(StatusCode(StatusCodes.Status500InternalServerError, respons)); } // Map to dto respons.Data = _mapper.Map <UserDto>(userModel); return(CreatedAtAction("GetUser", new { userId = respons.Data.UserId }, respons)); }
public async Task <ActionResult <CommonResponse <ProjectApplicationDto> > > PostProjectApplication(ProjectApplicationCreateDto post) { // Make CommonResponse object to use CommonResponse <ProjectApplicationDto> resp = new CommonResponse <ProjectApplicationDto>(); if (!ModelState.IsValid) { resp.Error = new Error { Status = 400, Message = "The post did not pass validation, ensure it is in the correct format." }; return(BadRequest(resp)); } var model = _mapper.Map <ProjectApplication>(post); model.Status = "Pending"; // Add to db _context.ProjectApplications.Add(model); await _context.SaveChangesAsync(); var l = await _context.ProjectApplications.Include(l => l.User).FirstOrDefaultAsync(l => l.Id == model.Id); resp.Data = _mapper.Map <ProjectApplicationDto>(l); return(Ok(resp)); }
public async Task <IActionResult> PutSkill(int id, SkillDto skill) { // Create response object CommonResponse <SkillDto> respons = new CommonResponse <SkillDto>(); if (id != skill.Id) { respons.Error = new Error { Status = 400, Message = "There was a mismatch with the provided id and the object." }; return(BadRequest(respons)); } _context.Entry(_mapper.Map <Skill>(skill)).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SkillExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <CommonResponse <UserHistoryDto> > > PostHistory(UserHistoryCreateDto history) { // Make CommonResponse object to use CommonResponse <UserHistoryDto> resp = new CommonResponse <UserHistoryDto>(); // Map to model class var model = _mapper.Map <UserHistory>(history); // Add to db _context.UserHistories.Add(model); await _context.SaveChangesAsync(); var l = await _context.Portfolios.Include(l => l.User).FirstOrDefaultAsync(l => l.Id == model.Id); resp.Data = _mapper.Map <UserHistoryDto>(l); return(Ok(resp)); }
public async Task <IActionResult> PutProject(int id, ProjectDto projectDto) { CommonResponse <ProjectUpdateDto> response = new CommonResponse <ProjectUpdateDto>(); Project project = await _context.Projects.Include(s => s.Skills) .Include(t => t.Themes) .Include(l => l.Links) .FirstOrDefaultAsync(u => u.Id == id); // Check if Id exists if (id != project.Id) { response.Error = new Error { Status = 400, Message = "A project with that Id could not be found." }; return(BadRequest(response)); } // Mapping project attributes project.Name = projectDto.Name; project.Description = projectDto.Description; project.ImageUrl = projectDto.ImageUrl; project.Status = projectDto.Status; // Mapping Skills project.Skills.Clear(); foreach (SkillCreateDto skillName in projectDto.Skills) { Skill skill = await _context.Skills.Where(s => s.Name == skillName.Name).FirstOrDefaultAsync(); if (skill != null) { project.Skills.Add(skill); } else { skill = _mapper.Map <Skill>(skillName); project.Skills.Add(skill); } } // Mapping Themes project.Themes.Clear(); foreach (ThemeCreateDto themeName in projectDto.Themes) { Theme theme = await _context.Themes.Where(t => t.Name == themeName.Name).FirstOrDefaultAsync(); if (theme != null) { project.Themes.Add(theme); } else { theme = _mapper.Map <Theme>(themeName); project.Themes.Add(theme); } } // Mapping Links project.Links.Clear(); foreach (LinkCreateDto linkName in projectDto.Links) { Link link = await _context.Links.Where(l => l.Name == linkName.Name).FirstOrDefaultAsync(); if (link != null) { project.Links.Add(link); } else { link = _mapper.Map <Link>(linkName); project.Links.Add(link); } } // Maps to project model Project projectModel = _mapper.Map <Project>(project); _context.Entry(projectModel).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProjectExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }