Example #1
0
        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));
        }
Example #2
0
        private void AddCaseProc()
        {
            NewCase = new NewCaseModel();

            _AddCaseWindow       = new AddCaseWindow();
            _AddCaseWindow.Owner = Application.Current.MainWindow;
            _AddCaseWindow.ShowDialog();
        }
Example #3
0
        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);
        }
Example #4
0
        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);
Example #5
0
        /// <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);
        }
Example #6
0
 public Task <HttpResponseMessage> AddNewCaseAsync(NewCaseModel caseDetails)
 {
     return(_http.PostAsJsonAsync($"{detailsBaseUrl}", caseDetails));
 }