public async Task <FurnitureViewModel> CreateAsync(FurnitureBindingModel model) { //TODO refactor in separate class var user = await this.db.Users .FirstOrDefaultAsync(x => x.Email == model.UserEmail); if (user == null) { return(null); } var furniture = this.mapper.Map <Furniture>(model); furniture.UserId = user.Id; await this.db.Furnitures.AddAsync(furniture); await this.db.SaveChangesAsync(); return(this.mapper.Map <FurnitureViewModel>(furniture)); }
public async Task <IActionResult> Create(FurnitureBindingModel model) { if (!ModelState.IsValid) { return(BadRequest("Invalid furniture")); } var email = this.User.Claims.FirstOrDefault(x => x.Type.Contains("emailaddress", StringComparison.InvariantCultureIgnoreCase)); if (email == null) { return(this.Unauthorized()); } model.UserEmail = email.Value; var createdFurniture = await this.furnitureService.CreateAsync(model); if (createdFurniture == null) { return(UnprocessableEntity()); } return(StatusCode(201, createdFurniture)); }