public async Task <OtpCode> CreateorUpdateOtpCodeAsync(string engagementAccount, string phoneNumber, string code, int expireTime) { using (var ctx = new OtpEntities(this.connectionString)) { var otpCode = await ctx.OtpCodes.Where(f => f.EngagementAccount == engagementAccount && f.PhoneNumber == phoneNumber).SingleOrDefaultAsync(); if (otpCode == null) { otpCode = new OtpCode { PhoneNumber = phoneNumber, EngagementAccount = engagementAccount, Code = code, CreatedTime = DateTime.UtcNow, ExpiredTime = DateTime.UtcNow.AddSeconds(expireTime) }; ctx.OtpCodes.Add(otpCode); } else { otpCode.Code = code; otpCode.CreatedTime = DateTime.UtcNow; otpCode.ExpiredTime = DateTime.UtcNow.AddSeconds(expireTime); } await ctx.SaveChangesAsync(); return(otpCode); } }
public async Task <IActionResult> Edit(string id, [Bind("Id,Code,CreatedBy,ModifiedBy,CreatedOn,ModifiedOn,Status,EmpId")] OtpCode otpCode) { if (id != otpCode.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(otpCode); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OtpCodeExists(otpCode.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["EmpId"] = new SelectList(_context.Employee, "Emp_ID", "Emp_ID", otpCode.EmpId); return(View(otpCode)); }
private async Task <string> LoginProcess(string empId) { string code = GenerateCode(); var otpEmpId = ""; var hasOtpCodes = _context.OtpCode.Where(a => a.EmpId == empId).SingleOrDefault(); if (hasOtpCodes == null) { OtpCode otpCodemodel = new OtpCode { EmpId = empId, Code = code }; var result = _context.OtpCode.Add(otpCodemodel); otpEmpId = result.Entity.EmpId; } else { hasOtpCodes.Status = Enums.Status.Active; otpEmpId = UpdateOtpCode(hasOtpCodes, code); } await _context.SaveChangesAsync(); return(code); }
private string UpdateOtpCode(OtpCode hasOtpCodes, string code) { hasOtpCodes.Code = code; var result = _context.OtpCode.Update(hasOtpCodes); return(result.Entity.EmpId); }
public async Task <IActionResult> Create([Bind("Id,Code,CreatedBy,ModifiedBy,CreatedOn,ModifiedOn,Status,EmpId")] OtpCode otpCode) { if (ModelState.IsValid) { _context.Add(otpCode); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["EmpId"] = new SelectList(_context.Employee, "Emp_ID", "Emp_ID", otpCode.EmpId); return(View(otpCode)); }
public async Task <OtpCode> GenerateCodeForeUser(AccountUser user) { Random generator = new Random(); string randomValue = generator.Next(0, 999999).ToString("D6"); OtpCode otp = new OtpCode { Code = randomValue, UserId = user.Id, Expires = DateTime.Now.AddMinutes(2) }; _db.OtpCodes.Add(otp); await _emailService.SendEmailAsync(user.Email, otp.Code); await _db.SaveChangesAsync(); return(otp); }