public IHttpActionResult GetResetLink(ForgotPassword resetter) { using (PsiogEntities PE = new PsiogEntities()) { string VerificationCode = Guid.NewGuid().ToString(); string encodedId = Hasher.EncodeId(resetter.employeeId); var link = "http://localhost:4200/verify-employee/" + Hasher.EncodeId(resetter.employeeId); var result = PE.Users.Where(u => u.EmployeeId == resetter.employeeId).FirstOrDefault(); if (result != null) { if (string.Compare(result.Answer, resetter.answer) == 0) { var employee = PE.Employees.Where(u => u.EmployeeId == resetter.employeeId).FirstOrDefault(); result.VerificationCode = VerificationCode; try { PE.SaveChanges(); } catch (Exception E) { ExceptionLog.Logger(E); return(Ok("Unable to get reset link")); } var mail = ComposeMail.SendResetLink(employee.Email, out SmtpClient messenger); mail.Body += link + ">Click here to reset password</a>"; messenger.Send(mail); messenger.Dispose(); return(Ok("Reset link has been sent to your registered email ID")); } else { return(Ok("Incorrect answer for security question")); } } else { return(Ok("Employee Id does not exist!")); } } }
public HttpResponseMessage ChangeStatus(Approveleaves l) { using (PsiogEntities PE = new PsiogEntities()) { var appl = PE.LeaveApplications.Where(u => u.LeaveApplicationId == l.id).FirstOrDefault(); appl.Status = l.status; string msg = ""; if (l.status == "Rejected") { var rollback = (from avail in PE.EmployeeLeaveAvaliabilities join leaveapp in PE.LeaveApplications on avail.LeaveTypeId equals leaveapp.LeaveId where leaveapp.LeaveApplicationId == l.id select new { avail.AllocatedDays, leaveapp.FromDate, leaveapp.ToDate, leaveapp.FromSession, leaveapp.ToSession, avail.Id }).FirstOrDefault(); int rollbackdays = (rollback.ToDate - rollback.FromDate).Days; decimal rollbacksession = 0M; if (rollback.FromSession == rollback.ToSession) { rollbacksession = 0.5M; } else if (rollback.FromSession > rollback.ToSession) { rollbacksession = 0M; } else { rollbacksession = 1M; } decimal updatedRollback = rollbackdays + rollbacksession; var updateLeaveAvailability = PE.EmployeeLeaveAvaliabilities.Where(e => e.Id == rollback.Id).FirstOrDefault(); updateLeaveAvailability.AvailedDays = updatedRollback; } else if (l.status == "Approved") { appl.Status = "Approved"; } try { PE.SaveChanges(); msg = "Done!"; } catch (Exception E) { ExceptionLog.Logger(E); msg = "Unable to process request"; } HttpResponseMessage response; response = Request.CreateResponse(HttpStatusCode.OK, msg); return(response); } }