public void CreateScreeningRequestPersonEntitiesForRequest(Request request, ScreeningEntity screeningEntity, string username) { if (request != null && screeningEntity != null) { ScreeningResult screeningResult = this.GetScreeningResult(ScreeningResult.PENDING); foreach (RequestPerson rp in request.Persons.Where(x => !x.Archive)) { // only create new ScreeningRequestPersonEntity if one doesn't already exist if (rp.GetMostRecentScreeningRequestPersonEntity(screeningEntity.ScreeningEntityName) == null) { // persist new ScreeningRequestPersonEntity for this RequestPerson ScreeningRequestPersonEntity newSrpe = new ScreeningRequestPersonEntity() { RequestPerson = rp, ScreeningEntity = screeningEntity, ScreeningResult = screeningResult }; // copy screening results from last known screening by this screening entity ScreeningRequestPersonEntity lastSrpe = rp.Person.GetLatestScreeningEntityResponse(screeningEntity.ScreeningEntityName); if (lastSrpe != null) { newSrpe.ScreeningResult = lastSrpe.ScreeningResult; newSrpe.Reason = lastSrpe.Reason; newSrpe.Commentary = lastSrpe.Commentary; } newSrpe = this.SaveOrUpdateScreeningRequestPersonEntity(newSrpe, username, ScreeningStatus.ADDED); } } } }
public IDictionary <ScreeningEntity, ScreeningEntityStatisticDTO> GetScreeningEntityStatistics(DateTime start, DateTime end) { IDictionary <ScreeningEntity, ScreeningEntityStatisticDTO> dtos = new Dictionary <ScreeningEntity, ScreeningEntityStatisticDTO>(); // get all RequestPersons for given date period IList <RequestPerson> rps = this.requestPersonTasks.GetCompletedRequestPersons() .Where(x => x.GetScreeningRequestPersonFinalDecision().MostRecentDate >= start && x.GetScreeningRequestPersonFinalDecision().MostRecentDate < end) .ToList(); // count all ScreeningResults from ConditionalityGroup and FinalDecision that differed and agreed to each ScreeningEntity's results. foreach (ScreeningEntity entity in this.screeningTasks.GetScreeningEntities()) { ScreeningEntityStatisticDTO dto = new ScreeningEntityStatisticDTO() { ScreeningEntity = entity.ScreeningEntityName }; IEnumerable <RequestPerson> theseRps = rps.Where(x => x.GetScreeningRequestPersonEntity(entity.ScreeningEntityName) != null); dto.TotalPersonScreenings = theseRps.Count(); foreach (ScreeningResult result in this.screeningTasks.GetScreeningResults()) { ScreeningDifferenceDTO cgDiff = new ScreeningDifferenceDTO() { ScreeningResult = result.ScreeningResultName }; ScreeningDifferenceDTO fdDiff = new ScreeningDifferenceDTO() { ScreeningResult = result.ScreeningResultName }; foreach (RequestPerson rp in theseRps.Where(x => x.GetScreeningRequestPersonEntity(entity.ScreeningEntityName).ScreeningResult == result)) { ScreeningResult entityResult = rp.GetScreeningRequestPersonEntity(entity.ScreeningEntityName).ScreeningResult; if (entityResult == rp.GetScreeningRequestPersonRecommendation().ScreeningResult) { cgDiff.NumAgreed++; } else { cgDiff.NumDisagreed++; } if (entityResult == rp.GetScreeningRequestPersonFinalDecision().ScreeningResult) { fdDiff.NumAgreed++; } else { fdDiff.NumDisagreed++; } } dto.ConditionalityGroupDifferences.Add(cgDiff); dto.FinalDecisionDifferences.Add(fdDiff); } dtos.Add(entity, dto); } return(dtos); }
protected IList <ScreeningRequestPersonFinalDecision> GetFinalDecisions(ScreeningResult result) { IDictionary <string, object> criteria = new Dictionary <string, object>(); criteria.Add("ScreeningResult", result); criteria.Add("Archive", false); return(this.srpfdRepo.FindAll(criteria)); }
public void CreateScreeningRequestPersonFinalDecisionsForRequest(Request request, string username) { if (request != null) { ScreeningResult screeningResult = this.GetScreeningResult(ScreeningResult.PENDING); ScreeningSupportStatus screeningSupportStatus = this.GetScreeningSupportStatus(ScreeningSupportStatus.ID_PENDING); foreach (RequestPerson rp in request.Persons.Where(x => !x.Archive)) { // only create new ScreeningRequestPersonFinalDecision if one doesn't already exist if (rp.GetScreeningRequestPersonFinalDecision() == null) { // persist new ScreeningRequestPersonFinalDecision for this RequestPerson ScreeningRequestPersonFinalDecision finalDecision = new ScreeningRequestPersonFinalDecision() { RequestPerson = rp, ScreeningResult = screeningResult, ScreeningSupportStatus = screeningSupportStatus }; // copy screening result made during recommendation/consolidation phase ScreeningRequestPersonRecommendation recommendation = rp.GetScreeningRequestPersonRecommendation(); if (recommendation != null && recommendation.ScreeningResult != null) { finalDecision.ScreeningResult = recommendation.ScreeningResult; // use same level screening result to pre-populate support status as well switch (recommendation.ScreeningResult.Id) { case ScreeningResult.ID_GREEN: finalDecision.ScreeningSupportStatus = this.GetScreeningSupportStatus(ScreeningSupportStatus.ID_SUPPORT_RECOMMENDED); break; case ScreeningResult.ID_YELLOW: finalDecision.ScreeningSupportStatus = this.GetScreeningSupportStatus(ScreeningSupportStatus.ID_MONITORED_SUPPORT); break; case ScreeningResult.ID_RED: finalDecision.ScreeningSupportStatus = this.GetScreeningSupportStatus(ScreeningSupportStatus.ID_SUPPORT_NOT_RECOMMENDED); break; case ScreeningResult.ID_PENDING: finalDecision.ScreeningSupportStatus = this.GetScreeningSupportStatus(ScreeningSupportStatus.ID_PENDING); break; } } finalDecision = this.SaveOrUpdateFinalDecision(finalDecision, username); rp.AddScreeningRequestPersonFinalDecision(finalDecision); } } } }
public List <object> Post(ScreeningResult screeningResult) { GoogleCredential credential; using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read)) { credential = GoogleCredential.FromStream(stream) .CreateScoped(Scopes); } var service = new SheetsService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); /* * var range = $"{SheetName}!A:C"; * var request = service.Spreadsheets.Values.Get(SpreadsheetId, range); * * var response = request.Execute(); * var values = response.Values; */ screeningResult.Date = DateTime.Now; var range = $"{SheetName}!A:D"; var valueRange = new ValueRange(); var objectList = new List <object>() { screeningResult.Date.ToShortDateString(), screeningResult.Date.ToShortTimeString(), screeningResult.Name, screeningResult.Risk }; valueRange.Values = new List <IList <object> > { objectList }; var appendRequest = service.Spreadsheets.Values.Append(valueRange, SpreadsheetId, range); appendRequest.ValueInputOption = SpreadsheetsResource.ValuesResource.AppendRequest.ValueInputOptionEnum.USERENTERED; var appendResponse = appendRequest.Execute(); return(objectList); }
public ActionResult FinalDecisions(QueryFinalDecisionViewModel vm) { ScreeningResult sr = this.screeningTasks.GetScreeningResult(vm.ScreeningResultId); if (sr != null) { if (vm.OrganizationId.HasValue) { Organization org = this.orgTasks.GetOrganization(vm.OrganizationId.Value); ViewData["people"] = this.screeningTasks.GetFinalDecisions(sr.ScreeningResultName, org); } else { ViewData["people"] = this.screeningTasks.GetFinalDecisions(sr.ScreeningResultName); } } vm.PopulateDropDowns(this.screeningTasks.GetScreeningResults()); return(View(vm)); }