Exemple #1
0
        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);
        }