public JsonResult EmailValidation(string id, string id2) { var apiNumber = id2; if (User.Identity.IsAuthenticated) { var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, 6, id, "single", "email"); if (res == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(404, JsonRequestBehavior.AllowGet); } } else { var isValid = new IsValid(); bool tUser = isValid.ValidUser(apiNumber, id, "email"); if (tUser == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(410, JsonRequestBehavior.AllowGet); } } var tmpResilts = new Helpers.Email(); var tmpResult = tmpResilts.Validate(id); return Json(tmpResult, JsonRequestBehavior.AllowGet); }
public bool ValidUser(string apiNumber, string keyWord, string service) { var getUserIp = new Helpers.GetUserIP(); var ipAddress = getUserIp.GetclientIP(); string host = string.Empty; string ipNumber = string.Empty; bool tUser = false; var helper = new Helpers.CreditsDeduct(); foreach (var ipResult in ipAddress) { if (ipResult.Host == "data-cleansing.net") { tUser = helper.CheckTemporaryUser(ipResult.IP, 1); } else { host = ipResult.Host; ipNumber = ipResult.IP; tUser = helper.IsValidApiUser(ipResult.IP, ipResult.Host, apiNumber, 6, keyWord, "single", service); } break; } return tUser; }
public JsonResult GetCard(string id, string id2) { var apiNumber = id2; if(User.Identity.IsAuthenticated) { var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, 6, id, "single", "email"); if (res == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(404, JsonRequestBehavior.AllowGet); } } else { var isValid = new IsValid(); bool tUser = isValid.ValidUser(apiNumber, id, "card"); if (tUser == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(410, JsonRequestBehavior.AllowGet); } } var cardType = new CardType(); var result = cardType.CardLogic(id); return Json(result, JsonRequestBehavior.AllowGet); }
public JsonResult GetAddress(string id, string id2) { var apiNumber = id2; var error = new List<ResultForPostCode>(); if (User.Identity.IsAuthenticated) { var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, 6, id, "single", "address"); if (res == false) { error.Add(new ResultForPostCode { PostCode = "You do not have enough credits remain" }); return Json(error, JsonRequestBehavior.AllowGet); } } else { var isValid = new IsValid(); bool tUser = isValid.ValidUser(apiNumber, id, "address"); if (tUser == false) { error.Add(new ResultForPostCode { PostCode = "You have reach your free daily limits!" }); return Json(error, JsonRequestBehavior.AllowGet); } } var dataCleansing = new DataCleansing.DataCleansingLogich(); var temp = dataCleansing.Cleansing(id); return Json(temp, JsonRequestBehavior.AllowGet); }
public JsonResult BicValidation(string id, string id2) { var apiNumber = id2; if (User.Identity.IsAuthenticated) { var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, 6, id, "single", "bic"); if (res == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(404, JsonRequestBehavior.AllowGet); } } else { var isValid = new IsValid(); bool tUser = isValid.ValidUser(apiNumber, id, "email"); if (tUser == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(410, JsonRequestBehavior.AllowGet); } } using (var context = new ApplicationDbContext()) { var result = context.Database.SqlQuery<data_validation.net.Web.Models.BicInfoModel>("GetFullDetailsSwift @SwiftCode", new SqlParameter("SwiftCode", id)).ToList(); return Json(result, JsonRequestBehavior.AllowGet); } }
public JsonResult IbanValidation(string id, string id2) { string apiNumber = id2; if (User.Identity.IsAuthenticated) { var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, 6, id, "single", "iban"); if (res == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(404, JsonRequestBehavior.AllowGet); } } else { var isValid = new IsValid(); bool tUser = isValid.ValidUser(apiNumber, id, "iban"); if (tUser == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(410, JsonRequestBehavior.AllowGet); } } var resT = new BankValidationController(); var temp = BankValidationController.Iban.CheckIban(id, true); var error = new List<iBanBicModel>(); if (temp.IsValid == false) { error.Add(new iBanBicModel { BankName = temp.Message, BranchName = id }); return Json(error, JsonRequestBehavior.AllowGet); } var result = resT.BicCountry(id.ToUpper()); return Json(result, JsonRequestBehavior.AllowGet); }
public JsonResult CardValidation(string id, string id2) { var res = new List<CardValidationViewModel>(); try { string number = id.Replace(" ", ""); long intNumber = Int64.Parse(number); } catch { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(403, JsonRequestBehavior.AllowGet); } if(User.Identity.IsAuthenticated) { var helper = new Helpers.CreditsDeduct(); var isValid = helper.IsValid(User.Identity.Name, 6, id, "single", "card"); if (isValid == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(404, JsonRequestBehavior.AllowGet); } } else { string apiNumber = id2; var isValid = new IsValid(); bool tUser = isValid.ValidUser(apiNumber, id, "address"); if (tUser == false) { res.Add(new CardValidationViewModel { Message = "You have reach your free daily limits!" }); return Json(res, JsonRequestBehavior.AllowGet); } } var cardType = new CardType(); var result = cardType.CardLogic(id); return Json(result, JsonRequestBehavior.AllowGet); }
public JsonResult TelephoneValidation(string id, string id2) { var apiNumber = id2; if (User.Identity.IsAuthenticated) { var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, 6, id, "single", "email"); if (res == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(404, JsonRequestBehavior.AllowGet); } } else { var isValid = new IsValid(); bool tUser = isValid.ValidUser(apiNumber, id, "email"); if (tUser == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(410, JsonRequestBehavior.AllowGet); } } var removeSpecialCharacters = new RemoveSpecialCharacters(); var number = removeSpecialCharacters.RemoveCharactersTelephone(id); var result = new List<PhoneValidationViewModel>(); if (number.Length != 11 && number.Length != 10) { result.Add(new PhoneValidationViewModel { IsValid = "Phone is invalid", Number = id }); return Json(result, JsonRequestBehavior.AllowGet); } using (var context = new ApplicationDbContext()) { for (int i = 5; i >= 2; i--) { var tmpData = context.Database.SqlQuery<GetPhoneArea_Result>("GetPhoneArea2 @code", new SqlParameter("code", number.Substring(0, i))).First(); if (tmpData.IsValid == "Valid") { result.Add(new PhoneValidationViewModel { Area = tmpData.AreaCovered, Number = id, IsValid = tmpData.IsValid }); return Json(result, JsonRequestBehavior.AllowGet); } } } result.Add(new PhoneValidationViewModel { IsValid = "Phone seems invalid" }); return Json(result, JsonRequestBehavior.AllowGet); }
public ActionResult BulkIban(IEnumerable<HttpPostedFileBase> fileToUpload) { var outputStream = new MemoryStream(); int recordsSubmited = 0; int validRecords = 0; int invalidRecords = 0; int i = 0; using (var zip = new ZipFile()) { string time = User.Identity.Name + DateTime.Now.Ticks; Directory.CreateDirectory(Server.MapPath("~/Tuploads/") + time); string folder = Server.MapPath("~/Tuploads/") + time + "/"; foreach (var csvFile in fileToUpload) { var returData = new List<BulkIbanModel>(); var results = new List<BulkIbanModel>(); if (csvFile.ContentType.ToString() != "application/vnd.ms-excel") { //TO CHANGE!!!!!!!!!!!!!!!! ViewBag.WrongFileType = "Wrong file type!"; return View(); } string targetFolder = folder + csvFile.FileName; csvFile.SaveAs(targetFolder); var csvToData = new CsvToDataTable(); var csvData = csvToData.GetDataTabletFromCSVFile(targetFolder, "iban"); //Billing int records = csvData.Rows.Count; recordsSubmited += records; var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, records, "", "bulk", "iban"); if (res == false) { //TO CHANGE!!!!!!! ViewBag.Error = "You don't have enough credits!"; return View(); } foreach (DataRow item in csvData.Rows) { var iban = BankValidationController.Iban.CheckIban(item.Field<string>(0).ToString().Replace(" ", "").TrimEnd().TrimStart(), true); //Show why iban fail if so if (iban.IsValid == false) { returData.Add(new BulkIbanModel { IsValid = iban.Message }); invalidRecords++; } var bankValidation = new BankValidationController(); //If iban is correct take details from DB var result = bankValidation.BicCountry(item.Field<string>(0).TrimStart().TrimEnd().ToUpper()); foreach (var rr in result) { returData.Add(new BulkIbanModel { BankCode = rr.BankCode, BankName = rr.BankName, BranchAddress = rr.BranchAddress, BranchCode = rr.BranchCode, BranchName = rr.BranchName, City = rr.City, ClientIban = item.Field<string>(0), Country = rr.Country, Fax = rr.Fax, IsoCode = rr.IsoCode, IsValid = iban.IsValid.ToString(), Postcode = rr.Postcode, Swift = rr.Swift, Telephone = rr.Telephone }); validRecords++; } } this.Data.IbanCleansingHistory.Add(new IbanCleansingHistory { DateSubmited = DateTime.Now, InvalidRecords = invalidRecords, SubmitedRecords = recordsSubmited, UserName = User.Identity.Name, ValidRecords = validRecords }); this.Data.SaveChanges(); MemoryStream output = new MemoryStream(); //Save data to CSV file if (returData.Count > 0) { StreamWriter writer = new StreamWriter(output, Encoding.UTF8); StringBuilder sb = new StringBuilder(); writer.Write("Iban,Is Valid,Bank Name,Branch Name,Branch Address,City,Post Code,Telephone,Fax,Swift "); writer.Write(Environment.NewLine); foreach (var bankName in returData) { sb.Append(bankName.ClientIban + "," + bankName.IsValid + "," + bankName.BankName + "," + bankName.BranchName + "," + bankName.BranchAddress + "," + bankName.City + "," + bankName.Postcode + "," + bankName.Telephone + "," + bankName.Fax + "," + bankName.Swift); writer.Write(sb); writer.Write(Environment.NewLine); sb.Clear(); } writer.Flush(); output.Position = 0; } if (fileToUpload.Count() == 1) { return File(output, "text/comma-separated-values", User.Identity.Name + "_" + DateTime.Now.Ticks + ".csv"); } else { using (FileStream file = new FileStream(folder + "test" + i + ".csv", FileMode.Create, System.IO.FileAccess.Write)) { byte[] bytes = new byte[output.Length]; output.Read(bytes, 0, (int)output.Length); file.Write(bytes, 0, bytes.Length); output.Close(); } zip.AddFile(folder + "test" + i + ".csv", @"\"); i++; if (i == fileToUpload.Count()) { zip.Save(outputStream); } } } outputStream.Position = 0; outputStream.Seek(0, SeekOrigin.Begin); return File(outputStream, "application/octet-stream", "filename.zip"); } }
public ActionResult BulkBic(IEnumerable<HttpPostedFileBase> fileToUpload) { var outputStream = new MemoryStream(); int i = 0; using (var zip = new ZipFile()) { string time = User.Identity.Name + DateTime.Now.Ticks; Directory.CreateDirectory(Server.MapPath("~/Tuploads/") + time); string folder = Server.MapPath("~/Tuploads/") + time + "/"; foreach (var csvFile in fileToUpload) { var returData = new HashSet<BicInfoModel>(); if (csvFile.ContentType.ToString() != "application/vnd.ms-excel") { //TO CHANGE!!!!!!!!!!!!!!!! ViewBag.WrongFileType = "Wrong file type!"; return View(); } string targetFolder = folder + csvFile.FileName; csvFile.SaveAs(targetFolder); var csvToData = new CsvToDataTable(); var csvData = csvToData.GetDataTabletFromCSVFile(targetFolder,"bic"); //Billing int records = csvData.Rows.Count; if (User.Identity.IsAuthenticated) { var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, records,"","bulk","bic"); if (res == false) { //TO CHANGE!!!!!!! ViewBag.Error = "You don't have enough credits!"; return View(); } } foreach (DataRow item in csvData.Rows) { using (var context = new ApplicationDbContext()) { var result = context.Database.SqlQuery<BicInfoModel>("GetFullDetailsSwift @SwiftCode", new SqlParameter("SwiftCode", item.Field<string>(0))); foreach (var rr in result) { returData.Add(new BicInfoModel() { BankOrInstitution = rr.BankOrInstitution, Branch = rr.Branch, City = rr.City, Country = rr.Country, SwiftCode = rr.SwiftCode }); } } } MemoryStream output = new MemoryStream(); //Save data to CSV file if (returData.Count > 0) { StreamWriter writer = new StreamWriter(output, Encoding.UTF8); StringBuilder sb = new StringBuilder(); writer.Write("Bank Name,Branch Name,City,Country,Swift "); writer.Write(Environment.NewLine); foreach (var bicDetails in returData) { sb.Append(bicDetails.BankOrInstitution + "," + bicDetails.Branch + "," + bicDetails.City + "," + bicDetails.Country + "," + bicDetails.SwiftCode); writer.Write(sb); writer.Write(Environment.NewLine); sb.Clear(); } writer.Flush(); output.Position = 0; } if (fileToUpload.Count() == 1) { return File(output, "text/comma-separated-values", User.Identity.Name + "_" + DateTime.Now.Ticks + ".csv"); } else { using (FileStream file = new FileStream(folder + "test" + i + ".csv", FileMode.Create, System.IO.FileAccess.Write)) { byte[] bytes = new byte[output.Length]; output.Read(bytes, 0, (int)output.Length); file.Write(bytes, 0, bytes.Length); output.Close(); } zip.AddFile(folder + "test" + i + ".csv", @"\"); i++; if (i == fileToUpload.Count()) { zip.Save(outputStream); } } } outputStream.Position = 0; outputStream.Seek(0, SeekOrigin.Begin); return File(outputStream, "application/octet-stream", "filename.zip"); } }
public JsonResult SingleBic(string id) { var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, 6,id,"single", "bic"); if (res == false) { var error = new List<BicInfoModel>(); error.Add(new BicInfoModel { ErrorCode = "You do not have enough credits remain" }); return Json(error, JsonRequestBehavior.AllowGet); } using (var context = new ApplicationDbContext()) { var result = context.Database.SqlQuery<BicInfoModel>("GetFullDetailsSwift @SwiftCode", new SqlParameter("SwiftCode", id)).ToList(); return Json(result, JsonRequestBehavior.AllowGet); } }
public ActionResult BulkCardValidation(IEnumerable<HttpPostedFileBase> fileToUpload) { var outputStream = new MemoryStream(); int i = 0; int recordsSubmited = 0; int validCards = 0; int invalidCards = 0; using (var zip = new ZipFile()) { string time = User.Identity.Name + DateTime.Now.Ticks; Directory.CreateDirectory(Server.MapPath("~/Tuploads/") + time); string folder = Server.MapPath("~/Tuploads/") + time + "/"; foreach (var csvFile in fileToUpload) { var results = new List<CardValidationViewModel>(); if (csvFile.ContentType.ToString() != "application/vnd.ms-excel") { results.Add(new CardValidationViewModel { Message = "Wrong file type! File must be CSV" }); return Json(results, JsonRequestBehavior.AllowGet); } string targetFolder = folder + csvFile.FileName; csvFile.SaveAs(targetFolder); var csvToData = new CsvToDataTable(); var csvData = csvToData.GetDataTabletFromCSVFile(targetFolder, "card"); //Billing int records = csvData.Rows.Count; recordsSubmited += records; if (User.Identity.IsAuthenticated) { var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, records, "", "bulk", "card"); if (res == false) { results.Add(new CardValidationViewModel { Message = "You don't have enought credits left. Please Top Up!" }); return Json(results, JsonRequestBehavior.AllowGet); } } //If user has enough credits start cleansing foreach (DataRow res in csvData.Rows) { StringBuilder tempString = new StringBuilder(); foreach (var item in res.ItemArray) { if (item.ToString().Length == 0) { continue; } tempString = tempString.Append(item + ","); } var cardType = new CardType(); var temp = cardType.CardLogic(tempString.ToString().Substring(0, tempString.Length - 1)); foreach (var resul in temp) { results.Add(new CardValidationViewModel { CardIssue = resul.CardIssue, IsValid = resul.IsValid, Message = resul.Message, CardNumber = resul.CardNumber }); if (resul.IsValid == "Card is valid") validCards++; else invalidCards++; } } MemoryStream output = new MemoryStream(); this.Data.CardCleansingHistory.Add(new CardCleansingHistory { DateSubmited = DateTime.Now, InvalidCards = invalidCards, RecordsUploaded = recordsSubmited, UserName = User.Identity.Name, ValidCards = validCards }); this.Data.SaveChanges(); if (results.Count() > 0) { StreamWriter writer = new StreamWriter(output, Encoding.UTF8); StringBuilder sb = new StringBuilder(); writer.Write("Card Number, Card Type, Is valid, Message "); writer.Write(Environment.NewLine); foreach (var details in results) { sb.Append(details.CardNumber + "," + details.CardIssue + "," + details.IsValid + "," + details.Message); writer.Write(sb); writer.Write(Environment.NewLine); sb.Clear(); } writer.Flush(); output.Position = 0; } //If any records write them to csv file and return to user if (fileToUpload.Count() == 1) { return File(output, "text/coma-separated-values", User.Identity.Name + "_" + DateTime.Now.Ticks + ".csv"); } else { using (FileStream file = new FileStream(folder + "test" + i + ".csv", FileMode.Create, System.IO.FileAccess.Write)) { byte[] bytes = new byte[output.Length]; output.Read(bytes, 0, (int)output.Length); file.Write(bytes, 0, bytes.Length); output.Close(); } zip.AddFile(folder + "test" + i + ".csv", @"\"); i++; if (i == fileToUpload.Count()) { zip.Save(outputStream); } } } outputStream.Position = 0; outputStream.Seek(0, SeekOrigin.Begin); return File(outputStream, "application/octet-stream", "filename.zip"); } }
public ActionResult BulkPhoneValidation(IEnumerable<HttpPostedFileBase> fileToUpload) { int recordsSubmited = 0; var outputStream = new MemoryStream(); int i = 0; using (var zip = new ZipFile()) { string time = User.Identity.Name + DateTime.Now.Ticks; Directory.CreateDirectory(Server.MapPath("~/Tuploads/") + time); string folder = Server.MapPath("~/Tuploads/") + time + "/"; foreach (var csvFile in fileToUpload) { if (csvFile.ContentType.ToString() != "application/vnd.ms-excel") { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(404, JsonRequestBehavior.AllowGet); } string targetFolder = folder + csvFile.FileName; csvFile.SaveAs(targetFolder); var csvToData = new CsvToDataTable(); var csvData = csvToData.GetDataTabletFromCSVFile(targetFolder, "phone"); //Billing int records = csvData.Rows.Count; recordsSubmited += records; var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, records, "", "bulk", "phone"); if (res == false) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(404, JsonRequestBehavior.AllowGet); } var results = Validate(csvData); var counts = results[results.Count - 1]; this.Data.PhoneCleansingHistory.Add(new PhoneCleansingHistory { DateSubmited = DateTime.Now, Invalid = Int32.Parse(counts.Number), SubmitedRecords = recordsSubmited, UserName = User.Identity.Name, Valid = Int32.Parse(counts.Message) }); this.Data.SaveChanges(); MemoryStream output = new MemoryStream(); if (results.Count() > 0) { StreamWriter writer = new StreamWriter(output, Encoding.UTF8); StringBuilder sb = new StringBuilder(); writer.Write("Phone Number, Area, Is valid, Message "); writer.Write(Environment.NewLine); foreach (var details in results) { sb.Append(details.Number + "," + details.Area + "," + details.IsValid + "," + details.Message); writer.Write(sb); writer.Write(Environment.NewLine); sb.Clear(); } writer.Flush(); output.Position = 0; } //If any records write them to csv file and return to user if (fileToUpload.Count() == 1) { return File(output, "text/coma-separated-values", User.Identity.Name + "_" + DateTime.Now.Ticks + ".csv"); } else { using (FileStream file = new FileStream(folder + "test" + i + ".csv", FileMode.Create, System.IO.FileAccess.Write)) { byte[] bytes = new byte[output.Length]; output.Read(bytes, 0, (int)output.Length); file.Write(bytes, 0, bytes.Length); output.Close(); } zip.AddFile(folder + "test" + i + ".csv", @"\"); i++; if (i == fileToUpload.Count()) { zip.Save(outputStream); } } } outputStream.Position = 0; outputStream.Seek(0, SeekOrigin.Begin); return File(outputStream, "application/octet-stream", "filename.zip"); } }
public List<List<string>> ExactMatch(string matchCriteria, string toggleCheck, string time, int columns,string userName) { int uniqueRecords = 0; int dublicatedRecords = 0; var results = new List<List<string>>(); var res = new List<List<string>>(); var columnCriteria = toggleCheck.Split(','); var csvToData = new CsvToDataTable(); var csvData = csvToData.GetDataTabletFromCSVFile(time, "deduplicate"); HashSet<string> ScannedRecords = new HashSet<string>(); HashSet<string> ScannedRecords2 = new HashSet<string>(); int recordsSubmited = csvData.Rows.Count; int rowNumb = recordsSubmited; var getCredits = this.Data.Credits.All().Where(x => x.UserName == userName); int credits = 0; foreach (var item in getCredits) { credits = Int32.Parse(item.Credits.ToString()); break; } //Checking if user have enough credits if (credits - rowNumb < 0) { return results; } // 2 = not preview, bill user if (columns == 2) { var helper = new Helpers.CreditsDeduct(); var creditsLeft = helper.IsValid(userName, rowNumb, "", "bulk", "deduplicate"); if (!creditsLeft) { return results; } } if (matchCriteria == "1") { foreach (DataRow row in csvData.Rows) { List<string> str = new List<string>(); StringBuilder sb = new StringBuilder(); if (rowNumb > 0) { List<string> numb = new List<string>(); numb.Add(rowNumb.ToString()); results.Add(numb); rowNumb = 0; } foreach (DataColumn col in csvData.Columns) { //checking for column conditions if (columnCriteria.Contains(col.ToString())) sb.AppendFormat("[{0}={1}]", col, row[col.ColumnName].ToString()); } if (ScannedRecords.Add(sb.ToString())) { uniqueRecords++; for (int i = 0; i < row.ItemArray.Length; i++) { str.Add(row.ItemArray[i].ToString()); } results.Add(str); //Showing first 100 records to prevent fraud if (results.Count == 100 && columns == 1) { return results; } } else { dublicatedRecords++; } } } else if (matchCriteria == "2") { List<string> str = new List<string>(); foreach (DataRow row in csvData.Rows) { var sb = new StringBuilder(); foreach (DataColumn col in csvData.Columns) { if (columnCriteria.Contains(col.ToString())) { sb.AppendFormat("[{0}={1}]", col, row[col.ColumnName].ToString()); } } str.Add(sb.ToString()); } int rowNumber = str.Count(); foreach (DataRow row in csvData.Rows) { List<string> str2 = new List<string>(); StringBuilder sb = new StringBuilder(); StringBuilder sb3 = new StringBuilder(); if (rowNumber > 0) { List<string> numb = new List<string>(); numb.Add(rowNumber.ToString()); results.Add(numb); rowNumber = 0; } foreach (DataColumn col in csvData.Columns) { //checking for column conditions if (columnCriteria.Contains(col.ToString())) { sb.AppendFormat("[{0}={1}]", col, row[col.ColumnName].ToString()); sb3.AppendFormat("[{0}={1}]", col, row[col.ColumnName].ToString()); } } if (ScannedRecords.Add(sb.ToString())) { uniqueRecords++; for (int i = 0; i < row.ItemArray.Length; i++) { str2.Add(row.ItemArray[i].ToString()); } var lenshtine = new Levenshtine(); var levenshtineResult = lenshtine.Search(sb3.ToString(), str, 0.9); foreach (var item in levenshtineResult) { dublicatedRecords++; ScannedRecords.Add(item); } results.Add(str2); //Showing first 100 records to prevent fraud if (results.Count == 100 && columns == 1) { return results; } } } } this.Data.DeduplicateCleansingHistory.Add(new DeduplicateCleansingHistory { DateSubmited = DateTime.Now, DuplicateRecords = dublicatedRecords, SubmitedRecords = recordsSubmited, UniqueRecords = uniqueRecords, UserName = userName }); this.Data.SaveChanges(); return results; }
public ActionResult BulkPhoneValidation(IEnumerable<HttpPostedFileBase> fileToUpload) { int recordsSubmited = 0; int validRecords = 0; int invalidRecords = 0; var outputStream = new MemoryStream(); int i = 0; using (var zip = new ZipFile()) { string time = User.Identity.Name + DateTime.Now.Ticks; Directory.CreateDirectory(Server.MapPath("~/Tuploads/") + time); string folder = Server.MapPath("~/Tuploads/") + time + "/"; foreach (var csvFile in fileToUpload) { var results = new List<PhoneValidationViewModel>(); if (csvFile.ContentType.ToString() != "application/vnd.ms-excel") { results.Add(new PhoneValidationViewModel { Message = "Wrong file type! File must be CSV" }); return Json(results, JsonRequestBehavior.AllowGet); } string targetFolder = folder + csvFile.FileName; csvFile.SaveAs(targetFolder); var csvToData = new CsvToDataTable(); var csvData = csvToData.GetDataTabletFromCSVFile(targetFolder, "phone"); //Billing int records = csvData.Rows.Count; recordsSubmited += records; if (User.Identity.IsAuthenticated) { var helper = new Helpers.CreditsDeduct(); var res = helper.IsValid(User.Identity.Name, records, "", "bulk", "phone"); if (res == false) { results.Add(new PhoneValidationViewModel { Message = "You don't have enought credits left. Please Top Up!" }); return Json(results, JsonRequestBehavior.AllowGet); } } //If user has enough credits start cleansing foreach (DataRow res in csvData.Rows) { //StringBuilder tempString = new StringBuilder(); foreach (var item in res.ItemArray) { var cleanNumber = RemoveSpecialCharacters(item.ToString()); if (cleanNumber.Length != 11 && cleanNumber.Length != 10) { results.Add(new PhoneValidationViewModel { IsValid = "Phone is invalid", Number = "=\"" + item.ToString() + "\"", }); invalidRecords++; } else { using (var context = new ApplicationDbContext()) { for (int j = 5; j >= 2; j--) { var numberPer = new SqlParameter("@Number", cleanNumber.Substring(0, i)); var tmpData = context.Database.SqlQuery<GetPhoneArea_Result>("GetPhoneArea @Number", numberPer).First(); if (tmpData.IsValid == "Valid") { results.Add(new PhoneValidationViewModel { Area = tmpData.AreaCovered, Number = "=\"" + item.ToString() + "\"", IsValid = tmpData.IsValid }); validRecords++; break; } if (j == 2) { results.Add(new PhoneValidationViewModel { Area = tmpData.AreaCovered, Number = "=\"" + item.ToString() + "\"", IsValid = tmpData.IsValid }); invalidRecords++; break; } } } } } } this.Data.PhoneCleansingHistory.Add(new PhoneCleansingHistory { DateSubmited = DateTime.Now, Invalid = invalidRecords, SubmitedRecords = recordsSubmited, UserName = User.Identity.Name, Valid = validRecords }); this.Data.SaveChanges(); MemoryStream output = new MemoryStream(); if (results.Count() > 0) { StreamWriter writer = new StreamWriter(output, Encoding.UTF8); StringBuilder sb = new StringBuilder(); writer.Write("Phone Number, Area, Is valid, Message "); writer.Write(Environment.NewLine); foreach (var details in results) { sb.Append(details.Number + "," + details.Area + "," + details.IsValid + "," + details.Message); writer.Write(sb); writer.Write(Environment.NewLine); sb.Clear(); } writer.Flush(); output.Position = 0; } //If any records write them to csv file and return to user if (fileToUpload.Count() == 1) { return File(output, "text/coma-separated-values", User.Identity.Name + "_" + DateTime.Now.Ticks + ".csv"); } else { using (FileStream file = new FileStream(folder + "test" + i + ".csv", FileMode.Create, System.IO.FileAccess.Write)) { byte[] bytes = new byte[output.Length]; output.Read(bytes, 0, (int)output.Length); file.Write(bytes, 0, bytes.Length); output.Close(); } zip.AddFile(folder + "test" + i + ".csv", @"\"); i++; if (i == fileToUpload.Count()) { zip.Save(outputStream); } } } outputStream.Position = 0; outputStream.Seek(0, SeekOrigin.Begin); return File(outputStream, "application/octet-stream", "filename.zip"); } }