public Task <int> InsertAsync(MaterialDeliveryNoteModel model) { do { var datamod = _materialDeliveryNoteDbSet.Where(a => a.BonCode == model.BonCode).Count(); if (datamod >= 0 && datamod < 9) { datamod += 1; model.Code = model.BonCode + $"000{datamod}"; } else if (datamod >= 9 && datamod < 99) { datamod += 1; model.Code = model.BonCode + $"00{datamod}"; } else if (datamod >= 99 && datamod < 999) { datamod += 1; model.Code = model.BonCode + $"0{datamod}"; } else { datamod += 1; model.Code = model.BonCode + $"{datamod}"; } } while (_materialDeliveryNoteDbSet.Any(entity => entity.Code == model.Code)); EntityExtension.FlagForCreate(model, _identityProvider.Username, USER_AGENT); _materialDeliveryNoteDbSet.Add(model); return(_dbContext.SaveChangesAsync()); }
public void Should_Success_Instantiate() { var item = new List <ItemsViewModel>() { new ItemsViewModel() }; var date = DateTimeOffset.Now; MaterialDeliveryNoteModel model = new MaterialDeliveryNoteModel() { Id = 1, Code = "Code", DateSJ = date, BonCode = "BonCode", DateFrom = date, DateTo = date, DoNumberId = 1, DONumber = "DONumber", FONumber = "FONumber", ReceiverId = 1, ReceiverCode = "ReceiverCode", ReceiverName = "ReceiverName", Remark = "Remark", SCNumberId = 1, SCNumber = "SCNumber", SenderId = 1, SenderCode = "SenderCode", SenderName = "SenderName", StorageId = 1, StorageCode = "StorageCode", StorageName = "StorageName", Items = item }; Assert.Equal(1, model.Id); Assert.Equal("Code", model.Code); Assert.Equal(date, model.DateSJ); Assert.Equal("BonCode", model.BonCode); Assert.Equal(date, model.DateFrom); Assert.Equal(date, model.DateTo); Assert.Equal(1, model.DoNumberId); Assert.Equal("DONumber", model.DONumber); Assert.Equal("FONumber", model.FONumber); Assert.Equal(1, model.ReceiverId); Assert.Equal("ReceiverCode", model.ReceiverCode); Assert.Equal("ReceiverName", model.ReceiverName); Assert.Equal("Remark", model.Remark); Assert.Equal(1, model.SCNumberId); Assert.Equal("SCNumber", model.SCNumber); Assert.Equal(1, model.SenderId); Assert.Equal("SenderCode", model.SenderCode); Assert.Equal("SenderName", model.SenderName); Assert.Equal(1, model.StorageId); Assert.Equal("StorageCode", model.StorageCode); Assert.Equal("StorageName", model.StorageName); Assert.Equal(item, model.Items); }
public Task <int> UpdateAsync(int id, MaterialDeliveryNoteModel model) { var modelToUpdate = _materialDeliveryNoteDbSet.Include(s => s.Items).FirstOrDefault(entity => entity.Id == id); modelToUpdate.SetCode(model.BonCode); modelToUpdate.SetDateSJ(model.DateSJ); modelToUpdate.SetBonCode(model.BonCode); modelToUpdate.SetDateFrom(model.DateFrom); modelToUpdate.SetDateTo(model.DateTo); modelToUpdate.SetDONumberId(model.DoNumberId); modelToUpdate.SetDONumber(model.DONumber); modelToUpdate.SetFONumber(model.FONumber); modelToUpdate.SetReceiverId(model.ReceiverId); modelToUpdate.SetReceiverCode(model.ReceiverCode); modelToUpdate.SetReceiverName(model.ReceiverName); modelToUpdate.SetRemark(model.Remark); modelToUpdate.SetSCNumberId(model.SCNumberId); modelToUpdate.SetSCNumber(model.SCNumber); modelToUpdate.SetSenderId(model.SenderId); modelToUpdate.SetSenderCode(model.SenderCode); modelToUpdate.SetSenderName(model.SenderName); modelToUpdate.SetStorageid(model.StorageId); modelToUpdate.SetStorageCode(model.StorageCode); modelToUpdate.SetStorageName(model.StorageName); foreach (var itm in modelToUpdate.Items) { var locitem = model.Items.FirstOrDefault(s => s.Id == itm.Id); if (locitem != null) { itm.Setidsop(locitem.IdSOP); itm.SetNoSPP(locitem.NoSOP); itm.SetMaterialName(locitem.MaterialName); itm.SetInputLot(locitem.InputLot); itm.SetWeightBruto(locitem.WeightBruto); itm.SetWeightDOS(locitem.WeightDOS); itm.SetWeightCone(locitem.WeightCone); itm.SetWeightBale(locitem.WeightBale); itm.SetGetTotal(locitem.GetTotal); } else { _ItemsDbSet.Remove(itm); } } foreach (var newitm in model.Items.Where(s => s.Id == 0)) { modelToUpdate.Items.Add(newitm); } return(_dbContext.SaveChangesAsync()); }