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." })); } }
public async Task AddLog(SimpleLogTable log) { await DB.SimpleLogTableDB.AddAsync(log); await DB.SaveChangesAsync(); }
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); }