public int AddCustomSize(CustomSizeAddFrom form, int userId) { var toAdd = Mapper.Map(form).ToANew <CustomSizeForm>(); toAdd.Client = _context.Users.Find(userId).Client ?? throw new HttpStatusCodeException(HttpStatusCode.NotFound, _localizer["Could not find client"]); toAdd.PieceOfFurniture = _context.Furniture.Find(form.PieceOfFurnitureId) ?? throw new HttpStatusCodeException(HttpStatusCode.NotFound, _localizer["Could not find furniture part"]); toAdd.Approved = false; _context.CustomSizeForms.Add(toAdd); if (_context.SaveChanges() == 0) { throw new HttpStatusCodeException(HttpStatusCode.InternalServerError, _localizer["Could not add data"]); } return(toAdd.CustomSizeFormId); }
public async Task <int> AddFurniture(List <string> photos, PieceOfFurnitureAddDto pieceOfFurniture) { var cat = _context.Categories.SingleOrDefault(x => x.CategoryId == pieceOfFurniture.CategoryId); var room = _context.Rooms.SingleOrDefault(x => x.RoomId == pieceOfFurniture.RoomId); if (cat == null || room == null) { throw new HttpStatusCodeException(HttpStatusCode.NotFound, _localizer["Room or category doesn't exist"]); } var duplicate = _context.Furniture.Any(x => x.Name == pieceOfFurniture.Name); if (duplicate) { throw new HttpStatusCodeException(HttpStatusCode.InternalServerError, _localizer["Furniture part already exists"]); } var pieceOfFurnitureInserted = _context.Furniture.Add(new PieceOfFurniture() { Name = pieceOfFurniture.Name, Description = pieceOfFurniture.Description, CategoryId = pieceOfFurniture.CategoryId, RoomId = pieceOfFurniture.RoomId, Size = pieceOfFurniture.Size, Price = pieceOfFurniture.Price, Count = pieceOfFurniture.Count, MaterialId = pieceOfFurniture.MaterialId, PatternId = pieceOfFurniture.PatternId, ColorId = pieceOfFurniture.ColorId }); _context.SaveChanges(); foreach (var photo in photos) { _context.Photos.Add(new Photo() { Path = photo, PieceOfFurnitureId = pieceOfFurnitureInserted.Entity.PieceOfFurnitureId }); } _context.SaveChanges(); foreach (var partId in pieceOfFurniture.PartsId) { var part = await _context.Parts.SingleOrDefaultAsync(x => x.PartId == partId); part.PieceOfFurnitureId = pieceOfFurnitureInserted.Entity.PieceOfFurnitureId; } _context.SaveChanges(); return(pieceOfFurnitureInserted.Entity.PieceOfFurnitureId); }