Example #1
0
        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);
        }