public async Task <IHttpActionResult> GetUserPasswordReset(tUserPasswordReset passwordReset) { try { var pwdReset = await db.tUserPasswordResets.Where(u => u.ExternalUserID == passwordReset.ExternalUserID && u.ResetCodeID == passwordReset.ResetCodeID).OrderByDescending(u => u.CreateDateTime).FirstOrDefaultAsync(); if (pwdReset != null) { if (pwdReset.UsedDateTime != null) { return(Unauthorized());// BadRequest("Code has already been used!"); } else { if ((DateTime.Now - pwdReset.CreateDateTime).TotalDays > 2) { return(BadRequest("Reset Code has expired")); } else { return(Ok(pwdReset)); } } } else { return(NotFound()); } } catch (DbUpdateConcurrencyException ex) { throw ex; } }
public async Task <IHttpActionResult> GetUserPasswordResetCode(tUser user) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var users = await db.tUsers.Where(u => u.Email == user.Email && u.AccountStatusID == 1).FirstOrDefaultAsync(); if (users != null) { var userPasswordReset = new tUserPasswordReset { UserID = users.ID, ExternalUserID = users.ExternalID, ResetCodeID = Guid.NewGuid(), CreateDateTime = DateTime.Now, }; db.tUserPasswordResets.Add(userPasswordReset); await db.SaveChangesAsync(); users.tUserPasswordResets.Add(userPasswordReset); return(Ok(users)); } else { return(StatusCode(HttpStatusCode.NotFound)); } } catch (DbUpdateConcurrencyException ex) { throw ex; } }
public async Task <IHttpActionResult> UpdateUserPasswordReset(int id, tUserPasswordReset passwordReset) { try { var tUserPwd = await db.tUserPasswordResets.Include(u => u.tUser).Where(u => u.UserID == passwordReset.UserID && u.ResetCodeID == passwordReset.ResetCodeID && u.ExternalUserID == passwordReset.ExternalUserID).FirstOrDefaultAsync(); if (tUserPwd != null) { tUserPwd.UsedDateTime = DateTime.Now; await db.SaveChangesAsync(); return(Ok(tUserPwd.tUser)); } else { return(NotFound()); } } catch (DbUpdateConcurrencyException ex) { throw ex; } }