public IHttpActionResult Get(string id) { var card = new data_validation.net.Web.Controllers.Helpers.RemoveSpecialCharacters(); var cleanNumber = card.RemoveSpecialCharactersCard(id); var userIp = Request.GetOwinContext().Request.RemoteIpAddress; var userHost = Request.GetOwinContext().Request.Host.Value.ToString(); var isFraud = new IsFraudController(); var isFraudUser = isFraud.Check(User.Identity.Name, userIp, userHost); if (isFraudUser) { var errorMessage = new List<CardValidationViewModel>(); errorMessage.Add(new CardValidationViewModel { IsValid = "Fraud Triger On!" }); return Ok(errorMessage); } var helper = new data_validation.net.Web.Controllers.Helpers.CreditsDeduct(); var hasCredits = helper.IsValid(User.Identity.Name, 6, cleanNumber, "singleAPI", "card"); if (!hasCredits) { var errorMessage = new List<CardValidationViewModel>(); errorMessage.Add(new CardValidationViewModel { IsValid = "No Credits Left" }); return Ok(errorMessage); } var cardType = new CardType(); var result = cardType.CardLogic(cleanNumber); return Ok(result); }
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 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 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"); } }