public bool Create(ConsolidateSingleModel model) { using (var db = new EntityContext()) { using (var dbtransact = db.Database.BeginTransaction()) { TbConsolidateList consolidation = new TbConsolidateList { ConsolidatedDate = DateTime.Now, AmountOfItem = model.ItemId.Length, Customer = db.tbCustomers.FirstOrDefault(x => x.Id == model.CustomerId), Fee = model.Fee, }; db.tbConsolidateLists.Add(consolidation); db.SaveChanges(); db.Entry(consolidation).State = EntityState.Modified; consolidation.ConsolidateNumber = consolidation.Id.ToString().PadRight(6, '0'); db.SaveChanges(); foreach (var item in model.ItemId) { TbConsolidatedItems it = new TbConsolidatedItems { Consolidator = consolidation, Items = db.TbItems.FirstOrDefault(x => x.Id == item) }; db.tbConsolidatedItems.Add(it); } db.SaveChanges(); dbtransact.Commit(); return(true); } } }
public bool CreateConsolidation(int cusomterId, double amount, double fee, int[] itemId) { using (var db = new EntityContext()) { using (var dbtransact = db.Database.BeginTransaction()) { try { //get balance from delivery double kip = 0; double baht = 0; double dollar = 0; foreach (var id in itemId) { kip += db.tbItemSentHistories .Include(x => x.Item) .FirstOrDefault(x => x.Item.Id == id).IncomingBalanceInKip; baht += db.tbItemSentHistories .Include(x => x.Item) .FirstOrDefault(x => x.Item.Id == id).IncomingBalanceInBaht; dollar += db.tbItemSentHistories.Include(x => x.Item) .FirstOrDefault(x => x.Item.Id == id).IncomingBalanceInDollar; } double balanceToTransfer = kip - fee; TbConsolidateList list = new TbConsolidateList { Customer = db.tbCustomers.FirstOrDefault(u => u.Id == cusomterId), AmountOfItem = amount, ConsolidatedDate = DateTime.Now.Date, IncomingBalanceInKip = kip, IncomingBalanceInBaht = baht, IncomingBalanceInDollar = dollar, BalanceToTransfer = balanceToTransfer, isBalanceTransfer = false, isCustomerConfirmed = false, Fee = fee, }; db.tbConsolidateLists.Add(list); db.SaveChanges(); db.Entry(list).State = EntityState.Modified; list.ConsolidateNumber = "L" + list.Id.ToString().PadLeft(5, '0'); foreach (var id in itemId) { TbConsolidatedItems itemlist = new TbConsolidatedItems { Consolidator = list, Items = db.TbItems.FirstOrDefault(i => i.Id == id) }; db.tbConsolidatedItems.Add(itemlist); } db.SaveChanges(); dbtransact.Commit(); return(true); } catch (Exception) { dbtransact.Rollback(); return(false); } } } }