public static Domain.Inventory Map(Data.Models.Inventory deInv) => new Domain.Inventory { invId = deInv.Invid, cost_inv = deInv.Cost, FkIngredient = deInv.FkIngredient, resfId = deInv.Resfid, stock = deInv.Stock };
public ServiceResponse <Data.Models.Product> CreateProduct(Data.Models.Product product) { try { _db.Products.Add(product); var newInventory = new Data.Models.Inventory { Product = product, AvailableQuantity = 0, SupposedQuantity = 10 }; _db.ProductInventories.Add(newInventory); _db.SaveChanges(); return(new ServiceResponse <Data.Models.Product> { Data = product, Time = DateTime.UtcNow, Message = "Saved new product", IsSuccess = true }); } catch (Exception e) { return(new ServiceResponse <Data.Models.Product> { Data = product, Time = DateTime.UtcNow, Message = e.StackTrace, IsSuccess = false }); } }
public async Task<bool> Handle(UpdateAlbumCommand request, CancellationToken cancellationToken) { if (request.AlbumId <= 0 || string.IsNullOrEmpty(request.AlbumName) || request.Stock < 0 || request.Type <= 0 || request.Artist == null || string.IsNullOrEmpty(request.Artist.Name)) { _logger.Information("Requesting to update album with invalid request {@request}, returning false.", request); return false; } try { _logger.Information("Request to update album {@Request}", request); using (var context = AlbumsDbContext.Create()) { using (var transaction = context.Database.BeginTransaction()) { var album = context.Albums.SingleOrDefault(a => a.Id == request.AlbumId); if (album != null) { var typeid = context.AlbumTypes.SingleOrDefault(t => t.Id == request.Type); album.AlbumName = request.AlbumName; album.TypeId = typeid.Id; var artist = context.Artists.FirstOrDefault(a => a.Name.Replace(" ", "").Equals(request.Artist.Name.Replace(" ", ""), StringComparison.InvariantCultureIgnoreCase)); if (artist == null) { artist = new Artist { Name = request.Artist.Name }; context.Artists.Add(artist); await context.SaveChangesAsync(); } var albumArtist = context.AlbumArtists.FirstOrDefault(ar => ar.AlbumId == request.AlbumId); if (albumArtist == null) { var ar = new AlbumArtists { AlbumId = album.Id, ArtistId = artist.Id }; context.AlbumArtists.Add(ar); await context.SaveChangesAsync(); } else { albumArtist.ArtistId = artist.Id; await context.SaveChangesAsync(); } var inventory = context.Inventory.SingleOrDefault(i => i.SKU.Equals(album.SKU, StringComparison.InvariantCultureIgnoreCase)); if (inventory == null) { // insert inventory record inventory = new Data.Models.Inventory { SKU = album.SKU, Stock = request.Stock }; context.Inventory.Add(inventory); } else { // update inventory record inventory.Stock = request.Stock; } await context.SaveChangesAsync(); } transaction.Commit(); } } _logger.Information("Album was updated succesfully"); return true; } catch (Exception ex) { _logger.Error(ex, "Errored while updating album with message {message}", ex.Message); return false; } }