public async Task <IActionResult> CreateNewCase(NewCaseModel caseModel) { if (ModelState.IsValid == false) { return(ValidationProblem()); } (int existingCaseId, DateTime? deleted) = await _courtCasesService .ExistsCaseNumberAsync(caseModel.CaseNumber, caseModel.AppealNumber); if (existingCaseId != -1 && deleted.HasValue == false) { return(UnprocessableEntity("Case already exists")); } if (caseModel.AppealNumber > 0) { (int prevAppealCaseId, DateTime? prevAppealDeleted) = await _courtCasesService .ExistsCaseNumberAsync(caseModel.CaseNumber, caseModel.AppealNumber - 1); if (prevAppealCaseId == -1 || prevAppealDeleted.HasValue) { return(UnprocessableEntity("Previous appeal does not exist")); } CaseStatusModel caseStatus = await _courtCasesService.GetCaseStatusAsync(prevAppealCaseId); if (caseStatus.StatusName != ProceedingDecisions.FinalJudgement) { return(UnprocessableEntity($"Previous appeal status, {caseStatus.StatusName}, must be {ProceedingDecisions.FinalJudgement}")); } } int currUser = _sessionService.GetUserId(HttpContext); int caseId = await _courtCasesService.CreateAsync(caseModel, currUser); // restore case if deleted return(Created("api/Case/Details", caseId)); }
private void AddCaseProc() { NewCase = new NewCaseModel(); _AddCaseWindow = new AddCaseWindow(); _AddCaseWindow.Owner = Application.Current.MainWindow; _AddCaseWindow.ShowDialog(); }
private static bool IsEqual(NewCaseModel expected, NewCaseModel actual) { bool isEqual = expected.CaseNumber == actual.CaseNumber && expected.AppealNumber == actual.AppealNumber && expected.CaseTypeId == actual.CaseTypeId && expected.CourtId == actual.CourtId && expected.LawyerId == actual.LawyerId && expected.LawyerId == actual.LawyerId && expected.LocationId == actual.LocationId; return(isEqual); }
public async Task CreateNewCase_ValidationProblem() { // Arrange var caseModel = new NewCaseModel { CaseNumber = "Cn1", AppealNumber = 0, CaseTypeId = 1, CourtId = 1, LawyerId = 1, LocationId = 1 }; _sut.ModelState.AddModelError("Field", "Sample Error Details"); // Act await _sut.CreateNewCase(caseModel); // Assert await _mockCourtCasesService.DidNotReceiveWithAnyArgs().ExistsCaseNumberAsync(default, default);
/// <summary> /// Add new case, case is restored if deleted /// </summary> /// <param name="caseModel"></param> /// <param name="currUser"></param> /// <returns>-1 if undeleted case already exists, new caseId otherwise</returns> public async Task <int> CreateAsync(NewCaseModel caseModel, int currUser) { var sqlModel = new SqlParamsModel { Sql = "pkg_court_cases.p_add_new_case", Parameters = new OracleDynamicParameters() }; sqlModel.Parameters.Add("pi_case_number", caseModel.CaseNumber, dbType: OracleMappingType.Varchar2, ParameterDirection.Input); sqlModel.Parameters.Add("pi_appeal_number", caseModel.AppealNumber, dbType: OracleMappingType.Int32, ParameterDirection.Input); sqlModel.Parameters.Add("pi_case_type_id", caseModel.CaseTypeId, dbType: OracleMappingType.Int32, ParameterDirection.Input); sqlModel.Parameters.Add("pi_court_id", caseModel.CourtId, dbType: OracleMappingType.Int32, ParameterDirection.Input); sqlModel.Parameters.Add("pi_location_id", caseModel.LocationId, dbType: OracleMappingType.Int32, ParameterDirection.Input); sqlModel.Parameters.Add("pi_lawyer_id", caseModel.LawyerId, dbType: OracleMappingType.Int32, ParameterDirection.Input); sqlModel.Parameters.Add("pi_action_by", currUser, dbType: OracleMappingType.Int32, ParameterDirection.Input); sqlModel.Parameters.Add("po_case_id", dbType: OracleMappingType.Int32, direction: ParameterDirection.Output); await _dataAccess.ExecuteAsync(sqlModel); int caseId = (int)sqlModel.Parameters.Get <decimal>("po_case_id"); return(caseId); }
public Task <HttpResponseMessage> AddNewCaseAsync(NewCaseModel caseDetails) { return(_http.PostAsJsonAsync($"{detailsBaseUrl}", caseDetails)); }