public async Task <ActionResult> Post([FromBody] PurchasingDispositionVerificationViewModel viewModel) { try { VerifyUser(); ValidateService.Validate(viewModel); await Service.PurchasingDispositionVerification(viewModel); return(NoContent()); } catch (ServiceValidationException e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE) .Fail(e); return(BadRequest(Result)); } catch (AggregateException ex) { string message = string.Join(',', ex.InnerExceptions.Select(x => x.Message)); Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } catch (Exception e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }
public void Should_Success_Validate_Wrong_Verify_Date_VM_Verification_Disposition() { PurchasingDispositionVerificationViewModel vm = new PurchasingDispositionVerificationViewModel() { DispositionNo = "DispositionNo", Id = 1, Reason = "Reason", SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION, VerifyDate = DateTimeOffset.UtcNow.AddDays(1) }; Assert.True(vm.Validate(null).Count() > 0); }
public void Should_No_Error_Validate_VM_Verification_Disposition() { PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod())); PurchasingDispositionVerificationViewModel vm = new PurchasingDispositionVerificationViewModel() { DispositionNo = "DispositionNo", Id = 1, Reason = "Reason", SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION, VerifyDate = DateTimeOffset.UtcNow }; Assert.True(vm.Validate(null).Count() == 0); }
public async Task Should_Fail_Post_Disposition_Verification() { PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod())); PurchasingDispositionExpeditionModel model = await _dataUtil(service).GetTestData(); PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel() { DispositionNo = model.DispositionNo, Id = 0, Reason = "Reason", SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION, VerifyDate = DateTimeOffset.UtcNow }; await Assert.ThrowsAnyAsync <Exception>(() => service.PurchasingDispositionVerification(null)); }
public async Task Should_Success_Post_Disposition_Verification_Create_Purchasing() { PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod())); PurchasingDispositionExpeditionModel model = await _dataUtil(service).GetTestData(); PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel() { DispositionNo = model.DispositionNo, Id = 0, Reason = "Reason", SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION, VerifyDate = DateTimeOffset.UtcNow }; var response = await service.PurchasingDispositionVerification(data); Assert.NotEqual(0, response); }
public async Task Should_Success_Get_All_Data() { PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod())); PurchasingDispositionExpeditionModel model = await _dataUtil(service).GetTestData(); PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel() { DispositionNo = model.DispositionNo, Id = 0, Reason = "Reason", SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION, VerifyDate = DateTimeOffset.UtcNow }; await service.PurchasingDispositionVerification(data); DateTimeOffset tomorrow = DateTimeOffset.UtcNow.AddDays(1); PaymentDispositionNotVerifiedReportService report = new PaymentDispositionNotVerifiedReportService(GetServiceProvider().Object, _dbContext(GetCurrentMethod())); var response = report.GetReport("", "", "", model.VerifyDate.GetValueOrDefault().AddDays(-30), tomorrow, 1, 25, "{}", 7, "notHistory"); Assert.NotNull(response.Item1); }
public async Task Should_Success_GenerateExcel_WithDateIsNull() { PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod())); PurchasingDispositionExpeditionModel model = await _dataUtil(service).GetTestData(); PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel() { DispositionNo = model.DispositionNo, Id = 0, Reason = "Reason", SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION, VerifyDate = DateTimeOffset.UtcNow }; await service.PurchasingDispositionVerification(data); PaymentDispositionNotVerifiedReportService report = new PaymentDispositionNotVerifiedReportService(GetServiceProvider().Object, _dbContext(GetCurrentMethod())); var reportResponse = report.GenerateExcel("", "", "", null, null, 7, "history"); Assert.NotNull(reportResponse); }
public async Task <int> PurchasingDispositionVerification(PurchasingDispositionVerificationViewModel data) { int updated = 0; using (var transaction = DbContext.Database.BeginTransaction()) { try { PurchasingDispositionExpeditionModel model; if (data.Id == 0) { model = DbContext.PurchasingDispositionExpeditions.OrderByDescending(x => x.LastModifiedUtc).First(x => x.DispositionNo == data.DispositionNo); } else { model = DbContext.PurchasingDispositionExpeditions.Single(x => x.Id == data.Id); } if (data.SubmitPosition == ExpeditionPosition.SEND_TO_PURCHASING_DIVISION) { model.DispositionNo = data.DispositionNo; model.VerifyDate = data.VerifyDate; model.SendToPurchasingDivisionBy = IdentityService.Username; model.SendToPurchasingDivisionDate = data.VerifyDate; model.Position = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION; model.Active = false; model.NotVerifiedReason = data.Reason; model.SendToCashierDivisionBy = null; model.SendToCashierDivisionDate = DateTimeOffset.MinValue; EntityExtension.FlagForUpdate(model, IdentityService.Username, UserAgent); updated = await DbContext.SaveChangesAsync(); UpdateDispositionPosition(new List <string>() { model.DispositionNo }, ExpeditionPosition.SEND_TO_PURCHASING_DIVISION); } else if (data.SubmitPosition == ExpeditionPosition.SEND_TO_CASHIER_DIVISION) { model.DispositionNo = data.DispositionNo; model.VerifyDate = data.VerifyDate; model.SendToCashierDivisionBy = IdentityService.Username; model.SendToCashierDivisionDate = data.VerifyDate; model.Position = ExpeditionPosition.SEND_TO_CASHIER_DIVISION; model.Active = true; model.SendToPurchasingDivisionBy = null; model.SendToPurchasingDivisionDate = DateTimeOffset.MinValue; model.NotVerifiedReason = null; EntityExtension.FlagForUpdate(model, IdentityService.Username, UserAgent); updated = await DbContext.SaveChangesAsync(); UpdateDispositionPosition(new List <string>() { model.DispositionNo }, ExpeditionPosition.SEND_TO_CASHIER_DIVISION); } transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw e; } } return(updated); }
public void Should_Success_Validate_All_Null_VM_Verification_Disposition() { PurchasingDispositionVerificationViewModel vm = new PurchasingDispositionVerificationViewModel(); Assert.True(vm.Validate(null).Count() > 0); }