public async Task <IActionResult> ResetAsync([FromBody, Required] ResetPasswordBody resetPasswordData) { if (!Utils.IsValidEmail(resetPasswordData.Email)) { return(BadRequest(new ErrorResponse { Error = "Invalid email" })); } User user = await _context.Users.FirstOrDefaultAsync(x => x.Email == resetPasswordData.Email.ToUpperInvariant()); if (user == null) { return(NotFound(new ErrorResponse { Error = "Email not found" })); } string code = Code.Generate(); _context.ForgotPasswordRequests.Add(new ForgotPasswordRequest { Ip = this.Request.HttpContext.Connection.RemoteIpAddress.ToString(), Code = code, RequestDate = DateTimeOffset.UtcNow, UserFK = user.Id }); await _context.SaveChangesAsync(); await Utils.SendEmailAsync( resetPasswordData.Email, "[ProMotion] Mudança de senha", $"Para alterar sua senha, utilize o seguinte código: {code}<br />Caso não tenha sido você que fez essa requisição, desconsidere este e-mail ou entre em contato com o suporte." ); return(Ok()); }
/// <summary> /// Reset a lab virtual machine password. /// </summary> /// <remarks> /// Resets a lab virtual machine password. /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='body'> /// The request body. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. The name is case insensitive. /// </param> /// <param name='labName'> /// The name of the lab that uniquely identifies it within containing lab /// account. Used in resource URIs. /// </param> /// <param name='virtualMachineName'> /// The ID of the virtual machine that uniquely identifies it within the /// containing lab. Used in resource URIs. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task BeginResetPasswordAsync(this IVirtualMachinesOperations operations, ResetPasswordBody body, string resourceGroupName, string labName, string virtualMachineName, CancellationToken cancellationToken = default(CancellationToken)) { (await operations.BeginResetPasswordWithHttpMessagesAsync(body, resourceGroupName, labName, virtualMachineName, null, cancellationToken).ConfigureAwait(false)).Dispose(); }
/// <summary> /// Reset a lab virtual machine password. /// </summary> /// <remarks> /// Resets a lab virtual machine password. /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='body'> /// The request body. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. The name is case insensitive. /// </param> /// <param name='labName'> /// The name of the lab that uniquely identifies it within containing lab /// account. Used in resource URIs. /// </param> /// <param name='virtualMachineName'> /// The ID of the virtual machine that uniquely identifies it within the /// containing lab. Used in resource URIs. /// </param> public static void BeginResetPassword(this IVirtualMachinesOperations operations, ResetPasswordBody body, string resourceGroupName, string labName, string virtualMachineName) { operations.BeginResetPasswordAsync(body, resourceGroupName, labName, virtualMachineName).GetAwaiter().GetResult(); }