public void PutFixtures(int id, Fixtures fixtures) { var result = db.Fixtures.Include(e => e.FixtureParts).FirstOrDefault(v => v.Id == fixtures.Id); result.Id = fixtures.Id; result.FixtureName = fixtures.FixtureName; result.FixtureCategoryId = fixtures.FixtureCategoryId; result.FixtureCode = fixtures.FixtureCode; var lineToRemove = result.FixtureParts .Where(line => !(fixtures.FixtureParts.Any(inputLine => inputLine.Id == line.Id)) ).ToList(); db.FixtureParts.RemoveRange(lineToRemove); foreach (var line in fixtures.FixtureParts) { if (line.Id > 0) { var lineToModify = db.FixtureParts.Where(V => V.Id == line.Id).FirstOrDefault(); lineToModify.Id = line.Id; lineToModify.PartId = line.PartId; lineToModify.Quantity = line.Quantity; lineToModify.FixtureId = line.FixtureId; //lineToModify.Voucher = line.Voucher; } else { result.FixtureParts.Add(new FixtureParts { PartId = line.PartId, FixtureId = line.FixtureId, Cost = line.Cost, Quantity = line.Quantity }); } } db.SaveChanges(); }
public void PutPurchaseOrders(int id, [FromBody] PurchaseOrders input) { var result = db.PurchaseOrders.Include(e => e.Pofixtures).Include(e => e.Poparts).FirstOrDefault(v => v.Id == input.Id); result.Id = input.Id; result.PoactShipDate = input.PoactShipDate; result.Pocompleted = input.Pocompleted; result.Pocost = input.Pocost; result.PoestShipDate = input.PoestShipDate; result.Poname = input.Poname; result.Ponumber = input.Ponumber; result.PorecDate = input.PorecDate; result.Poprice = input.Poprice; var lineToRemove = result.Poparts .Where(line => !(input.Poparts.Any(inputLine => inputLine.Id == line.Id)) ).ToList(); db.Poparts.RemoveRange(lineToRemove); var lineToRemove2 = result.Pofixtures .Where(line => !(input.Pofixtures.Any(inputLine => inputLine.Id == line.Id)) ).ToList(); db.Pofixtures.RemoveRange(lineToRemove2); foreach (var line in input.Pofixtures) { if (line.Id > 0) { var lineToModify = db.Pofixtures.Where(V => V.Id == line.Id).FirstOrDefault(); lineToModify.FixtureId = line.FixtureId; lineToModify.FixtureCommision = line.FixtureCommision; lineToModify.FixtureCost = line.FixtureCost; lineToModify.FixtureQuantity = line.FixtureQuantity; lineToModify.FixturePrice = line.FixturePrice; lineToModify.PurchaseOrderId = result.Id; lineToModify.FixtureQuantityCompleted = line.FixtureQuantityCompleted; lineToModify.FixtureQuantityShipped = line.FixtureQuantityShipped; //lineToModify.Voucher = line.Voucher; } else { result.Pofixtures.Add(new Pofixtures { FixtureId = line.FixtureId, FixtureCommision = line.FixtureCommision, FixtureCost = line.FixtureCost, FixtureQuantity = line.FixtureQuantity, FixturePrice = line.FixturePrice, PurchaseOrderId = result.Id, FixtureQuantityCompleted = line.FixtureQuantityCompleted, FixtureQuantityShipped = line.FixtureQuantityShipped }); } } foreach (var line in input.Poparts) { if (line.Id > 0) { var lineToModify = db.Poparts.Where(V => V.Id == line.Id).FirstOrDefault(); lineToModify.PurchaseOrderId = line.PurchaseOrderId; lineToModify.PartId = line.PartId; lineToModify.Quantity = line.Quantity; //lineToModify.Voucher = line.Voucher; } else { result.Poparts.Add(new Poparts { PurchaseOrderId = result.Id, PartId = line.PartId, Quantity = line.Quantity, }); } } db.SaveChanges(); }