static void Main(string[] args) { IEnumerable <IMessageScreener> screeners = new List <IMessageScreener> { new SpamScreener(), new HRScreener(), new AccountingScreener(), new SalesScreener() }; IMessage message = new EmailMessage { Subject = "Invoice problem", Body = "I have not yet received an invoice" }; //IMessage message = new EmailMessage //{ // Subject = "Enlarge your penis", // Body = "... and get rich fast!" //}; //IMessage message = new EmailMessage //{ // Subject = "Well done", // Body = "I like your company" //}; bool wasProcessed = false; foreach (IMessageScreener screener in screeners) { ScreeningResponse response = screener.Screen(message); if (response != ScreeningResponse.Unprocessed) { Console.WriteLine($"Message was {response} by {screener.GetType().Name}"); wasProcessed = true; break; } } if (wasProcessed == false) { Console.WriteLine("Message was not processed"); } }
public ActionResult SendDataForScreening(string Parameters = "") { string message = string.Empty; bool result = false; try { int memberId = 0; if (!string.IsNullOrEmpty(Parameters)) { Parameters = StringCipher.Decrypt(Parameters.Replace(Utility.Utility.urlseparator, "+"), General.passPhrase); memberId = Convert.ToInt32(Utility.Utility.SplitParameters(Parameters, Utility.Utility.Colonseparator, 0, 1)); } BeneficialOwnership_Main modal = new BeneficialOwnership_Main(); if (!string.IsNullOrEmpty(SessionHelper.BeneficialOwnershipData)) { modal = JsonConvert.DeserializeObject <BeneficialOwnership_Main>(SessionHelper.BeneficialOwnershipFilteredData); } Utility.BenificialOwnershipData api = new Utility.BenificialOwnershipData(); ScreeningResponse screeningResponse = api.ScreeningMultiPleData(modal, memberId); BenificialOwnershipFacade fac = new BenificialOwnershipFacade(this.CurrentClient.ApplicationDBConnectionString); message = fac.InsertScreenQueueAndResponseJSON("DNBCOMP", screeningResponse.userId, screeningResponse.credentialId, screeningResponse.requestUrl, screeningResponse.searchJSON, screeningResponse.resultsJSON); if (!string.IsNullOrEmpty(screeningResponse.Errormsg)) { result = false; message = screeningResponse.Errormsg; } else if (message != "error") { result = true; message = "Screening completed successfully."; } else { result = false; message = CommonMessagesLang.msgCommanErrorMessage; } } catch (Exception) { result = false; message = CommonMessagesLang.msgCommanErrorMessage; } return(Json(new { result = result, message = message })); }
public ScreeningResponse ScreeningMultiPleData(BeneficialOwnership_Main beneficial, int memberId) { ScreeningResponse screeningResponse = new ScreeningResponse(); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; string endpoint = "https://rpstest.visualcompliance.com/RPS/RPSService.svc/SearchEntity"; var httpWebRequest = (HttpWebRequest)WebRequest.Create(endpoint); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; httpWebRequest.Accept = "application/json"; httpWebRequest.Host = "rpstest.visualcompliance.com"; httpWebRequest.Headers.Add("Accept-Encoding", "gzip,deflate"); ScreeningRequest screeningRequest = new ScreeningRequest(); screeningRequest.__type = "searchrequest:http://eim.visualcompliance.com/RPSService/2016/11"; screeningRequest.sguid = ""; screeningRequest.stransid = ""; screeningRequest.ssecno = "XA65D"; screeningRequest.spassword = "******"; screeningRequest.smodes = ""; screeningRequest.srpsgroupbypass = ""; screeningRequest.searches = new List <Search>(); foreach (var item in memberId > 0 ? beneficial.lstCombinedData.Where(x => x.memberID == memberId) : beneficial.lstCombinedData) { Search search = new Search(); search.__type = "search:http://eim.visualcompliance.com/RPSService/2016/11"; search.soptionalid = Convert.ToString(item.memberID); if (item.beneficiaryType.ToLower() == "business") { search.sname = ""; search.scompany = item.name.Replace("*", "").TrimStart(); } else { search.sname = item.name.Replace("*", "").TrimStart(); search.scompany = ""; } search.saddress1 = item.addressStreetLine1; search.saddress2 = item.addressStreetLine2; search.saddress3 = item.addressStreetLine3; search.scity = item.addressCity; search.sstate = item.addressState; search.szip = item.addressPostalCode; search.scountry = item.addressCountryIsoAlpha2Code; search.selective1 = Convert.ToString(item.memberID); search.selective2 = item.beneficiaryType; screeningRequest.searches.Add(search); } string json = string.Empty; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { json = JsonConvert.SerializeObject(screeningRequest, Newtonsoft.Json.Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } try { var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); JObject jsonResult = JObject.Parse(result); if (jsonResult.ContainsKey("serrorstring")) { screeningResponse.Errormsg = jsonResult["serrorstring"].ToString(); } screeningResponse.resultsJSON = result; screeningResponse.userId = Helper.oUser.UserId; screeningResponse.credentialId = Helper.lstEnrichCreds.FirstOrDefault(x => x.EnrichmentType == "OWNERSHIP").CredentialId; screeningResponse.searchJSON = json; screeningResponse.requestUrl = endpoint; } } catch (WebException ex) { using (var stream = ex.Response.GetResponseStream()) using (var streamReader = new StreamReader(stream)) { var result = streamReader.ReadToEnd(); screeningResponse.resultsJSON = result; screeningResponse.userId = Helper.oUser.UserId; screeningResponse.credentialId = Helper.lstEnrichCreds.FirstOrDefault(x => x.EnrichmentType == "OWNERSHIP").CredentialId; screeningResponse.searchJSON = json; screeningResponse.requestUrl = endpoint; } } return(screeningResponse); }