Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
 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)));
     }
 }
Exemplo n.º 4
0
 public Task <OrderPembelian> UpdateOrder(int orderId, OrderPembelian order)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 5
0
 public Task <OrderPembelian> CreateOrder(OrderPembelian order)
 {
     throw new NotImplementedException();
 }