public IHttpActionResult Sendotp(string id) { Otp model = new Otp(); try { model.MobileOtp = sendOtp.GenerateOtp(); var userDocument = _bucket.Query <object>(@"SELECT mobileNo,emailId From ICADB where id= '" + id + "'").ToList(); if (userDocument.Count == 0) { return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "175-please enter valid emiratid"), new JsonMediaTypeFormatter())); } else { JObject jsonObj = JObject.Parse(userDocument[0].ToString()); //string mobileNo = (string)jsonObj["mobileNo"]; model.Email = (string)jsonObj["emailId"];; model.MobileNo = (string)jsonObj["mobileNo"]; model.MobileOtp = model.MobileOtp; mobileSMS.SendOtpViaMobile(model.MobileNo, model.MobileOtp, model.Email); return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Add, model.Email), new JsonMediaTypeFormatter())); } } catch (Exception ex) { return(Content(HttpStatusCode.Forbidden, MessageResponse.Message(HttpStatusCode.Forbidden.ToString(), ex.Message), new JsonMediaTypeFormatter())); } }
public ActionResult Verify(Otp otp) { if (ModelState.IsValid != true) { return(View()); } var stateToken = (string)Session[stateTokenKey]; var response = okta.authn.GetStatus(stateToken); var factor = response.Embedded.Factors.First(); ViewBag.FactorType = factor.FactorType; var answer = new MfaAnswer(); answer.Passcode = otp.passCode; // TODO: Modify "response" to get the _links for the .factors attribute, then pass the factor from factors to Verify() try { var rv = okta.authn.Verify(stateToken, factor, answer); return(CreateSessionFor(rv)); } catch (OktaException e) { ModelState.AddModelError("*", e.ErrorSummary); } return(View()); }
public void Test_add_single_user_and_otp() { // Arrange CleanTables(); User user = repo.Create(); DateTime test_date = new DateTime(2016, 6, 7, 12, 13, 54); string test_pass = "******"; Otp otp = new Otp() { Password = test_pass, StartDate = test_date }; string test_user = "******"; user.UserId = test_user; user.Otp = otp; // Act repo.Add(user); repo.SaveChanges(); DataTable userTable = QueryTable("SELECT * FROM [User]"); DataTable otpTable = QueryTable("SELECT * FROM [Otp]"); // Assert Assert.IsTrue(userTable.Rows.Count == 1); Assert.IsTrue(userTable.Rows[0]["UserId"].ToString() == test_user); Assert.IsTrue(otpTable.Rows[0]["Password"].ToString() == test_pass); Assert.AreEqual(Convert.ToDateTime(otpTable.Rows[0]["StartDate"]), test_date); }
public ActionResult <GenericResponseModel> ForgottenPassword([FromBody] User pUser) { OtpController pOtp = new OtpController(); var loUserId = HelperMethods.GetApiUserIdFromToken(HttpContext.User.Identity); var loGenericResponse = new GenericResponseModel { Code = -1, Status = "Fail" }; pUser.phone = HelperMethods.SerializePhone(pUser.phone); var loLogin = GetData.CheckUser(pUser.phone); if (loLogin == null) { return(loGenericResponse); } var loOtp = new Otp(); var loUser = new UserDto(); loUser.row_guid = loLogin.row_guid; loUser.user_type = loLogin.user_type; if (loLogin.user_type == 1 || loLogin.user_type == 2) //1 Winvestate admin 2 Winvestate user { loOtp.phone = loLogin.phone; loUser.phone = loLogin.phone; } else if (loLogin.user_type == 3) //Müşteri { var loCustomer = GetData.GetCustomerById(loLogin.row_guid.ToString()); loOtp.phone = loCustomer.phone; loUser.phone = loCustomer.phone; } else // 4 Kurum { var loCompany = GetData.GetBankById(loLogin.row_guid.ToString()); loOtp.phone = loCompany.authorized_phone; loUser.phone = loCompany.authorized_phone; } loOtp.message_type_system_type_id = 2; var loResult = pOtp.SendOtp(loOtp); if (loResult.Value.Code != 200) { return(loResult.Value); } loGenericResponse.Code = 200; loGenericResponse.Data = loUser; loGenericResponse.Message = ""; loGenericResponse.Status = "ok"; return(loGenericResponse); }
public async Task UpdateAsync(Otp entity) { Random rnd = new Random(); string randomNumber = (rnd.Next(100000, 999999)).ToString(); entity.OtpCode = Int32.Parse(randomNumber); await Uow.RegisterDirtyAsync(entity); await Uow.CommitAsync(); }
public Authenticator() { TimeRenew = DateTime.MinValue; _code = null; _otp = null; Algorithm = DefaultAlgorithm; Digits = DefaultDigits; Period = DefaultPeriod; }
public static OtpHashMode GetHashMode(this Otp otp) { var field = typeof(Otp).GetField("hashMode", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsNotNull(field, "the hashMode field must have been renamed, please update this test accordingly"); object value = field.GetValue(otp); Assert.IsTrue(value is OtpHashMode, "the hashMode field must have changed types from an OtpHashMode, please update this test accordingly"); return((OtpHashMode)value); }
public ActionResult <GenericResponseModel> ValidateOtp([FromBody] Otp pOtpService) { var loGenericResponse = new GenericResponseModel(); pOtpService.phone = HelperMethods.SerializePhone(pOtpService.phone); var loValidate = GetData.ValidateOtp(pOtpService); if (loValidate?.id > 0) { //var loApiUserId = Helper.GetApiUserIdFromToken(HttpContext.User.Identity); pOtpService.row_update_date = DateTime.Now; pOtpService.row_create_date = loValidate.row_create_date; pOtpService.id = loValidate.id; pOtpService.validation_state = 3; pOtpService.sms_id = loValidate.sms_id; pOtpService.message_type_system_type_id = loValidate.message_type_system_type_id; if (loValidate.row_create_date != null && (DateTime.Now - (DateTime)loValidate.row_create_date).TotalSeconds > 180) { Crud <Otp> .Update(pOtpService, out _); loGenericResponse.Status = "Fail"; loGenericResponse.Code = -1; loGenericResponse.Message = "Gönderilen şifrenin süresi dolmuş. Lütfen yeni şifre isteyiniz."; return(loGenericResponse); } pOtpService.validation_state = 1; var loErrorMessage = ""; if (Crud <Otp> .Update(pOtpService, out loErrorMessage)) { loGenericResponse.Data = pOtpService; loGenericResponse.Status = "Ok"; loGenericResponse.Code = 200; } else { loGenericResponse.Status = "Fail"; loGenericResponse.Code = -1; loGenericResponse.Message = "İşleminiz esnasında bir problem oluştu lütfen tekrar deneyiniz."; } } else { loGenericResponse.Status = "Fail"; loGenericResponse.Code = -1; loGenericResponse.Message = "Geçersiz şifre girdiniz. Lütfen tekrar deneyiniz."; } return(loGenericResponse); }
public static byte[] GetKey(this Otp otp) { var field = typeof(Otp).GetField("secretKey", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsNotNull(field, "the secretKey field must have been renamed, please update this test accordingly"); object value = field.GetValue(otp); Assert.IsTrue(value is InMemoryKey, "the secretKey field must have changed types from an InMemoryKey, please update this test accordingly"); var inMemoryKey = (InMemoryKey)value; return(inMemoryKey.GetCopyOfKey()); }
public void Test_delete_single_users_and_otps_with_errors_then_add() { // Arrange string message = string.Empty; CleanTables(); string test_user = "******"; CreateOtp(CreateUser(test_user)); // Act User user = repo.SingleOrDefault(u => u.UserId == test_user); if (user != null) { user.Otp.User = null; CleanTables(); repo.Remove(user); try { // errors on saveChanges should reset the state of the underlying DataContext repo.SaveChanges(); } catch (Exception ex) { message = ex.Message; } } //--------- user = repo.Create(); DateTime test_date = new DateTime(2016, 6, 7, 12, 13, 54); string test_pass = "******"; Otp otp = new Otp() { Password = test_pass, StartDate = test_date }; user.UserId = test_user; user.Otp = otp; repo.Add(user); repo.SaveChanges(); DataTable userTable = QueryTable("SELECT * FROM [User]"); DataTable otpTable = QueryTable("SELECT * FROM [Otp]"); // Assert Assert.IsTrue(message != string.Empty); Assert.IsTrue(userTable.Rows.Count == 1); Assert.IsTrue(userTable.Rows[0]["UserId"].ToString() == test_user); Assert.IsTrue(otpTable.Rows[0]["Password"].ToString() == test_pass); Assert.AreEqual(Convert.ToDateTime(otpTable.Rows[0]["StartDate"]), test_date); }
public ActionResult GenerateOtp(ReviewerType reviewerType) { var careManager = CurrentUser.CareManager.FirstOrDefault(); if (careManager == null) { return(HttpNotFound()); } // Clears expired OTPs. var now = DateTime.UtcNow; var otpsToRemove = careManager.Otps.Where(otp => otp.Expires < now).ToList(); if (otpsToRemove.Count > 0) { db.Otps.RemoveRange(otpsToRemove); db.SaveChanges(); } // Generates Otp newOtp = null; var random = new Random(); for (var n = 0; n < 10; n++) { using (var db = new ApplicationDbContext()) { newOtp = new Otp() { CareManagerId = careManager.CareManagerId, VerificationCode = string.Format("{0:0000}", random.Next(10000)), Expires = DateTime.UtcNow.AddMonths(1), ReviewerType = reviewerType }; db.Otps.Add(newOtp); try { db.SaveChanges(); Log(LogType.CareManager, "OTPを生成しました。", new { newOtp.CareManagerId, newOtp.ReviewerType, newOtp.VerificationCode }); return(Json(new { otp = newOtp })); } catch (DbUpdateException) { // Continues to try another random code. } } } // Failed to generate. return(Json(new { otp = (Otp)null })); }
public static Otp CheckUserAndWorkorderHaveUnvalidatedOtp(Otp pOtpService) { var loQuery = Queries.CheckOtp; loQuery = loQuery.Replace("@P01", pOtpService.phone); using var connection = Connection.ConnectionWinvestate(); if (!Connection.OpenConnection(connection)) { return(null); } var result = connection.Query <Otp>(loQuery).ToList(); return(!result.Any() ? null : result.FirstOrDefault()); }
public void Test_add_two_users_and_otps() { // Arrange CleanTables(); User user = repo.Create(); DateTime test_date = new DateTime(2016, 6, 7, 12, 13, 54); string test_pass = "******"; Otp otp = new Otp() { Password = test_pass, StartDate = test_date }; string test_user = "******"; user.UserId = test_user; user.Otp = otp; //------ User user2 = repo.Create(); DateTime test_date2 = new DateTime(2016, 6, 8, 12, 21, 12); string test_pass2 = "test_pass2"; Otp otp2 = new Otp() { Password = test_pass2, StartDate = test_date2 }; string test_user2 = "test_user2"; user2.UserId = test_user2; user2.Otp = otp2; // Act repo.Add(new User[2] { user, user2 }); repo.SaveChanges(); DataTable userTable = QueryTable("SELECT * FROM [User]"); DataTable otpTable = QueryTable("SELECT * FROM [Otp]"); // Assert Assert.IsTrue(userTable.Rows.Count == 2); Assert.IsTrue(userTable.Rows[0]["UserId"].ToString() == test_user); Assert.IsTrue(otpTable.Rows[0]["Password"].ToString() == test_pass); Assert.AreEqual(Convert.ToDateTime(otpTable.Rows[0]["StartDate"]), test_date); //------ Assert.IsTrue(userTable.Rows[1]["UserId"].ToString() == test_user2); Assert.IsTrue(otpTable.Rows[1]["Password"].ToString() == test_pass2); Assert.AreEqual(Convert.ToDateTime(otpTable.Rows[1]["StartDate"]), test_date2); }
public async Task <object> GetBy(Otp parameters) { var temp = 0; temp = Uow.Repository <Otp>().Count(t => t.OtpCode == parameters.OtpCode && t.UserId == parameters.UserId); if (temp != 0) { return(await Task.FromResult("Matched Succefully")); } else { return(await Task.FromResult("Not Matched ")); } //throw new NotImplementedException(); }
public static Otp ValidateOtp(Otp pOtpService) { var loQuery = Queries.ValidateOtp; loQuery = loQuery.Replace("@P01", pOtpService.phone); loQuery = loQuery.Replace("@P02", pOtpService.otp_hash.ToUpper()); using (var connection = Connection.ConnectionWinvestate()) { if (!Connection.OpenConnection(connection)) { return(null); } var result = connection.Query <Otp>(loQuery).ToList(); return(!result.Any() ? null : result.FirstOrDefault()); } }
public ActionResult Enroll(Otp otp, string factorType) { if (ModelState.IsValid != true) { return(View()); } var stateToken = (string)Session[stateTokenKey]; var response = okta.authn.GetStatus(stateToken); try { var rv = okta.authn.ActivateTotpFactor(stateToken, response, otp.passCode); return(CreateSessionFor(rv)); } catch { return(View()); } }
public string GetCode() { if (_otp == null) { var secret = Base32Encoding.ToBytes(Secret); _otp = Type switch { AuthenticatorType.Hotp => new Hotp(secret, Algorithm, Digits), AuthenticatorType.Totp => new Totp(secret, Period, Algorithm, Digits) }; } switch (Type) { case AuthenticatorType.Totp when TimeRenew <= DateTime.Now: { var totp = (Totp)_otp; _code = totp.ComputeTotp(); TimeRenew = DateTime.Now.AddSeconds(totp.RemainingSeconds()); break; } case AuthenticatorType.Hotp when _lastCounter != Counter: { var hotp = (Hotp)_otp; if (_code != null) { TimeRenew = DateTime.Now.AddSeconds(10); } _code = hotp.ComputeHOTP(Counter); _lastCounter = Counter; break; } } return(_code); }
public string AddOtp(string phonenum, string otp) { var str = "could not add otp"; try { var findobj = (from c in context.Otp where c.Phoneno == phonenum select c).FirstOrDefault(); if (findobj == null) { var obj = new Otp(); obj.Otpstring = otp; obj.Phoneno = phonenum; obj.CreatedDate = DateTime.Now; context.Otp.Add(obj); context.SaveChanges(); str = "sucessfully added otp"; } else { findobj.Otpstring = otp; findobj.CreatedDate = DateTime.Now; using (var newContext = new StuffyCareContext()) { newContext.Otp.Update(findobj); newContext.SaveChanges(); str = "OTP updated sucessfully"; } } } catch (Exception e) { str = e.Message; throw e; } return(str); }
public void Test_dataAdapter_create_user_and_otp() { // Arrange CleanTables(); IDataAccessAdapter adapter = container.Resolve <IDataAccessAdapter>(); User user = new User { UserId = "testUser" }; Otp otp = new Otp { User = user, Password = "******", StartDate = DateTime.Now }; // Act adapter.Add <User>(user); adapter.Add <Otp>(otp); adapter.SaveChanges(); List <User> userList = adapter.GetEntities <User>().ToList(); User addedUser = userList.SingleOrDefault(u => u.Id == user.Id); // Assert Assert.IsNotNull(addedUser); Assert.IsNotNull(addedUser.Otp); }
public async Task AddAsync(Otp entity) { //Generate Otp var temp = Uow.Repository <Otp>().Count(t => t.UserId == entity.UserId); if (temp != 0) { var candidate = Uow.Repository <Otp>().FindBy(t => t.UserId == entity.UserId); await Uow.RegisterDeletedAsync(candidate); await Uow.CommitAsync(); } Random rnd = new Random(); string randomNumber = (rnd.Next(100000, 999999)).ToString(); entity.OtpCode = Int32.Parse(randomNumber); //Otp send via msg await Uow.RegisterNewAsync(entity); await Uow.CommitAsync(); }
public string GetCode() { if (_otp == null) { var secret = Base32Encoding.ToBytes(Secret); if (Type == AuthenticatorType.Hotp) { _otp = new Hotp(secret, Algorithm, Digits); } else if (Type == AuthenticatorType.Totp) { _otp = new Totp(secret, Period, Algorithm, Digits); } } if (Type == AuthenticatorType.Totp && TimeRenew <= DateTime.Now) { var totp = (Totp)_otp; _code = totp.ComputeTotp(); TimeRenew = DateTime.Now.AddSeconds(totp.RemainingSeconds()); } else if (Type == AuthenticatorType.Hotp && _lastCounter != Counter) { var hotp = (Hotp)_otp; if (_code != null) { TimeRenew = DateTime.Now.AddSeconds(HotpCooldownSeconds); } _code = hotp.ComputeHOTP(Counter); _lastCounter = Counter; } return(_code); }
public Task DeleteAsync(Otp parameters) { throw new NotImplementedException(); }
public HashSet <string> DeleteValidation(Otp parameters) { return(ValidationMessages); }
public async Task UpdateAsync(Otp entity) { await Uow.RegisterDirtyAsync(entity); await Uow.CommitAsync(); }
public HashSet <string> UpdateValidation(Otp entity) { return(ValidationMessages); }
public Task <object> GetAsync(Otp parameters) { throw new NotImplementedException(); }
public IHttpActionResult SendLoginOtp(Login model) { Otp otpModel = new Otp(); otpModel.MobileOtp = sendOtp.GenerateOtp(); try { string otpQuery = string.Empty; if (model.DocType != "individual") { otpQuery = @"SELECT meta().id as Id,email,mobNum,emirateId From " + _bucket.Name + " as APTCCRM where meta().id like 'login_%' and email='" + model.Email + "' and `password`='" + EncryptDecryptString.EncodePasswordToBase64(model.Password) + "' and docType='user'"; } else { otpQuery = @"SELECT meta().id as Id,email,mobNum,emirateId From " + _bucket.Name + " as APTCCRM where meta().id like 'login_%' and email='" + model.Email + "' and `password`='" + EncryptDecryptString.EncodePasswordToBase64(model.Password) + "' and docType='individual'"; } var userDocument = _bucket.Query <object>(otpQuery).ToList(); if (userDocument.Count > 0) { string mobileNo = ""; string emirateId = ""; foreach (var item in userDocument) { mobileNo = ((Newtonsoft.Json.Linq.JToken)item).Root["mobNum"].ToString(); otpModel.Email = ((Newtonsoft.Json.Linq.JToken)item).Root["email"].ToString(); if (((Newtonsoft.Json.Linq.JToken)item).Root["mobNum"]["countryCodeM"].ToString().Contains("+")) { otpModel.MobileNo = ((Newtonsoft.Json.Linq.JToken)item).Root["mobNum"]["countryCodeM"].ToString() + ((Newtonsoft.Json.Linq.JToken)item).Root["mobNum"]["areaM"].ToString() + ((Newtonsoft.Json.Linq.JToken)item).Root["mobNum"]["numM"].ToString(); } else { otpModel.MobileNo = "+" + ((Newtonsoft.Json.Linq.JToken)item).Root["mobNum"]["countryCodeM"].ToString() + ((Newtonsoft.Json.Linq.JToken)item).Root["mobNum"]["areaM"].ToString() + ((Newtonsoft.Json.Linq.JToken)item).Root["mobNum"]["numM"].ToString(); } otpModel.MobileOtp = otpModel.MobileOtp; } if (string.IsNullOrEmpty(emirateId)) { } //JObject jsonObj = JObject.Parse(userDocument[0].ToString()); //JObject jsonmobNumObj = JObject.Parse(jsonObj["APTCCRM"]["mobNum"].ToString()); //string area = (string)jsonmobNumObj["areaM"].ToString(); //if (string.IsNullOrEmpty("area")) //{ // area = string.Empty; //} //string mobileNo = (string)jsonmobNumObj["countryCodeM"] + area + (string)jsonmobNumObj["numM"]; //otpModel.KeyId = (string)jsonObj["APTCCRM"]["keyID"]; //otpModel.MobileNo = mobileNo; //otpModel.MobileOtp = otpModel.MobileOtp; var sendResult = mobileSMS.SendOtpViaMobile(otpModel.MobileNo, otpModel.MobileOtp, otpModel.Email); if (sendResult == "200") { return(Content(HttpStatusCode.OK, MessageResponse.Message(HttpStatusCode.OK.ToString(), MessageDescriptions.Add, otpModel.Email), new JsonMediaTypeFormatter())); } else { return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), sendResult), new JsonMediaTypeFormatter())); } } else { return(Content(HttpStatusCode.BadRequest, MessageResponse.Message(HttpStatusCode.BadRequest.ToString(), "179-invalid userid or password"), new JsonMediaTypeFormatter())); } } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, MessageResponse.Message(HttpStatusCode.InternalServerError.ToString(), ex.StackTrace), new JsonMediaTypeFormatter())); } }
public YubicoResponse(string response, string url) { var reader = new StringReader(response); string line; var responseMap = new SortedDictionary <string, string>(); ResponseMap = responseMap; while ((line = reader.ReadLine()) != null) { var unhandled = false; var parts = line.Split(new[] { '=' }, 2); switch (parts[0]) { case "h": H = parts[1]; break; case "t": T = parts[1]; break; case "status": var statusCode = parts[1]; if (statusCode.Equals("EMPTY", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.Empty; } else if (statusCode.Equals("OK", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.Ok; } else if (statusCode.Equals("BAD_OTP", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.BadOtp; } else if (statusCode.Equals("REPLAYED_OTP", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.ReplayedOtp; } else if (statusCode.Equals("BAD_SIGNATURE", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.BadSignature; } else if (statusCode.Equals("MISSING_PARAMETER", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.MissingParameter; } else if (statusCode.Equals("NO_SUCH_CLIENT", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.NoSuchClient; } else if (statusCode.Equals("OPERATION_NOT_ALLOWED", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.OperationNotAllowed; } else if (statusCode.Equals("BACKEND_ERROR", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.BackendError; } else if (statusCode.Equals("NOT_ENOUGH_ANSWERS", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.NotEnoughAnswers; } else if (statusCode.Equals("REPLAYED_REQUEST", StringComparison.OrdinalIgnoreCase)) { Status = YubicoResponseStatus.ReplayedRequest; } else { throw new ArgumentException("Response doesn't look like a validation response."); } break; case "timestamp": Timestamp = int.Parse(parts[1]); break; case "sessioncounter": SessionCounter = int.Parse(parts[1]); break; case "sessionuse": UseCounter = int.Parse(parts[1]); break; case "sl": Sync = parts[1]; break; case "otp": Otp = parts[1]; break; case "nonce": Nonce = parts[1]; break; default: unhandled = true; break; } if (!unhandled) { responseMap.Add(parts[0], parts[1]); } } if (Status == YubicoResponseStatus.Empty) { throw new ArgumentException("Response doesn't look like a validation response."); } if (Otp != null && Otp.Length > 32 && YubicoClient.IsOtpValidFormat(Otp)) { PublicId = Otp.Substring(0, Otp.Length - 32); } Url = url; }
public Authenticator() { TimeRenew = DateTime.MinValue; _code = null; _otp = null; }
public ActionResult <GenericResponseModel> SendOtp([FromBody] Otp pOtpService) { var loGenericResponse = new GenericResponseModel(); //var loParticipant = GetData.GetParticipantWithId(pOtpService.participant_phone); var loErrorMessage = ""; if (string.IsNullOrEmpty(pOtpService.phone) || string.IsNullOrWhiteSpace(pOtpService.phone)) { loGenericResponse.Status = "Fail"; loGenericResponse.Code = -1; loGenericResponse.Message = "Lütfen telefon numaranızı doldurunuz"; return(loGenericResponse); } pOtpService.phone = HelperMethods.SerializePhone(pOtpService.phone); //if (loParticipant == null) //{ // loGenericResponse.Status = "Fail"; // loGenericResponse.Code = -1; // loGenericResponse.Message = "No such participant"; // return loGenericResponse; //} //if (string.IsNullOrEmpty(loParticipant.phone) || // string.IsNullOrWhiteSpace(loParticipant.phone)) //{ // loGenericResponse.Status = "Fail"; // loGenericResponse.Code = -1; // loGenericResponse.Message = "Participant mobile phone can not be empty"; // return loGenericResponse; //} var loValidate = GetData.CheckUserAndWorkorderHaveUnvalidatedOtp(pOtpService); if (loValidate?.id > 0 && loValidate.row_create_date != null && (DateTime.Now - (DateTime)loValidate.row_create_date).TotalSeconds < 180) { var loRemainingTime = 180 - (DateTime.Now - (DateTime)loValidate.row_create_date).Seconds; Crud <Otp> .Update(pOtpService, out _); loGenericResponse.Status = "Fail"; loGenericResponse.Code = 0; loGenericResponse.Data = loRemainingTime; loGenericResponse.Message = "Aktif bekleyen bir şifreniz mevcut, şifrenizi giriniz ya da " + " " + loRemainingTime.ToString() + " saniye sonra tekrar deneyiniz. "; return(loGenericResponse); } pOtpService.row_create_date = DateTime.Now; pOtpService.validation_state = 0; var loOtpContent = "123456"; //#if !PROD // pOtpService.otp_hash = Helper.Md5OfString(loOtpContent); // pOtpService.sms_id = "123456"; // var loId = Crud<Otp>.Insert(pOtpService, out _); // pOtpService.id = (int)loId; // loGenericResponse.Data = pOtpService; // loGenericResponse.Status = "Ok"; // loGenericResponse.Code = 200; // return loGenericResponse; //#endif loOtpContent = HelperMethods.RandomOtp(); pOtpService.otp_hash = HelperMethods.Md5OfString(loOtpContent).ToUpper(); var loMessageContent = HelperMethods.GetOtpContent(pOtpService.message_type_system_type_id, loOtpContent); var loMessageResult = RestCalls.SendSms(loMessageContent, pOtpService.phone); if (loMessageResult > 0) { pOtpService.sms_id = loMessageResult.ToString(); var loMyId = Crud <Otp> .Insert(pOtpService, out _); pOtpService.id = (int)loMyId; loGenericResponse.Data = pOtpService; loGenericResponse.Status = "Ok"; loGenericResponse.Code = 200; } else { loGenericResponse.Status = "Fail"; loGenericResponse.Code = -1; loGenericResponse.Message = "İşleminiz esnasında bir problem oluştu lütfen tekrar deneyiniz." + loErrorMessage; } return(loGenericResponse); }