public async Task <IActionResult> CreateSample(CreateSampleViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var commandRequestId = await commandBus.Publish(viewModel.ToCreateSampleCommand());

            return(Ok(commandRequestId));
        }
        public void TestGetClaimSampleFromDefaultView()
        {
            var sut = new PatService();
            var vm  = new CreateSampleViewModel();

            vm.UseDummyValues();
            var csvm = sut.ExtractClaims(vm.Criteria);

            Assert.AreEqual(string.Empty, csvm.ErrorMessage);
            Assert.IsNotNull(csvm.Claims);
            Console.WriteLine("Claim sample call found {0} claims", csvm.Claims.Count);

            sut.SaveExtract(vm.SessionKey, csvm.Claims, "UnitTest");
        }
        public CreateSampleViewModel Create(CreateSampleFormModel model = null)
        {
            CreateSampleViewModel result   = new CreateSampleViewModel();
            CreateSampleResponse  response = _sampleService.CreateSample(new CreateSampleRequest()
            {
                Name = result.Name, Size = result.Size
            });

            if (response.HasError)
            {
                result.Messages = response.Messages;
                return(result);
            }

            return(result);
        }
Пример #4
0
        public ActionResult Create(CreateSampleViewModel vm)
        {
            try
            {
                CustomCriteraValidation(vm);

                if (ModelState.IsValid)
                {
                    // get data from MF
                    var claimSample = PatService.ExtractClaims(vm.Criteria);
                    //  put data into temporary store (session or even database)
                    if (claimSample.Claims == null)
                    {
                        if (string.IsNullOrEmpty(claimSample.ErrorMessage))
                        {
                            TempData[CommonConstants.FlashMessageTypeWarning] = "No Claims found with these criteria";
                        }
                        else
                        {
                            TempData[CommonConstants.FlashMessageTypeWarning] = claimSample.ErrorMessage;
                        }
                    }
                    else
                    {
                        if (claimSample.Claims.Count > 0)
                        {
                            PatService.SaveExtract(vm.SessionKey, claimSample.Claims, HttpContext.User.Identity.Name.RemoveDomain());
                            return(RedirectToAction("ClaimList", new { sessionKey = vm.SessionKey, id = vm.ProjectId, due = vm.SampleDueDate }));
                        }
                        TempData[CommonConstants.FlashMessageTypeWarning] = "No Claims found with these criteria";
                    }
                }

                //  Invalid model state redisplay with errors
                return(View(vm));
            }
            catch (Exception ex)
            {
                ErrorLog.GetDefault(null).Log(new Error(ex));
                return(View("Error", new HandleErrorInfo(ex, "Sample", "Create")));
            }
        }
Пример #5
0
        public ActionResult Create(int id)
        {
            var loggedInUser = new PatUser(Request.LogonUserIdentity);

            if (HttpContext.Session != null)
            {
                var vm = new CreateSampleViewModel();

                var project = PatService.GetProject(id);
                if (project != null)
                {
                    vm.ProjectId   = id;
                    vm.ProjectName = project.ProjectName;
                    vm.ContractMonitoringOrContractSiteVisitProject = PatService.ProjectIsContractMonitoringOrContractSiteVisit(id);
                    vm.SampleStartDate = DateTime.Now.Date;
                    vm.SampleDueDate   = DateTime.Now.AddDays(4 * 7).Date;
                    vm.SampleMessage   = PatService.GetSampleMessage(HttpContext.Session.SessionID);
                    vm.IsAdministrator = loggedInUser.IsAdministrator();

                    vm.Criteria = new SampleCriteria
                    {
                        MaxSampleSize  = 20,
                        RequestingUser = loggedInUser.FullName
                    };

                    vm.SessionKey = HttpContext.Session.SessionID;

                    if (HttpContext.Session != null)
                    {
                        var sessionKey = HttpContext.Session.SessionID;
                        AppHelper.SetSessionProjectId(Session, id);
                        vm.SessionKey = sessionKey;
                    }
                }
                return(View(vm));
            }

            return(View(new CreateSampleViewModel {
                SampleMessage = "No Session available"
            }));
        }
Пример #6
0
        public ActionResult Create()
        {
            CreateSampleViewModel model = _controllerHandler.Create();

            return(View(model));
        }
Пример #7
0
        private void CustomCriteraValidation(CreateSampleViewModel vm)
        {
            vm.SampleStartDate = DateTime.Now.Date;
            if (vm.Criteria.Organisation != null && vm.Criteria.Organisation.Length > 3)
            {
                vm.Criteria.OrgCode = vm.Criteria.Organisation.Substring(0, 4);
            }
            else
            {
                if (!string.IsNullOrEmpty(vm.Criteria.Organisation))
                {
                    ModelState.AddModelError("Organisation", "Invalid Organisation.");
                }
            }

            if (vm.Criteria.Esa != null && vm.Criteria.Esa.Length > 3)
            {
                vm.Criteria.EsaCode = vm.Criteria.Esa.Substring(0, 4);
            }
            else
            {
                if (!string.IsNullOrEmpty(vm.Criteria.Esa))
                {
                    ModelState.AddModelError("Esa", "Invalid ESA.");
                }
            }

            if (vm.Criteria.ClaimTypeDescription != null && vm.Criteria.ClaimTypeDescription.Length > 3)
            {
                vm.Criteria.ClaimType = vm.Criteria.ClaimTypeDescription.Substring(0, 4);
            }
            else
            {
                if (!string.IsNullOrEmpty(vm.Criteria.ClaimTypeDescription))
                {
                    ModelState.AddModelError("ClaimTypeDescription01", "Invalid Claim Type");
                }
            }

            if (vm.Criteria.Site != null && vm.Criteria.Site.Length > 3)
            {
                vm.Criteria.SiteCode = vm.Criteria.Site.Substring(0, 4);
            }

            if (vm.ContractMonitoringOrContractSiteVisitProject)
            {
                if (vm.SampleDueDate < vm.SampleStartDate)
                {
                    ModelState.AddModelError("SampleDueDate", "Sample Due Date cannot be before Sample Start Date.");
                }
            }

            if (vm.Criteria.ToClaimDate < vm.Criteria.FromClaimDate)
            {
                ModelState.AddModelError("Criteria.ToClaimDate", "Claim To Date cannot be before Claim From Date.");
            }

            if (vm.Criteria.FromClaimDate == new DateTime(1, 1, 1))
            {
                vm.Criteria.FromClaimDate = DateTime.Now.Date.Subtract(new TimeSpan(365, 0, 0, 0));
            }
            if (vm.Criteria.ToClaimDate == new DateTime(1, 1, 1))
            {
                vm.Criteria.ToClaimDate = DateTime.Now.Date;
            }

            if ((vm.Criteria.MaxSampleSize == null) || vm.Criteria.MaxSampleSize < 1)
            {
                vm.Criteria.MaxSampleSize = 20;
            }
            else
            {
                if (vm.Criteria.MaxSampleSize > 50)
                {
                    ModelState.AddModelError("MaxSampleSize", "The field Number of Claims to Extract must be a maximum of 50.");
                }
            }
        }
 public static CreateSampleCommand ToCreateSampleCommand(this CreateSampleViewModel model) => model.Adapt <CreateSampleCommand>();