public CreatePosSimProviderResponse CreatePosSimProvider(CreatePosSimProviderRequest request)
        {
            CreatePosSimProviderResponse response = new CreatePosSimProviderResponse();
            PosSimProvider posSimProvider         = new PosSimProvider();

            posSimProvider.SimProviderName = request.SimProviderName;
            posSimProvider.PosSims         = request.PosSims.ConvertToPosSims();

            if (posSimProvider.GetBrokenRules().Count() > 0)
            {
                response.Errors = posSimProvider.GetBrokenRules().ToList();
            }
            else
            {
                try {
                    _posSimProviderRepository.Add(posSimProvider);
                    _uow.Commit();
                    response.Errors = new List <BusinessRule>();
                } catch (Exception ex)
                {
                    List <BusinessRule> errors = new List <BusinessRule>();
                    do
                    {
                        errors.Add(new BusinessRule("DAL", "DAL_ERROR: " + ex.Message));
                        ex = ex.InnerException;
                    } while (ex != null);

                    response.Errors = errors;
                }
            }

            return(response);
        }
        public JsonResult Create(PosSimProviderDetailView vm)
        {
            CreatePosSimProviderRequest request = new CreatePosSimProviderRequest();

            request.SimProviderName = vm.SimProviderName;
            CreatePosSimProviderResponse response = _posSimProviderService.CreatePosSimProvider(request);

            return(Json(response));
        }