Ejemplo n.º 1
0
        public async Task <ActionResult> AddProductsManually([FromBody] IAddProductsToBasket items)
        {
            items.ProductAmount = Math.Abs(items.ProductAmount);
            var username = User.Claims.FirstOrDefault(x => x.Type == "FullName").Value;

            var situation = await CatalogService.AddProductsToCatalogManually(items);

            if (situation == ProblemWithBasket.AllIsOkey)
            {
                var catalogFromDB = await DB.CatalogDB.Include(x => x.Warehouse).FirstOrDefaultAsync(x => x.Id == items.CatalogId);

                var catalogVM = new CatalogVM
                {
                    Id            = catalogFromDB.Id,
                    ProductPrice  = catalogFromDB.ProductPrice,
                    CurrentAmount = catalogFromDB.CurrentAmount,
                    MaximumAmount = catalogFromDB.MaximumAmount,
                    MinimumAmount = catalogFromDB.MinimumAmount,
                    WarehouseId   = catalogFromDB.WarehouseId,
                    Name          = catalogFromDB.Name.Name,
                };
                var log = new SimpleLogTable()
                {
                    Date        = DateTime.Now,
                    UserName    = username,
                    Action      = "Pievienots",
                    What        = items.Name,
                    Amount      = items.ProductAmount,
                    Manually    = "Manuāli",
                    WarehouseId = catalogFromDB.WarehouseId.Value,
                    Where       = catalogFromDB.Warehouse.Name
                };
                await SimpleLogTableService.AddLog(log);

                return(Ok(catalogVM));
            }
            else
            {
                return(BadRequest(new { message = "Something went wrong." }));
            }
        }
Ejemplo n.º 2
0
        public async Task AddLog(SimpleLogTable log)
        {
            await DB.SimpleLogTableDB.AddAsync(log);

            await DB.SaveChangesAsync();
        }
Ejemplo n.º 3
0
        public async Task <Catalog> SaveCatalog(Catalog catalog, string username)
        {
            var warehouse = await DB.WarehouseDB.FirstOrDefaultAsync(x => x.Id == catalog.WarehouseId);

            // If catalog does not have id, that means that it's a new entity, and we need an add functionality
            if (catalog.Id == null || catalog.Id.Equals(Guid.Empty))
            {
                var catalogName = await DB.CatalogNameDB.FirstOrDefaultAsync(x => x.Id == catalog.CatalogNameId);



                if (catalogName != null)
                {
                    catalog.CatalogNameId = catalogName.Id;
                    // Adding new warehouse to DB
                    await DB.CatalogDB.AddAsync(catalog);

                    catalogName.Amount++;
                    DB.CatalogNameDB.Update(catalogName);
                    warehouse.HasMinCatalogs = true;
                    DB.WarehouseDB.Update(warehouse);
                    //await CheckIfProductsNeedsToBeCreated(catalog);
                    await SimpleLogTableService.AddAdminLog($"Catalog {catalogName.Name} bija izveidots {warehouse.Name} noliktava", username);

                    if (catalog.CurrentAmount != 0)
                    {
                        var log = new SimpleLogTable()
                        {
                            Date        = DateTime.Now,
                            UserName    = username,
                            Action      = "Pievienots",
                            What        = catalogName.Name,
                            Amount      = Math.Abs(catalog.CurrentAmount),
                            Manually    = "Manuāli",
                            WarehouseId = warehouse.Id,
                            Where       = warehouse.Name
                        };
                        await SimpleLogTableService.AddLog(log);
                    }
                    // Saving changes in DB
                    await DB.SaveChangesAsync();
                }
                else
                {
                    return(null);
                }
            }
            // If catalog has an id, that means that it's  not a new entity, and we need an edit functionality
            else
            {
                // Getting object from DB that has similar id like in our param variable
                var catalogFromDb = await DB.CatalogDB.FirstOrDefaultAsync(x => x.Id == catalog.Id);

                // Using mapper to edit all fields
                catalogFromDb.MaximumAmount = catalog.MaximumAmount;
                catalogFromDb.MinimumAmount = catalog.MinimumAmount;
                catalogFromDb.ProductPrice  = catalog.ProductPrice;
                // Updating DB
                DB.CatalogDB.Update(catalogFromDb);
                // Saving changes in DB
                await DB.SaveChangesAsync();

                await SimpleLogTableService.AddAdminLog($"Catalog {catalogFromDb.Name} informacija bija izmainīta {warehouse.Name} noliktava", username);
            }
            // Returning object
            return(catalog);
        }