public async Task <IActionResult> GenPinCode([FromBody] PinCodeModel model) { model.PinCode = await m_auth_service.GeneratePinCode(model.Cellular, model.Email); if (string.IsNullOrWhiteSpace(model.PinCode)) { return(Forbid()); } bool wasSent = false; if (!string.IsNullOrWhiteSpace(model.Cellular)) { wasSent |= await m_mail_service.Send(model.Cellular, model.PinCode); } if (!string.IsNullOrWhiteSpace(model.Email)) { wasSent |= await m_mail_service.Send(model.Email, model.PinCode); } if (wasSent) { return(Ok(model)); } return(BadRequest()); }
//[Authorize(Roles = "Admin")] public IActionResult Index() { _gen.GenCode(); PinCodeModel m = new PinCodeModel(); m.Code = _gen.Code; m.Exp = _gen.GenTime.AddMinutes(5); return(View(m)); }
public async Task <IActionResult> LoginByPinCode([FromBody] PinCodeModel model) { IAccessToken accessToken = await m_auth_service.LoginByPinCode(model.Cellular, model.Email, model.PinCode); if (accessToken == null || accessToken.HasExpired) { return(Forbid()); } return(Ok(new AccessTokenModel(accessToken))); }
public ActionResult PayCard2(PinViewModel Pin) { var verifyCon = db.PinCodeModels.ToList(); if (verifyCon.Count() < 1) { Pin.StartFrom = "000000"; } for (int counter = 1; counter <= Pin.Quantity; counter++) { int length = Pin.Digit; //--------------Payment Reference Number----------------------------- int maxSize = Pin.Digit; char[] chars = new char[62]; string numbers = "0123456789"; chars = numbers.ToCharArray(); int size = maxSize; byte[] data = new byte[1]; RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider(); crypto.GetNonZeroBytes(data); size = maxSize; data = new byte[size]; crypto.GetNonZeroBytes(data); StringBuilder result = new StringBuilder(size); foreach (byte b in data) { result.Append(chars[b % (chars.Length - 1)]); } //ViewBag.Url = result.ToString(); //********************************* int limit = 1000000; string SerialNo; var maxValue = ""; if (Pin.StartFrom == null) { maxValue = db.PinCodeModels.OrderByDescending(x => x.PinCodeModelId).Where(x => x.SerialNumber.Contains(Pin.SerialCode.ToUpper())).FirstOrDefault().SerialNumber; } else { maxValue = Pin.SerialCode.ToUpper() + "/" + Pin.StartFrom; } var defaultnumber = Pin.SerialCode.ToUpper() + "/" + "000000"; if (maxValue == null) { maxValue = defaultnumber; } maxValue = maxValue.Substring(5, 6); int rst = int.Parse(maxValue); int NewNumber = limit + rst + 1; string val = NewNumber.ToString(); val = val.Substring(1, 6); SerialNo = Pin.SerialCode.ToUpper() + "/" + val; //SerialNo = "SEMB/" + val; Pin.StartFrom = null; var year = DateTime.Now.Year; //************************** PinCodeModel cardNumber = db.PinCodeModels.Create(); cardNumber.PinNumber = result.ToString(); cardNumber.SerialNumber = SerialNo; cardNumber.BatchNumber = year.ToString() + Pin.BatchNumber.ToUpper(); cardNumber.Usage = 4; db.PinCodeModels.Add(cardNumber); db.SaveChanges(); ViewBag.Success = Pin.Quantity; TempData["Check"] = "Ok"; } return(RedirectToAction("PayCard2", new { id = ViewBag.Success, batch = Pin.BatchNumber.ToUpper() })); }