public ActionResult GetScreenResponse(string Parameters)
        {
            ScreenResponseEntityViewModel screenResponseEntityView = new ScreenResponseEntityViewModel();
            string alternateId = string.Empty, beneficiaryType = string.Empty;

            if (!string.IsNullOrEmpty(Parameters))
            {
                Parameters      = StringCipher.Decrypt(Parameters.Replace(Utility.Utility.urlseparator, "+"), General.passPhrase);
                alternateId     = Utility.Utility.SplitParameters(Parameters, Utility.Utility.Colonseparator, 0, 1);
                beneficiaryType = Utility.Utility.SplitParameters(Parameters, Utility.Utility.Colonseparator, 1, 1);
                ViewBag.Name    = Utility.Utility.SplitParameters(Parameters, Utility.Utility.Colonseparator, 2, 1);
            }
            BeneficialOwnership_Main modal = new BeneficialOwnership_Main();

            if (!string.IsNullOrEmpty(SessionHelper.BeneficialOwnershipData))
            {
                modal = JsonConvert.DeserializeObject <BeneficialOwnership_Main>(SessionHelper.BeneficialOwnershipFilteredData);
            }
            screenResponseEntityView.parentData = modal.lstCombinedData.FirstOrDefault(x => x.memberID == Convert.ToInt32(alternateId));
            BenificialOwnershipFacade fac = new BenificialOwnershipFacade(this.CurrentClient.ApplicationDBConnectionString);

            screenResponseEntityView.lstScreenRespinseData = fac.GetScreenResponse(alternateId, beneficiaryType);
            SessionHelper.ScreenResultData = JsonConvert.SerializeObject(screenResponseEntityView.lstScreenRespinseData);
            return(PartialView("_ScreenResponseDetails", screenResponseEntityView));
        }
        public ActionResult GraphViewPopup()
        {
            BeneficialOwnership_Main modal = new BeneficialOwnership_Main();

            if (!string.IsNullOrEmpty(SessionHelper.BeneficialOwnershipData))
            {
                modal = JsonConvert.DeserializeObject <BeneficialOwnership_Main>(SessionHelper.BeneficialOwnershipData);
            }
            return(PartialView(modal));
        }
        public ActionResult SearchBeneficialOwnershipData(string DUNSNumber, string Country, bool isModalView = false, bool isRefresh = false)
        {
            BeneficialOwnership_Main modal = new BeneficialOwnership_Main();

            ViewBag.isModalView = isModalView;
            if (!string.IsNullOrEmpty(DUNSNumber))
            {
                UXBeneficialOwnershipURLEntity uRLEntity;
                BenificialOwnershipFacade      fac = new BenificialOwnershipFacade(this.CurrentClient.ApplicationDBConnectionString);
                uRLEntity = fac.UXGetBeneficialOwnershipURL(DUNSNumber, Country);
                if (string.IsNullOrEmpty(uRLEntity.AuthToken))
                {
                    modal.Base = new CMPBOSV1_Base();
                    modal.lstBeneficialOwnerRelationships = new List <CMPBOSV1_BeneficialOwnerRelationships>();
                    modal.lstBeneficialOwners             = new List <CMPBOSV1_BeneficialOwners>();
                    return(View(modal));
                }
                if (uRLEntity.EnrichmentExists && !isRefresh)
                {
                    DataSet ds = fac.PreviewBenificialOwnershipData(DUNSNumber);
                    CommonMethod.BenificialOwnershipDataPreview(modal, ds);
                    SessionHelper.BeneficialOwnershipData    = JsonConvert.SerializeObject(modal);
                    SessionHelper.BeneficialOwnershipDataSet = JsonConvert.SerializeObject(ds);
                }
                else
                {
                    Utility.BenificialOwnershipData api = new Utility.BenificialOwnershipData();
                    string  benificialDataResponse      = api.GetBenificialOwnershipData(uRLEntity.EnrichmentURL, uRLEntity.AuthToken);
                    dynamic data = JObject.Parse(benificialDataResponse);
                    if (data != null && uRLEntity.APIFamily.ToLower() == ApiLayerType.Directplus.ToString().ToLower())
                    {
                        if ((data.Message != null && !string.IsNullOrEmpty(data.Message.Value)) || (data.error != null && data.error.errorMessage != null && !string.IsNullOrEmpty(data.error.errorMessage.Value)))
                        {
                            modal.Base = new CMPBOSV1_Base();
                            modal.lstBeneficialOwnerRelationships = new List <CMPBOSV1_BeneficialOwnerRelationships>();
                            modal.lstBeneficialOwners             = new List <CMPBOSV1_BeneficialOwners>();
                            return(View(modal));
                        }
                        else
                        {
                            CompanyFacade cfac = new CompanyFacade(this.CurrentClient.ApplicationDBConnectionString, Helper.UserName);
                            DateTime      transactionTimestamp = Convert.ToDateTime(data.transactionDetail.transactionTimestamp.Value);
                            cfac.ProcessDataForEnrichment(0, uRLEntity.DnBAPIId, DUNSNumber, Country, benificialDataResponse, "", transactionTimestamp, uRLEntity.CredentialId);
                            DataSet ds = fac.PreviewBenificialOwnershipData(DUNSNumber);
                            CommonMethod.BenificialOwnershipDataPreview(modal, ds);
                            SessionHelper.BeneficialOwnershipData    = JsonConvert.SerializeObject(modal);
                            SessionHelper.BeneficialOwnershipDataSet = JsonConvert.SerializeObject(ds);
                        }
                    }
                }
            }
            return(View(modal));
        }
        public ActionResult DownloadBenificiaryDataAsPDF(string view)
        {
            BeneficialOwnership_Main modal = new BeneficialOwnership_Main();

            if (!string.IsNullOrEmpty(SessionHelper.BeneficialOwnershipData))
            {
                modal = JsonConvert.DeserializeObject <BeneficialOwnership_Main>(SessionHelper.BeneficialOwnershipData);
            }
            ViewBag.viewName = view;
            //return View("DownloadBenificiaryDataAsPDF",modal);
            return(new Rotativa.ViewAsPdf("~/Views/BeneficialOwnership/DownloadBenificiaryDataAsPDF.cshtml", modal)
            {
                FileName = modal.Base.DnBDUNSNumber + " - " + modal.Base.organizationName + ".pdf", PageOrientation = Rotativa.Options.Orientation.Landscape
            });
        }
        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 ActionResult FilterBenificiaryData(List <FilterData> filters)
        {
            BeneficialOwnership_Main modal = new BeneficialOwnership_Main();
            BeneficialOwnership_Main result;

            if (!string.IsNullOrEmpty(SessionHelper.BeneficialOwnershipData))
            {
                modal = JsonConvert.DeserializeObject <BeneficialOwnership_Main>(SessionHelper.BeneficialOwnershipData);
            }
            result = modal.Copy();
            try
            {
                foreach (var item in filters)
                {
                    var valLst = item.FilterValue.Split(',').ToList();
                    if (item.Operator == "equalto")
                    {
                        if (item.FieldName == "Type")
                        {
                            if (item.FilterValue != "all")
                            {
                                result.lstCombinedData = result.lstCombinedData.Where(x => valLst.Contains(x.beneficiaryType)).ToList();
                            }
                        }
                        else if (item.FieldName == "DegreeOfSeparation")
                        {
                            result.lstCombinedData = result.lstCombinedData.Where(x => valLst.Contains(Convert.ToString(x.degreeOfSeparation))).ToList();
                        }
                        else if (item.FieldName == "MinimumDirectPercentage")
                        {
                            result.lstCombinedData = result.lstCombinedData.Where(x => x.directOwnershipPercentage >= Convert.ToDouble(item.FilterValue)).ToList();
                        }
                        else if (item.FieldName == "MinimumInDirectPercentage")
                        {
                            result.lstCombinedData = result.lstCombinedData.Where(x => x.indirectOwnershipPercentage >= Convert.ToDouble(item.FilterValue)).ToList();
                        }
                        else if (item.FieldName == "MinimumBenificialPercentage")
                        {
                            result.lstCombinedData = result.lstCombinedData.Where(x => x.beneficialOwnershipPercentage >= Convert.ToDouble(item.FilterValue)).ToList();
                        }
                        else if (item.FieldName == "IsBenificiary")
                        {
                            if (item.FilterValue == "true")
                            {
                                result.lstCombinedData = result.lstCombinedData.Where(x => x.isBeneficiary == 1).ToList();
                            }
                            else if (item.FilterValue == "false")
                            {
                                result.lstCombinedData = result.lstCombinedData.Where(x => x.isBeneficiary == 0).ToList();
                            }
                            else
                            {
                                result.lstCombinedData = result.lstCombinedData.ToList();
                            }
                        }
                        else if (item.FieldName == "AlertType")
                        {
                            if (valLst.Count < 5)
                            {
                                result.lstCombinedData = result.lstCombinedData.Where(x => valLst.Contains(x.lastScreenedAlertType)).ToList();
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                //Empty catch block to stop from breaking
            }
            SessionHelper.BeneficialOwnershipFilteredData = JsonConvert.SerializeObject(result);
            return(PartialView("ListBenificiaryData", result));
        }
        public ActionResult ExportToExcel()
        {
            BeneficialOwnership_Main modal = new BeneficialOwnership_Main();

            if (!string.IsNullOrEmpty(SessionHelper.BeneficialOwnershipData))
            {
                modal = JsonConvert.DeserializeObject <BeneficialOwnership_Main>(SessionHelper.BeneficialOwnershipData);
            }
            byte[]  responseBase;
            DataSet ds = new DataSet();

            if (!string.IsNullOrEmpty(SessionHelper.BeneficialOwnershipDataSet))
            {
                ds = JsonConvert.DeserializeObject <DataSet>(SessionHelper.BeneficialOwnershipDataSet);
                using (ExcelPackage package = new ExcelPackage())
                {
                    if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                    {
                        ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Benificiary_Base");
                        worksheet.Cells.LoadFromDataTable(ds.Tables[0], true);
                        //Code to handle date format after the excel file gets downloaded
                        var dateColumns = from DataColumn d in ds.Tables[0].Columns
                                          where d.DataType == typeof(DateTime) || d.ColumnName.Contains("Date")
                                          select d.Ordinal + 1;

                        foreach (var dc in dateColumns)
                        {
                            worksheet.DefaultColWidth = 12; // Set default column width and date comes in mm/dd/yyyy format
                            worksheet.Cells[2, dc, ds.Tables[0].Rows.Count + 2, dc].Style.Numberformat.Format = "mm/dd/yyyy";
                        }
                    }


                    if (ds != null && ds.Tables.Count > 1 && ds.Tables[1].Rows.Count > 0)
                    {
                        ExcelWorksheet worksheetBeneficialOwnerRelationships = package.Workbook.Worksheets.Add("BeneficialOwnerRelationships");
                        worksheetBeneficialOwnerRelationships.Cells.LoadFromDataTable(ds.Tables[1], true);
                        //Code to handle date format after the excel file gets downloaded
                        var dateColumns = from DataColumn d in ds.Tables[1].Columns
                                          where d.DataType == typeof(DateTime) || d.ColumnName.Contains("Date")
                                          select d.Ordinal + 1;

                        foreach (var dc in dateColumns)
                        {
                            worksheetBeneficialOwnerRelationships.DefaultColWidth = 12; // Set default column width and date comes in mm/dd/yyyy format
                            worksheetBeneficialOwnerRelationships.Cells[2, dc, ds.Tables[1].Rows.Count + 2, dc].Style.Numberformat.Format = "mm/dd/yyyy";
                        }
                    }


                    if (ds != null && ds.Tables.Count > 2 && ds.Tables[2].Rows.Count > 0)
                    {
                        ExcelWorksheet worksheetBeneficialOwners = package.Workbook.Worksheets.Add("BeneficialOwners");
                        worksheetBeneficialOwners.Cells.LoadFromDataTable(ds.Tables[2], true);
                        //Code to handle date format after the excel file gets downloaded
                        var dateColumns = from DataColumn d in ds.Tables[2].Columns
                                          where d.DataType == typeof(DateTime) || d.ColumnName.Contains("Date")
                                          select d.Ordinal + 1;

                        foreach (var dc in dateColumns)
                        {
                            worksheetBeneficialOwners.DefaultColWidth = 12; // Set default column width and date comes in mm/dd/yyyy format
                            worksheetBeneficialOwners.Cells[2, dc, ds.Tables[2].Rows.Count + 2, dc].Style.Numberformat.Format = "mm/dd/yyyy";
                        }
                    }


                    if (ds != null && ds.Tables.Count > 3 && ds.Tables[3].Rows.Count > 0)
                    {
                        ExcelWorksheet BeneficialOwnershipCountryWiseSummary = package.Workbook.Worksheets.Add("BeneficialOwnershipCountryWiseSummary");
                        BeneficialOwnershipCountryWiseSummary.Cells.LoadFromDataTable(ds.Tables[3], true);
                        //Code to handle date format after the excel file gets downloaded
                        var dateColumns = from DataColumn d in ds.Tables[3].Columns
                                          where d.DataType == typeof(DateTime) || d.ColumnName.Contains("Date")
                                          select d.Ordinal + 1;

                        foreach (var dc in dateColumns)
                        {
                            BeneficialOwnershipCountryWiseSummary.DefaultColWidth = 12; // Set default column width and date comes in mm/dd/yyyy format
                            BeneficialOwnershipCountryWiseSummary.Cells[2, dc, ds.Tables[3].Rows.Count + 2, dc].Style.Numberformat.Format = "mm/dd/yyyy";
                        }
                    }


                    if (ds != null && ds.Tables.Count > 6 && ds.Tables[6].Rows.Count > 0)
                    {
                        ExcelWorksheet BeneficialOwnershipCountryWisePSCSummary = package.Workbook.Worksheets.Add("BeneficialOwnershipCountryWisePSCSummary");
                        BeneficialOwnershipCountryWisePSCSummary.Cells[1, 1].LoadFromDataTable(ds.Tables[6], true);
                        //Code to handle date format after the excel file gets downloaded
                        var dateColumns = from DataColumn d in ds.Tables[6].Columns
                                          where d.DataType == typeof(DateTime) || d.ColumnName.Contains("Date")
                                          select d.Ordinal + 1;

                        foreach (var dc in dateColumns)
                        {
                            BeneficialOwnershipCountryWisePSCSummary.DefaultColWidth = 12; // Set default column width and date comes in mm/dd/yyyy format
                            BeneficialOwnershipCountryWisePSCSummary.Cells[2, dc, ds.Tables[6].Rows.Count + 2, dc].Style.Numberformat.Format = "mm/dd/yyyy";
                        }
                    }


                    if (ds != null && ds.Tables.Count > 7 && ds.Tables[7].Rows.Count > 0)
                    {
                        ExcelWorksheet BeneficialOwnershipNationalityWisePSCSummary = package.Workbook.Worksheets.Add("BeneficialOwnershipNationalityWisePSCSummary");
                        BeneficialOwnershipNationalityWisePSCSummary.Cells.LoadFromDataTable(ds.Tables[7], true);
                        //Code to handle date format after the excel file gets downloaded
                        var dateColumns = from DataColumn d in ds.Tables[7].Columns
                                          where d.DataType == typeof(DateTime) || d.ColumnName.Contains("Date")
                                          select d.Ordinal + 1;

                        foreach (var dc in dateColumns)
                        {
                            BeneficialOwnershipNationalityWisePSCSummary.DefaultColWidth = 12; // Set default column width and date comes in mm/dd/yyyy format
                            BeneficialOwnershipNationalityWisePSCSummary.Cells[2, dc, ds.Tables[7].Rows.Count + 2, dc].Style.Numberformat.Format = "mm/dd/yyyy";
                        }
                    }


                    if (ds != null && ds.Tables.Count > 8 && ds.Tables[8].Rows.Count > 0)
                    {
                        ExcelWorksheet BeneficialOwnershipTypeWisePSCSummary = package.Workbook.Worksheets.Add("BeneficialOwnershipTypeWisePSCSummary");
                        BeneficialOwnershipTypeWisePSCSummary.Cells.LoadFromDataTable(ds.Tables[8], true);
                        //Code to handle date format after the excel file gets downloaded
                        var dateColumns = from DataColumn d in ds.Tables[8].Columns
                                          where d.DataType == typeof(DateTime) || d.ColumnName.Contains("Date")
                                          select d.Ordinal + 1;

                        foreach (var dc in dateColumns)
                        {
                            BeneficialOwnershipTypeWisePSCSummary.DefaultColWidth = 12; // Set default column width and date comes in mm/dd/yyyy format
                            BeneficialOwnershipTypeWisePSCSummary.Cells[2, dc, ds.Tables[8].Rows.Count + 2, dc].Style.Numberformat.Format = "mm/dd/yyyy";
                        }
                    }

                    package.Workbook.Properties.Title = "Benificiary Details";

                    responseBase = package.GetAsByteArray();
                }
                return(File(responseBase, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "UBO_" + modal.Base.duns + ".xlsx"));
            }
            return(View());
        }
Exemplo n.º 8
0
        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);
        }