Example #1
0
        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));
            }
        }
Example #2
0
        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();
        }
Example #3
0
        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));
        }
Example #4
0
        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));
            }
        }
Example #5
0
 public QueryResult Execute(ResetPwdInfo info) => new QueryResult();