public HttpResponseMessage InsertCreditReport(Int64 merchantId, Int64 contractId, int reporttype, string reportAvailable, string isCompleted = null) { CreditReportModel model = new CreditReportModel(); using (CreditReportTier mt = new CreditReportTier()) { if (mt.PullReportbyId(reporttype, merchantId, contractId, isCompleted, reportAvailable == "true" ? 0 : 1)) { return this.Request.CreateResponse(HttpStatusCode.OK); } else { return this.Request.CreateResponse(HttpStatusCode.BadRequest); } } }
public bool PullReportbyId(int reporttypeId, Int64 merchantId, Int64 contractId, string isCompleted, int reportAvailable) { string strgetjson = ""; string UserName = ConfigurationManager.AppSettings["UserName"]; string PassWord = ConfigurationManager.AppSettings["PassWord"]; string xmlParameters = string.Empty; string TipoId = string.Empty; string Id = string.Empty; if (reportAvailable == 0) { CreditReportModel analysisModel = new CreditReportModel(); analysisModel.isavailable = 0; analysisModel.image = Encoding.ASCII.GetBytes(""); // string dateString = DateTime.Now.ToString("yyyy-MM-dd"); DateTime dt = DateTime.Now; //string.Concat(dateString.Split('-')[2].Substring(0, 4), "-", dateString.Split('-')[1], "-", dateString.Split('-')[0], " 00:00:00"); IFormatProvider culture2 = new System.Globalization.CultureInfo("es-DO", true); analysisModel.timeofreport = dt; analysisModel.monthEvaualted = dt; if (reporttypeId == 1) { analysisModel.type = "O"; } //Company Report else if (reporttypeId == 2) { analysisModel.type = "C"; } return InsertCreditreport(analysisModel, merchantId, contractId, isCompleted); } else { //Get the values on the basis of the parameters CreditReportModel analysisModel = new CreditReportModel(); if (ConfigurationManager.AppSettings["Testing"] == "0") { RetrieveMerchantInformation modelReport = new RetrieveMerchantInformation(); using (CreditReportTier mt = new CreditReportTier()) { modelReport = mt.RetrieveMerchantInformation(merchantId, contractId); } // Owner Report if (reporttypeId == 1) { TipoId = "C"; analysisModel.type = "O"; Id = modelReport.ownerId; } //Company Report else if (reporttypeId == 2) { TipoId = "R"; analysisModel.type = "C"; Id = modelReport.rnc; // Id = "101088575"; } AcmeRuby.clsCaltecServiceSoapClient objServiceReference_AcmeRuby = new AcmeRuby.clsCaltecServiceSoapClient(); strgetjson = objServiceReference_AcmeRuby.GetXmlJsonStr(UserName, PassWord, TipoId, Id, xmlParameters); //strgetjson = compJson; } else { //Owner Report if (reporttypeId == 1) { TipoId = "C"; Id = "22400033001"; //Id = "00113569248"; analysisModel.type = "O"; } //Company Report else if (reporttypeId == 2) { //Id = "103157531"; Id = "101874139"; TipoId = "R"; analysisModel.type = "C"; } AcmeRuby.clsCaltecServiceSoapClient objServiceReference_AcmeRuby = new AcmeRuby.clsCaltecServiceSoapClient(); strgetjson = objServiceReference_AcmeRuby.GetXmlJsonStr(UserName, PassWord, TipoId, Id, xmlParameters); // strgetjson = compJson; } var sr = Newtonsoft.Json.JsonConvert.DeserializeObject(strgetjson); JObject obj = (JObject)sr; var baseToken = obj.SelectToken("c").SelectToken("DCR"); var errorToken = baseToken.SelectToken("ErrorHandling"); if (errorToken.SelectToken("Id").ToString() == "0") { var individualToken = baseToken.SelectToken("Individuo"); analysisModel.isavailable = 1; var securityToken = baseToken.SelectToken("Seguridad"); var creditAnalysisToken = baseToken.SelectToken("AnalisisCrediticio"); var breakDownCreditsToken = baseToken.SelectToken("DesgloseCreditos"); var productToken = breakDownCreditsToken.SelectToken("Producto"); //var accountToken = productToken.SelectToken("Cuenta"); var companyToken = baseToken.SelectToken("Empresa"); #region Company Information if (companyToken != null) { analysisModel.commercialname = companyToken.SelectToken("NombreComercial").ToString(); analysisModel.name = companyToken.SelectToken("Nombre").ToString(); analysisModel.rnc = companyToken.SelectToken("RNC").ToString(); analysisModel.commercialactivity = companyToken.SelectToken("ActividadComercial").ToString(); } else { analysisModel.commercialname = string.Empty; analysisModel.name = string.Empty; analysisModel.rnc = string.Empty; analysisModel.commercialactivity = string.Empty; } #endregion #region Owner Information if (individualToken != null) { analysisModel.firstName = individualToken.SelectToken("Nombres").ToString(); analysisModel.lastName = individualToken.SelectToken("Apellidos").ToString(); analysisModel.name = string.Concat(analysisModel.firstName, analysisModel.lastName); analysisModel.nationality = individualToken.SelectToken("Nacionalidad").ToString(); analysisModel.occupation = individualToken.SelectToken("Ocupacion").ToString(); analysisModel.passport = individualToken.SelectToken("Pasaporte").ToString(); analysisModel.image = Encoding.ASCII.GetBytes(baseToken.SelectToken("Foto").ToString()); if (individualToken.SelectToken("Categoria") != null) { analysisModel.riskCategory = individualToken.SelectToken("Categoria").ToString(); } } else { analysisModel.nationality = string.Empty; analysisModel.occupation = string.Empty; analysisModel.passport = string.Empty; analysisModel.image = Encoding.ASCII.GetBytes(baseToken.SelectToken("Foto").ToString()); } #endregion #region Genral Information if (securityToken.SelectToken("FechaHora") != null) { string dateString = securityToken.SelectToken("FechaHora").ToString(); // DateTime dateTime = new DateTime(Convert.ToInt32(dateString.Split('-')[2].Substring(0, 4)), Convert.ToInt32(dateString.Split('-')[1]), Convert.ToInt32(dateString.Split('-')[0])); dateString = string.Concat(dateString.Split('-')[2].Substring(0, 4), "-", dateString.Split('-')[1], "-", dateString.Split('-')[0], " 00:00:00"); IFormatProvider culture2 = new System.Globalization.CultureInfo("es-DO", true); analysisModel.timeofreport = Convert.ToDateTime(dateString); analysisModel.monthEvaualted = Convert.ToDateTime(dateString); } // analysisModel.rawData = Encoding.ASCII.GetBytes(strgetjson); analysisModel.rawData = strgetjson; analysisModel.probabilityOfDefault = 0d; if (errorToken != null) { analysisModel.errors = errorToken.SelectToken("Description").ToString(); } #endregion #region Credit Analysis string code = string.Empty; JToken accounts = string.Empty; if (productToken != null) { List<JToken> productList; List<CreditAnalysis> crreport = new List<CreditAnalysis>(); if (productToken.Type == JTokenType.Array) { productList = productToken.ToList(); } else { productList = new List<JToken>() { productToken }; } int iotherAccount = 0; foreach (var item in productList) { if (productToken.Type == JTokenType.Array) { code = item.SelectToken("@Id").ToString(); accounts = item.SelectToken("Cuenta"); } else { code = productToken.SelectToken("@Id").ToString(); accounts = productToken.SelectToken("Cuenta"); } var accountsList = accounts; if (accountsList.Type == JTokenType.Array) { foreach (var ceunta in accountsList) { CreditAnalysis analysis = new CreditAnalysis(); //If loan then if (code.Equals("Préstamo")) { analysis.typeofActivity = "1"; analysisModel.numberofLoans = accountsList.Count(); } else if (code.Equals("Tarjeta de Crédito")) { //Credit Card analysis.typeofActivity = "2"; analysisModel.numberofCreditCards = accountsList.Count(); } else { iotherAccount += 1; //Others analysis.typeofActivity = "3"; analysisModel.numberofOthers = iotherAccount; } string status = ceunta.SelectToken("Estatus").SelectToken("#text").ToString(); // if (status == "1") { string affliate = ceunta.SelectToken("Afiliado").ToString(); analysis.currency = ceunta.SelectToken("Moneda").SelectToken("@Des_Moneda").ToString(); string dateString = string.Empty; if (ceunta.SelectToken("FechaApertura") != null) { dateString = string.Concat("01-", ceunta.SelectToken("FechaApertura").ToString()); dateString = string.Concat(dateString.Split('-')[2].Substring(0, 4), "-", dateString.Split('-')[1], "-", dateString.Split('-')[0], " 00:00:00"); analysis.firstcreditdate = dateString; } analysis.consolidateMonth = string.Concat("01-", (ceunta.SelectToken("MesConsolidado").ToString())); if (ceunta.SelectToken("TotalAdeudado") != null) { if (!String.IsNullOrEmpty(ceunta.SelectToken("TotalAdeudado").ToString()) // && ceunta.SelectToken("TotalAdeudado").ToString() != "(1)" ) { double value; double.TryParse(ceunta.SelectToken("TotalAdeudado").ToString(), out value); analysis.loanowedamount = value; // analysis.loanowedamount = Double.Parse((ceunta.SelectToken("TotalAdeudado").ToString())); } } if (ceunta.SelectToken("CreditoAprobado") != null) { if (!String.IsNullOrEmpty(ceunta.SelectToken("CreditoAprobado").ToString())) { analysis.approvedcredit = Double.Parse(((ceunta.SelectToken("CreditoAprobado").ToString()))); } } if (ceunta.SelectToken("Cuota") != null) { if (!String.IsNullOrEmpty(ceunta.SelectToken("Cuota").ToString())) { analysis.loanmonthlypayment = Double.Parse(((ceunta.SelectToken("Cuota").ToString()))); } } if (ceunta.SelectToken("TotalAtraso") != null) { if (!String.IsNullOrEmpty(ceunta.SelectToken("TotalAtraso").ToString())) { analysis.loanlateamount = (((ceunta.SelectToken("TotalAtraso").ToString()))); } } } crreport.Add(analysis); } } else { string dateString = string.Empty; CreditAnalysis analysis = new CreditAnalysis(); if (code.Equals("Préstamo")) { analysis.typeofActivity = "1"; analysisModel.numberofLoans = accountsList.Count(); } else if (code.Equals("Tarjeta de Crédito")) { //Credit Card analysis.typeofActivity = "2"; analysisModel.numberofCreditCards = accountsList.Count(); } else { //Others iotherAccount += 1; analysis.typeofActivity = "3"; analysisModel.numberofOthers = iotherAccount; } if (productToken.Type == JTokenType.Array) analysis.currency = item.SelectToken("Cuenta").SelectToken("Moneda").SelectToken("@Des_Moneda").ToString(); else analysis.currency = productToken.SelectToken("Cuenta").SelectToken("Moneda").SelectToken("@Des_Moneda").ToString(); string status = accountsList.SelectToken("Estatus").SelectToken("#text").ToString(); // if (status == "1") { string affliate = accountsList.SelectToken("Afiliado").ToString(); analysis.currency = accountsList.SelectToken("Moneda").SelectToken("@Des_Moneda").ToString(); if (accountsList.SelectToken("FechaApertura") != null) { dateString = string.Concat("01-", accountsList.SelectToken("FechaApertura").ToString()); dateString = string.Concat(dateString.Split('-')[2].Substring(0, 4), "-", dateString.Split('-')[1], "-", dateString.Split('-')[0], " 00:00:00"); IFormatProvider culture2 = new System.Globalization.CultureInfo("es-DO", true); analysis.firstcreditdate = dateString; } analysis.consolidateMonth = (accountsList.SelectToken("MesConsolidado").ToString()); if (accountsList.SelectToken("TotalAdeudado") != null) { if (!String.IsNullOrEmpty(accountsList.SelectToken("TotalAdeudado").ToString())) { // analysis.loanowedamount +=Double.Parse((ceunta.SelectToken("TotalAdeudado").ToString())); analysis.loanowedamount = Double.Parse((accountsList.SelectToken("TotalAdeudado").ToString())); } } if (accountsList.SelectToken("CreditoAprobado") != null) { if (!String.IsNullOrEmpty(accountsList.SelectToken("CreditoAprobado").ToString())) { //analysis.approvedcredit += Double.Parse(((ceunta.SelectToken("CreditoAprobado").ToString()))); analysis.approvedcredit = Double.Parse(((accountsList.SelectToken("CreditoAprobado").ToString()))); } } if (accountsList.SelectToken("Cuota") != null) { if (!String.IsNullOrEmpty(accountsList.SelectToken("Cuota").ToString())) { analysis.loanmonthlypayment = Double.Parse(((accountsList.SelectToken("Cuota").ToString()))); } } if (accountsList.SelectToken("TotalAtraso") != null) { if (!String.IsNullOrEmpty(accountsList.SelectToken("TotalAtraso").ToString())) { analysis.loanlateamount = (((accountsList.SelectToken("TotalAtraso").ToString()))); } } crreport.Add(analysis); } } } analysisModel.creditAnalysis = crreport; } #endregion return InsertCreditreport(analysisModel, merchantId, contractId, isCompleted); } else { analysisModel.errors = errorToken.SelectToken("Description").ToString(); analysisModel.rawData = strgetjson; analysisModel.isavailable = 0; analysisModel.image = Encoding.ASCII.GetBytes(""); var securityToken = baseToken.SelectToken("Seguridad"); if (securityToken.SelectToken("FechaHora") != null) { string dateString = securityToken.SelectToken("FechaHora").ToString(); // DateTime dateTime = new DateTime(Convert.ToInt32(dateString.Split('-')[2].Substring(0, 4)), Convert.ToInt32(dateString.Split('-')[1]), Convert.ToInt32(dateString.Split('-')[0])); dateString = string.Concat(dateString.Split('-')[2].Substring(0, 4), "-", dateString.Split('-')[1], "-", dateString.Split('-')[0], " 00:00:00"); IFormatProvider culture2 = new System.Globalization.CultureInfo("es-DO", true); analysisModel.timeofreport = Convert.ToDateTime(dateString); analysisModel.monthEvaualted = Convert.ToDateTime(dateString); } return InsertCreditreport(analysisModel, merchantId, contractId, isCompleted); } } }
public bool Create(CreditReportModel entity) { throw new NotImplementedException(); }
//public bool InsertCreditreport(CreditReportModel model, long merchantId, long contractId, string isCompleted) { return false; } public bool InsertCreditreport(CreditReportModel model, long merchantId, long contractId, string isCompleted) { string profileXml; XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.CloseOutput = true; settings.OmitXmlDeclaration = false; StringBuilder sbXml = new StringBuilder(); XmlWriter writer = XmlWriter.Create(sbXml, settings); writer.WriteStartElement("merchantinfo"); writer.WriteStartElement("merchantbasicinfo"); writer.WriteAttributeString("rnc", Convert.ToString(model.rnc)); writer.WriteAttributeString("creditscore", Convert.ToString(model.creditscore)); writer.WriteAttributeString("firstName", Convert.ToString(model.firstName)); writer.WriteAttributeString("lastName", Convert.ToString(model.lastName)); writer.WriteAttributeString("name", Convert.ToString(model.name)); writer.WriteAttributeString("middleName", Convert.ToString(model.middleName)); writer.WriteAttributeString("probabilityOfDefault", Convert.ToString(model.probabilityOfDefault)); writer.WriteAttributeString("merchantId", Convert.ToString(model.merchantId)); writer.WriteAttributeString("contractId", Convert.ToString(model.contractId)); writer.WriteAttributeString("occupation", Convert.ToString(model.occupation)); writer.WriteAttributeString("nationality", Convert.ToString(model.nationality)); writer.WriteAttributeString("timeofreport", string.Format("{0:yyyy-MM-dd}", model.timeofreport)); writer.WriteAttributeString("monthEvaualted", string.Format("{0:yyyy-MM-dd}", model.monthEvaualted)); writer.WriteAttributeString("numberofCreditCards", Convert.ToString(model.numberofCreditCards)); writer.WriteAttributeString("numberofLoans", Convert.ToString(model.numberofLoans)); writer.WriteAttributeString("numberofOthers", Convert.ToString(model.numberofOthers)); writer.WriteAttributeString("errors", Convert.ToString(model.errors)); writer.WriteAttributeString("type", Convert.ToString(model.type)); writer.WriteAttributeString("commercialname", Convert.ToString(model.commercialname)); writer.WriteAttributeString("commercialactivity", Convert.ToString(model.commercialactivity)); writer.WriteEndElement(); if (model.creditAnalysis != null) { if (model.creditAnalysis.Count > 0) { writer.WriteStartElement("creditReport"); foreach (var item in model.creditAnalysis) { writer.WriteStartElement("creditanalysis"); writer.WriteAttributeString("approvedcredit", Convert.ToString(item.approvedcredit)); writer.WriteAttributeString("firstcreditdate", Convert.ToString(item.firstcreditdate)); writer.WriteAttributeString("loanamountinlegal", Convert.ToString(item.loanamountinlegal)); writer.WriteAttributeString("loanlateamount", Convert.ToString(item.loanlateamount)); writer.WriteAttributeString("loancredit", Convert.ToString(item.loancredit)); writer.WriteAttributeString("loanmonthlypayment", Convert.ToString(item.loanmonthlypayment)); writer.WriteAttributeString("monthconsolidated", Convert.ToString(item.consolidateMonth)); writer.WriteAttributeString("loanowedamount", Convert.ToString(item.loanowedamount)); // writer.WriteAttributeString("numberofloans", Convert.ToString(item.numberofloans)); writer.WriteAttributeString("reportId", Convert.ToString(item.reportId)); writer.WriteAttributeString("typeofActivity", Convert.ToString(item.typeofActivity)); writer.WriteAttributeString("currency", Convert.ToString(item.currency)); writer.WriteEndElement(); } writer.WriteEndElement(); } } writer.WriteEndElement(); writer.Flush(); profileXml = sbXml.ToString(); // long rndNum = new Random().Next(); string fileName = string.Concat(merchantId, "_", contractId, "_", model.type, DateTime.Now.ToString("yyMMddHHmmss"), ".txt"); string fileLoc = Path.Combine(HttpContext.Current.Server.MapPath("~/CreditFiles/"), fileName); if (!File.Exists(fileLoc)) { using (StreamWriter sw = File.CreateText(fileLoc)) { sw.Write(model.rawData); } } else if (File.Exists(fileLoc)) { using (StreamWriter sw = File.CreateText(fileLoc)) { sw.Write(model.rawData); } } return _creditRepository.InsertCreditreport(profileXml, merchantId, contractId, isCompleted, model.image, fileName, model.isavailable); }