public IActionResult Upsert(SkuStocksModel stock)
        {
            DBContext     _context = new DBContext();
            LogController log      = new LogController();

            if (stock.Id == new Guid())
            {
                List <SkuStocksModel> stocks = GetAllStocks();
                SkuStocksModel        existe = stocks.Where(x => x.Seller.Id == stock.Seller.Id && x.Sku.Id == stock.Sku.Id).FirstOrDefault();
                if (existe != null)
                {
                    log.LogRegister(stock, "CreatedError", Models.Enums.LogTypeEnum.Stocks);
                    return(RedirectToAction("Index", stock.Seller.Id));
                }
                stock.Id         = Guid.NewGuid();
                stock.LastUpdate = DateTime.Now;
                log.LogRegister(stock, "Created", Models.Enums.LogTypeEnum.Stocks);
                _context.Stocks.Add(StockMapper.Mapper(stock));
            }
            else
            {
                stock.LastUpdate = DateTime.Now;
                _context.Stocks.Update(StockMapper.Mapper(stock));

                log.LogRegister(stock, "Updated", Models.Enums.LogTypeEnum.Stocks);
            }
            _context.SaveChanges();
            return(RedirectToAction("Index", new { id = stock.Seller.Id }));
        }
        public static SkuStocksModel GetStockById(Guid Id)
        {
            DBContext      _context = new DBContext();
            SkuStocksModel stock    = StockMapper.Mapper(_context.Stocks.Include(x => x.Sku).Include(x => x.Seller).Where(x => x.Id == Id).SingleOrDefault());

            return(stock);
        }
        public IActionResult Delete(Guid Id)
        {
            DBContext      _context = new DBContext();
            SkuStocksModel stock    = GetStockById(Id);

            _context.Stocks.Remove(StockMapper.Mapper(stock));

            LogController log = new LogController();

            log.LogRegister(stock, "Deleted", Models.Enums.LogTypeEnum.Stocks);

            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
Beispiel #4
0
 public static SkuStocksEntity Mapper(SkuStocksModel sModel)
 {
     if (sModel != null)
     {
         SkuStocksEntity sEntity = new SkuStocksEntity
         {
             Id                = sModel.Id,
             LastUpdate        = sModel.LastUpdate,
             AvailableQuantity = sModel.AvailableQuantity,
             SkuId             = sModel.Sku.Id,
             SellerId          = sModel.Seller.Id
         };
         return(sEntity);
     }
     return(null);
 }
Beispiel #5
0
 public static SkuStocksModel Mapper(SkuStocksEntity sEntity)
 {
     if (sEntity != null)
     {
         SkuStocksModel sModel = new SkuStocksModel
         {
             Id = sEntity.Id,
             AvailableQuantity = sEntity.AvailableQuantity,
             LastUpdate        = sEntity.LastUpdate,
             Sku    = SkuMapper.Mapper(sEntity.Sku),
             Seller = UserMapper.Mapper(sEntity.Seller)
         };
         return(sModel);
     }
     return(null);
 }
        public IActionResult Create(Guid Id)
        {
            SkuStocksModel      stocks   = new SkuStocksModel();
            List <ProductModel> products = ProductController.GetAllProducts();
            List <SkuModel>     skus     = new List <SkuModel>();

            foreach (var p in products)
            {
                foreach (var s in p.Skus)
                {
                    s.Name = p.Name + " " + s.Name;
                    skus.Add(s);
                }
            }
            stocks.Sellers = UserManagementController.GetAllSellers();
            stocks.Skus    = skus;

            return(View(stocks));
        }
Beispiel #7
0
        public static List <SkuStocksModel> Mapper(List <SkuStocksEntity> seList)
        {
            if (seList != null)
            {
                List <SkuStocksModel> smList = new List <SkuStocksModel>();
                foreach (var se in seList)
                {
                    SkuStocksModel sModel = new SkuStocksModel
                    {
                        Id = se.Id,
                        AvailableQuantity = se.AvailableQuantity,
                        LastUpdate        = se.LastUpdate,
                        Sku    = SkuMapper.Mapper(se.Sku),
                        Seller = UserMapper.Mapper(se.Seller)
                    };

                    smList.Add(sModel);
                }
                return(smList);
            }
            return(null);
        }
        public async Task <string> AddItemToCart(string skuId)
        {
            var buyer = this.User.FindFirstValue(ClaimTypes.NameIdentifier);

            if (buyer != null)
            {
                DBContext _context = new DBContext();

                OrderModel order = OrderMapper.Mapper(_context.Order.Include(x => x.Buyer).Include(x => x.Seller).Include(x => x.Address).Where(x => x.BuyerId == Guid.Parse(buyer)).FirstOrDefault());

                SkuStocksModel stock = StockMapper.Mapper(_context.Stocks.Include(x => x.Seller).Include(x => x.Sku).Where(x => x.SellerId == order.Seller.Id && x.Sku.Id == Guid.Parse(skuId)).FirstOrDefault());

                if (stock != null)
                {
                    OrderItemsModel item = OrderItemsMapper.Mapper(_context.OrderItems.Include(x => x.Sku).Include(x => x.Seller).Include(x => x.Order).Where(x => x.SkuId == Guid.Parse(skuId) && x.OrderId == order.Id).FirstOrDefault());

                    if (item == null)
                    {
                        item          = new OrderItemsModel();
                        item.Id       = Guid.NewGuid();
                        item.Seller   = order.Seller;
                        item.Sku      = stock.Sku;
                        item.Order    = order;
                        item.Quantity = 1;
                        _context.Add(OrderItemsMapper.Mapper(item));

                        var currentOrder = _context.Order.Find(order.Id);
                        currentOrder.SubTotal += item.Sku.Price;
                        currentOrder.Total    += item.Sku.Price;

                        _context.Update(currentOrder);
                    }
                    else
                    {
                        var currentItem = _context.OrderItems.Find(item.Id);
                        currentItem.Id        = item.Id;
                        currentItem.OrderId   = order.Id;
                        currentItem.Quantity += 1;
                        currentItem.SellerId  = order.Seller.Id;
                        currentItem.SkuId     = stock.Sku.Id;

                        _context.Update(currentItem);

                        var currentOrder = _context.Order.Find(order.Id);
                        currentOrder.SubTotal += item.Sku.Price;
                        currentOrder.Total    += item.Sku.Price;

                        _context.Update(currentOrder);
                    }

                    var newstock = _context.Stocks.Find(stock.Id);
                    newstock.Id                 = stock.Id;
                    newstock.SellerId           = order.Seller.Id;
                    newstock.SkuId              = stock.Sku.Id;
                    newstock.AvailableQuantity -= 1;
                    newstock.LastUpdate         = DateTime.Now;

                    _context.Update(newstock);
                    _context.SaveChanges();
                    return("OK");
                }
                return("ESSE PRODUTO NÃO TEM ESTOQUE PARA O LOJISTA SELECIONADO");
            }
            else
            {
                return("FAIL");
            }
        }
Beispiel #9
0
        public IActionResult Carregar()
        {
            var       buyer    = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            DBContext _context = new DBContext();

            OrderModel validacao = OrderMapper.Mapper(_context.Order.Include(x => x.Address).Include(x => x.Buyer).Include(x => x.Seller).Where(x => x.BuyerId == Guid.Parse(buyer)).FirstOrDefault());

            if (validacao == null)
            {
                ProductModel p1 = new ProductModel
                {
                    Id          = Guid.NewGuid(),
                    Code        = "0001",
                    Name        = "Coca-Cola",
                    Description = "Refrigerante",
                    ImageUrl    = "https://i.imgur.com/ps6alt2.jpg",
                    Skus        = new List <SkuModel>()
                };

                SkuModel s1 = new SkuModel
                {
                    Id      = Guid.NewGuid(),
                    Barcode = "793001215",
                    Name    = "350 ml",
                    Color   = "#ff0000",
                    Price   = 4.50
                };

                SkuModel s2 = new SkuModel
                {
                    Id       = Guid.NewGuid(),
                    Barcode  = "793001216",
                    Name     = "2 L",
                    Color    = "#ff0000",
                    ImageUrl = "https://i.imgur.com/ps6alt2.jpg",
                    Price    = 7.00
                };

                p1.Skus.Add(s1);
                p1.Skus.Add(s2);

                _context.Products.Add(ProductMapper.Mapper(p1));

                ProductModel p2 = new ProductModel
                {
                    Id          = Guid.NewGuid(),
                    Name        = "Fanta Laranja",
                    Code        = "0002",
                    Description = "Refri de laranja",
                    ImageUrl    = "https://i.imgur.com/cxKXQ0k.png",
                    Skus        = new List <SkuModel>()
                };

                SkuModel s3 = new SkuModel
                {
                    Id       = Guid.NewGuid(),
                    Name     = "350 ml",
                    Barcode  = "79300251362",
                    Price    = 4.50,
                    Color    = "#f24f00",
                    ImageUrl = "https://i.imgur.com/cxKXQ0k.png"
                };

                p2.Skus.Add(s3);

                _context.Products.Add(ProductMapper.Mapper(p2));

                UserModel u = new UserModel
                {
                    Id            = Guid.NewGuid(),
                    FullName      = "Shopping Palladium",
                    Document      = "08355847000109",
                    Discriminator = Models.Enums.DiscriminatorEnum.Seller
                };

                _context.Users.Add(UserMapper.Mapper(u));

                SkuStocksModel ss = new SkuStocksModel
                {
                    Id = Guid.NewGuid(),
                    AvailableQuantity = 52,
                    LastUpdate        = DateTime.Now,
                    Sku    = s2,
                    Seller = u
                };

                SkuStocksModel ss2 = new SkuStocksModel
                {
                    Id = Guid.NewGuid(),
                    AvailableQuantity = 31,
                    LastUpdate        = DateTime.Now,
                    Sku    = s3,
                    Seller = u
                };

                _context.Stocks.Add(StockMapper.Mapper(ss));
                _context.Stocks.Add(StockMapper.Mapper(ss2));

                ShowcaseModel sc = new ShowcaseModel
                {
                    Id         = Guid.NewGuid(),
                    Name       = "Inverno",
                    StartDate  = DateTime.Now,
                    EndDate    = DateTime.Now,
                    LastUpdate = DateTime.Now
                };

                ShowcaseItemsModel scp1 = new ShowcaseItemsModel()
                {
                    Id       = Guid.NewGuid(),
                    ShowCase = sc,
                    Sku      = s2
                };

                ShowcaseItemsModel scp2 = new ShowcaseItemsModel()
                {
                    Id       = Guid.NewGuid(),
                    ShowCase = sc,
                    Sku      = s3
                };

                ShowcaseItemsMapper.Mapper(scp1);
                ShowcaseItemsMapper.Mapper(scp2);

                _context.Showcases.Add(ShowcaseMapper.Mapper(sc));
                _context.ShowcaseItems.Add(ShowcaseItemsMapper.Mapper(scp1));
                _context.ShowcaseItems.Add(ShowcaseItemsMapper.Mapper(scp2));

                AddressModel address = new AddressModel
                {
                    Id = Guid.NewGuid()
                };

                _context.Add(AddressMapper.Mapper(address));

                PaymentModel payment = new PaymentModel
                {
                    Id = Guid.NewGuid()
                };

                _context.Add(PaymentMapper.Mapper(payment));

                OrderModel order = new OrderModel
                {
                    Id           = Guid.NewGuid(),
                    CreateDate   = DateTime.Now,
                    Discount     = 0,
                    SubTotal     = 0,
                    Total        = 0,
                    FriendlyCode = "S&T-X3VI5A",
                    Buyer        = new UserModel
                    {
                        Id = Guid.Parse(this.User.FindFirstValue(ClaimTypes.NameIdentifier)),
                    },
                    Seller = new UserModel
                    {
                        Id = u.Id,
                    },
                    Address = address,
                    Payment = payment
                };

                _context.Order.Add(OrderMapper.Mapper(order));

                _context.SaveChanges();
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult Edit(Guid Id)
        {
            SkuStocksModel stock = GetStockById(Id);

            return(View(stock));
        }