public async Task <bool> Delete(InventoryItemTag entity) { _context.InventoryItemsTags.Remove(entity); var changes = await _context.SaveChangesAsync(); return(changes > 0); }
public async Task <bool> Update(InventoryItemTag entity) { _context.InventoryItemsTags.Attach(entity); var changes = await _context.SaveChangesAsync(); return(changes > 0); }
public async Task <int> Create(InventoryItemTag entity) { _context.InventoryItemsTags.Add(entity); await _context.SaveChangesAsync(); return(entity.Id); }
public async Task <long> CreateEntryAsync(string sku, string inventoryItemTypeCode, string name, string collection, string manufacturer, int hue, int saturation, int value, IEnumerable <string> unitOfMeasureCodes, string pricingScheduleName, DateTime utcNow) { using var ctx = QuiltContextFactory.Create(); var dbPricingSchedule = ctx.PricingSchedules.Where(r => r.Name == pricingScheduleName).Single(); var dbCollectionTag = ctx.Tags.Where(r => r.TagTypeCode == TagTypeCodes.Collection && r.Value == collection).SingleOrDefault(); if (dbCollectionTag == null) { dbCollectionTag = new Tag() { TagTypeCodeNavigation = ctx.TagType(TagTypeCodes.Collection), Value = collection, CreateDateTimeUtc = utcNow }; _ = ctx.Tags.Add(dbCollectionTag); } var dbManufacturerTag = ctx.Tags.Where(r => r.TagTypeCode == TagTypeCodes.Manufacturer && r.Value == manufacturer).SingleOrDefault(); if (dbManufacturerTag == null) { dbManufacturerTag = new Tag() { TagTypeCodeNavigation = ctx.TagType(TagTypeCodes.Manufacturer), Value = manufacturer, CreateDateTimeUtc = utcNow }; _ = ctx.Tags.Add(dbManufacturerTag); } var dbInventoryItem = ctx.InventoryItems.Where(r => r.Sku == sku).SingleOrDefault(); if (dbInventoryItem == null) { dbInventoryItem = new InventoryItem() { Sku = sku, InventoryItemTypeCode = inventoryItemTypeCode, Name = name, Quantity = 0, ReservedQuantity = 0, Hue = hue, Saturation = saturation, Value = value, PricingSchedule = dbPricingSchedule }; _ = ctx.InventoryItems.Add(dbInventoryItem); } else { dbInventoryItem.InventoryItemTypeCode = inventoryItemTypeCode; dbInventoryItem.Name = name; //dbInventoryItem.Quantity //dbInventoryItem.ReservedQuantity dbInventoryItem.Hue = hue; dbInventoryItem.Saturation = saturation; dbInventoryItem.Value = value; dbInventoryItem.PricingSchedule = dbPricingSchedule; } var dbInventoryItemCollectionTag = dbInventoryItem.InventoryItemTags.Where(r => r.Tag.TagTypeCode == TagTypeCodes.Collection).SingleOrDefault(); if (dbInventoryItemCollectionTag == null) { dbInventoryItemCollectionTag = new InventoryItemTag() { InventoryItem = dbInventoryItem, Tag = dbCollectionTag, CreateDateTimeUtc = utcNow, }; _ = ctx.InventoryItemTags.Add(dbInventoryItemCollectionTag); } else { dbInventoryItemCollectionTag.Tag = dbCollectionTag; } var dbInventoryItemManufacturerTag = dbInventoryItem.InventoryItemTags.Where(r => r.Tag.TagTypeCode == TagTypeCodes.Manufacturer).SingleOrDefault(); if (dbInventoryItemManufacturerTag == null) { dbInventoryItemManufacturerTag = new InventoryItemTag() { InventoryItem = dbInventoryItem, Tag = dbManufacturerTag, CreateDateTimeUtc = utcNow }; _ = ctx.InventoryItemTags.Add(dbInventoryItemManufacturerTag); } else { dbInventoryItemManufacturerTag.Tag = dbManufacturerTag; } foreach (var unitOfMeasureCode in unitOfMeasureCodes) { var dbUnitOfMeasure = ctx.UnitOfMeasure(unitOfMeasureCode); if (!dbInventoryItem.InventoryItemUnits.Any(r => r.UnitOfMeasureCode == unitOfMeasureCode)) { var dbInventoryItemUnit = new InventoryItemUnit() { InventoryItem = dbInventoryItem, UnitOfMeasureCodeNavigation = dbUnitOfMeasure }; _ = ctx.InventoryItemUnits.Add(dbInventoryItemUnit); } } _ = await ctx.SaveChangesAsync().ConfigureAwait(false); InvalidateCachedEntries(); return(dbInventoryItem.InventoryItemId); }