public ResponseEntityVM Create(PolicyModel entity)
        {
            try
            {
                var highRiskType               = RiskTypeEnum.High.ToString("G");
                var highRiskTypeCode           = ((List <CodeVM>)_codeService.GetRiskTypeCodes().Result).Where(x => x.Code.Equals(highRiskType)).FirstOrDefault();
                var validateBusinessRuleResult = ValidateBusinessRule(entity, highRiskTypeCode);

                if (validateBusinessRuleResult.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var activeAssignmentStatus = AssigmentStatusEnum.Assigned.ToString("G");

                    var activeAssignmentStatusCode = ((List <CodeVM>)_codeService.GetAssignmentStatusCodes().Result).Where(x => x.Code.Equals(activeAssignmentStatus)).FirstOrDefault();

                    entity.PolicyStatusID = activeAssignmentStatusCode.CodeID;
                    var entityResult = _repository.Insert(entity);
                    _repository.SaveChanges();
                    return(new ResponseEntityVM()
                    {
                        StatusCode = System.Net.HttpStatusCode.Created, Result = entityResult
                    });
                }
                return(validateBusinessRuleResult);
            }
            catch (Exception ex)
            {
                return(new ResponseEntityVM()
                {
                    StatusCode = System.Net.HttpStatusCode.InternalServerError, Message = $"There was an error creating the policy: {ex.Message}"
                });
            }
        }
示例#2
0
        public ResponseEntityVM AssignPolicy(CustomerPolicyModel entity)
        {
            try
            {
                var policyAssignedStatus = AssigmentStatusEnum.Assigned.ToString("G");
                var codeList             = ((List <CodeVM>)_codeService.GetAssignmentStatusCodes().Result).FirstOrDefault(x => x.Code.Equals(policyAssignedStatus));

                var associationAlreadyExists = _repository.FindBy(x => x.CustomerID.Equals(entity.CustomerID) &&
                                                                  x.PolicyID.Equals(entity.PolicyID) &&
                                                                  x.StatusID.Equals(codeList.CodeID)).ToList();

                if (associationAlreadyExists.Count > 0)
                {
                    return new ResponseEntityVM()
                           {
                               StatusCode = System.Net.HttpStatusCode.Conflict, Message = "The customer already has the policy associated."
                           }
                }
                ;

                entity.StatusID = codeList.CodeID;

                var entityResult = _repository.Insert(entity);
                _repository.SaveChanges();
                return(new ResponseEntityVM()
                {
                    StatusCode = System.Net.HttpStatusCode.Created, Result = entityResult
                });
            }
            catch (Exception ex)
            {
                return(new ResponseEntityVM()
                {
                    StatusCode = System.Net.HttpStatusCode.InternalServerError, Message = $"There was an error assigning the policy: {ex.Message}"
                });
            }
        }
        public async Task <IHttpActionResult> GetCodes(string filter)
        {
            switch (filter)
            {
            case "COVERAGE":
                return(Result(await Task.FromResult(_service.GetCoverageTypeCodes())));

            case "POLICY":
                return(Result(await Task.FromResult(_service.GetPolicyStatusCodes())));

            case "RISK":
                return(Result(await Task.FromResult(_service.GetRiskTypeCodes())));

            case "ASSIGNMENT":
                return(Result(await Task.FromResult(_service.GetAssignmentStatusCodes())));

            default:
                return(Result(new Domain.ViewModel.ResponseEntityVM()
                {
                    StatusCode = System.Net.HttpStatusCode.NotFound
                }));
            }
        }