public override async void UpdateAsync(int id, FinishingPrintingSalesContractModel model) { if (model.Details != null) { HashSet <long> detailIds = FinishingPrintingSalesContractDetailLogic.GetFPSalesContractIds(id); foreach (var itemId in detailIds) { FinishingPrintingSalesContractDetailModel data = model.Details.FirstOrDefault(prop => prop.Id.Equals(itemId)); if (data == null) { await FinishingPrintingSalesContractDetailLogic.DeleteAsync(Convert.ToInt32(itemId)); } else { FinishingPrintingSalesContractDetailLogic.UpdateAsync(Convert.ToInt32(itemId), data); } foreach (FinishingPrintingSalesContractDetailModel item in model.Details) { if (item.Id == 0) { FinishingPrintingSalesContractDetailLogic.Create(item); } } } } EntityExtension.FlagForUpdate(model, IdentityService.Username, "sales-service"); DbSet.Update(model); }
public async Task DeleteAsync_Throws_Exception() { string testName = GetCurrentMethod(); var dbContext = _dbContext(testName); Mock <IIdentityService> identityService = new Mock <IIdentityService>(); identityService.Setup(s => s.Username).Throws(new Exception()); var model = new FinishingPrintingSalesContractDetailModel() { FinishingPrintingSalesContract = new FinishingPrintingSalesContractModel() { AccountBankAccountName = "Fetih" } }; dbContext.FinishingPrintingSalesContractDetails.Add(model); dbContext.SaveChanges(); FinishingPrintingSalesContractDetailLogic unitUnderTest = new FinishingPrintingSalesContractDetailLogic(GetServiceProvider(testName).Object, identityService.Object, dbContext); await Assert.ThrowsAsync <Exception>(() => unitUnderTest.DeleteAsync(model.Id)); }
public async Task DeleteAsync_Return_Success() { string testName = GetCurrentMethod(); var dbContext = _dbContext(testName); IIdentityService identityService = new IdentityService { Username = "******" }; var model = new FinishingPrintingSalesContractDetailModel() { FinishingPrintingSalesContract = new FinishingPrintingSalesContractModel() { AccountBankAccountName = "Fetih" } }; dbContext.FinishingPrintingSalesContractDetails.Add(model); dbContext.SaveChanges(); FinishingPrintingSalesContractDetailLogic unitUnderTest = new FinishingPrintingSalesContractDetailLogic(GetServiceProvider(testName).Object, identityService, dbContext); await unitUnderTest.DeleteAsync(model.Id); }