public async Task <ResetPwdResult> DoResetPwd(ResetPwdInfo request) { try { var lastSendTime = (DateTime.UtcNow - _lastTime).TotalSeconds; if (lastSendTime <= 90) { throw new Exception( $"You need to wait at least 90 seconds before asking to resend an new password! Last request was {lastSendTime} seconds ago."); } var result = await _dataExchange.DoDataExchange <ResetPwdResult, ResetPwdInfo>(request, CmdName); if (result.Result) { _lastTime = DateTime.UtcNow; } return(result); } catch (Exception e) { return(new ResetPwdResult(false, e.Message)); } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { ResetPwdInfo info = value as ResetPwdInfo; writer.WriteStartObject(); writer.WritePropertyName("User.password"); serializer.Serialize(writer, info.CurrentPassword); writer.WritePropertyName("User.passwordNew"); serializer.Serialize(writer, info.NewPassword); writer.WritePropertyName("User.passwordConfirm"); serializer.Serialize(writer, info.ConfirmPassword); writer.WriteEndObject(); }
public IRestResponse ResetUserPassword(SessionData data, ResetPwdInfo info) { // Convert Info to JSON string jsonBody = JsonConvert.SerializeObject(info, ResetPwdInfoSerializer.Instatiate()); // Create URL part: endpoint/userId Uri endpoint = new Uri(config.ResetPwdEndpoint, info.Id); // Build request RestRequest request = new RestRequest(endpoint, Method.PATCH, DataFormat.Json); request.AddHeader("token", data.Token); request.AddHeader("Accept", "application/json"); request.AddJsonBody(jsonBody); // Execute the request return(client.ExecuteWithPolicy(request, policy)); }
public async Task <ResetPwdResult> DoResetPwd(ResetPwdInfo request) { try { if (!Misc.IsValideEmailAdress(request.EMail)) { throw new Exception("Invalid eMail!"); } if (request.VerifyKey.Length != 32) { throw new Exception("Invalid Verify Key!"); } var lastSendTime = (DateTime.UtcNow - _lastTime).TotalSeconds; if (lastSendTime <= 90) { throw new Exception( $"You need to wait at least 90 seconds before asking to resend an new password! Last request was {lastSendTime} seconds ago."); } dynamic requestInfo = request; var result = await DataExchange.DoDataExchange((object)requestInfo); ResetPwdResult retVal = result.ToObject <ResetPwdResult>(); if (retVal.Result) { _lastTime = DateTime.UtcNow; } return(retVal); } catch (Exception e) { return(new ResetPwdResult(false, e.Message)); } }
public QueryResult Execute(ResetPwdInfo info) => new QueryResult();