public Task <OrderPembelian> CreateOrder(OrderPembelian order) { try { dbContext.ChangeTracker.Clear(); dbContext.Set <OrderPembelian>().AsNoTracking(); var entries = dbContext.ChangeTracker.Entries(); if (order.Supplier != null) { dbContext.Entry(order.Supplier).State = EntityState.Unchanged; } foreach (var item in order.Items) { dbContext.Entry(item.Product).State = EntityState.Unchanged; dbContext.Entry(item.Unit).State = EntityState.Unchanged; } dbContext.OrderPembelian.Add(order); dbContext.SaveChanges(); return(Task.FromResult(order)); } catch (Exception ex) { _logger.LogError(ex.Message); throw new SystemException(ex.Message); } }
public Task <OrderPembelian> UpdateOrder(int id, OrderPembelian order) { try { var lastOrder = dbContext.OrderPembelian.Where(x => x.Id == id).Include(x => x.Supplier).Include(x => x.Items).AsNoTracking().FirstOrDefault(); if (lastOrder == null) { throw new SystemException("Order Not Found !"); } lastOrder.OrderDate = order.OrderDate; lastOrder.Status = order.Status; foreach (var item in order.Items) { if (item.Id <= 0) { dbContext.Entry(item.Unit).State = EntityState.Unchanged; dbContext.Entry(item.Product).State = EntityState.Unchanged; dbContext.OrderPembelianItem.Add(item); } else { var updatedItem = dbContext.OrderPembelianItem.AsNoTracking().SingleOrDefault(x => x.Id == item.Id); if (updatedItem == null) { throw new SystemException("Order Item Not Found !"); } dbContext.Entry(updatedItem).CurrentValues.SetValues(item); } } //remove if (order.Items.Count != lastOrder.Items.Count) { foreach (var item in lastOrder.Items) { var existsDb = order.Items.SingleOrDefault(x => x.Id == item.Id); if (existsDb == null) { dbContext.OrderPembelianItem.Remove(existsDb); } } } dbContext.SaveChanges(); return(Task.FromResult(order)); } catch (Exception ex) { _logger.LogError(ex.Message); throw new SystemException(ex.Message); } }
public async Task <IActionResult> Put(int id, OrderPembelian order) { try { return(Ok(await service.UpdateOrder(id, order))); } catch (Exception ex) { return(BadRequest(new ErrorMessage(ex.Message))); } }
public Task <OrderPembelian> UpdateOrder(int orderId, OrderPembelian order) { throw new NotImplementedException(); }
public Task <OrderPembelian> CreateOrder(OrderPembelian order) { throw new NotImplementedException(); }