public Response Generate(GenerateOTPRequest request) { Response response = new Response(); try { if (string.IsNullOrEmpty(request.Email) && string.IsNullOrEmpty(request.PhoneNumber)) { response.Status = false; response.Description = "Kindly provide Email or Phone Number"; return(response); } Random generator = new Random(); String r = generator.Next(0, 999999).ToString("D6"); string sql = "update OTPDetails set IsValidated = 1 where IsValidated = 1 and (Email = ?Email or PhoneNumber = ?PhoneNumber)"; OTPDetails context = new OTPDetails() { OTP = r, Email = request.Email, PhoneNumber = request.PhoneNumber, IsValidated = false }; using (IDbConnection conn = GetConnection()) { conn.Execute(sql, request); conn.Insert(context); response.Status = true; response.Description = "Successful"; if (!string.IsNullOrEmpty(request.Email)) { EmailRequest email = new EmailRequest() { Body = $"Your OTP is {r}", Subject = "Homes Direct Verification", To = request.Email }; Helper.SendEmail(email); } } } catch (Exception ex) { logger.Error(ex); response.Status = false; response.Description = ex.Message; } return(response); }
internal UpdateMachineAuthCallback(CMsgClientUpdateMachineAuth msg) { Data = msg.bytes; BytesToWrite = ( int )msg.cubtowrite; Offset = ( int )msg.offset; FileName = msg.filename; OneTimePassword = new OTPDetails { Type = msg.otp_type, Identifier = msg.otp_identifier, SharedSecret = msg.otp_sharedsecret, TimeDrift = msg.otp_timedrift, }; }
/// <summary> /// Initializes a new instance of the <see cref="MachineAuthDetails"/> class. /// </summary> public MachineAuthDetails() { OneTimePassword = new OTPDetails(); }
internal UpdateMachineAuthCallback( CMsgClientUpdateMachineAuth msg ) #endif { Data = msg.bytes; BytesToWrite = ( int )msg.cubtowrite; Offset = ( int )msg.offset; FileName = msg.filename; OneTimePassword = new OTPDetails { Type = msg.otp_type, Identifier = msg.otp_identifier, SharedSecret = msg.otp_sharedsecret, TimeDrift = msg.otp_timedrift, }; }