public IHttpActionResult RevokeHead() { string status = "Fail to revoke."; string currentUserId = User.Identity.GetUserId(); //removing user from role AspNetUsers user = _context.AspNetUsers.FirstOrDefault(m => m.Id == currentUserId); AspNetRoles depHeadRoleList = _context.AspNetRoles.FirstOrDefault(m => m.Name == RoleName.ActingDepartmentHead); AspNetUsers delegatedDepHead = depHeadRoleList.AspNetUsers.FirstOrDefault(m => m.DepartmentId == user.DepartmentId); //Changing the date of Delegation of authority to cut short DelegationOfAuthority doaInDb = _context.DelegationOfAuthority.OrderByDescending(m => m.DOAId) .FirstOrDefault(m => m.DelegatedTo == delegatedDepHead.Id); doaInDb.EndDate = DateTime.Today.AddDays(-1); //removing delegate head from role UserManager <ApplicationUser> userManager = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>(); userManager.AddToRole(delegatedDepHead.Id, "Employee"); userManager.RemoveFromRole(delegatedDepHead.Id, "Acting Department Head"); _context.SaveChanges(); status = "Successfully revoked."; return(Ok(status)); }
public string Delegate(DelegateHeadViewModel model) { if (!ModelState.IsValid) { return("fail"); } else { string userId = User.Identity.GetUserId(); var selectedEmployee = model.SelectedUser; DelegationOfAuthority doaInDb = new DelegationOfAuthority { DelegatedBy = userId, //"b36a58f3-51f9-47eb-8601-bcc757a8cadb";//selected Employee ID; DelegatedTo = selectedEmployee, StartDate = model.StartDate, //new DateTime(2017,3,5); EndDate = model.EndDate, //new DateTime(2017, 5, 5); DepartmentId = model.DepartmentID }; //model.CurrentUser = userId; ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); userManager.RemoveFromRole(doaInDb.DelegatedTo, RoleName.Employee); userManager.AddToRole(doaInDb.DelegatedTo, RoleName.ActingDepartmentHead); _context.DelegationOfAuthority.Add(doaInDb); _context.SaveChanges(); return("success"); } }
public int GenerateDelegationOfAuthorityId() { DelegationOfAuthority lastItem = _context.DelegationOfAuthority.OrderByDescending(m => m.DOAId).First(); int lastRequestId = lastItem.DOAId; int newRequestId = lastRequestId + 1; return(newRequestId); }
public void AssignDelegateHead(string userId, string selectedUser, string deptId, DateTime startDate, DateTime endDate) { DelegationOfAuthority doaInDb = new DelegationOfAuthority { DelegatedBy = userId, //"b36a58f3-51f9-47eb-8601-bcc757a8cadb";//selected Employee ID; DelegatedTo = selectedUser, StartDate = startDate, //new DateTime(2017,3,5); EndDate = endDate, //new DateTime(2017, 5, 5); DepartmentId = deptId }; context.DelegationOfAuthority.Add(doaInDb); context.SaveChanges(); }
public IHttpActionResult DelegateDepartmentHead(DelegateDepHeadApiModel depFromJson) { string status = "Fail to delegate. Approve all request before delegating."; AspNetUsers user = _context.AspNetUsers.FirstOrDefault(m => m.Id == depFromJson.UserId); //check if there is any request pending approval, if yes, disallow them from changing bool anyPendingRequest = _context.StationeryRequest.Any(m => m.DepartmentId == user.DepartmentId && m.Status == "Pending Approval"); //StationeryRequest sr = _context.StationeryRequest.FirstOrDefault(m =>m.DepartmentId == user.DepartmentId && m.Status == "Pending Approval"); if (!anyPendingRequest) //if (sr==null) { AspNetUsers delegatedDepHead = _context.AspNetUsers.FirstOrDefault(m => m.EmployeeName == depFromJson.DelegatedDepartmentHeadName); DelegationOfAuthority doaInDb = new DelegationOfAuthority { DOAId = GenerateDelegationOfAuthorityId(), DelegatedBy = user.Id, DelegatedTo = delegatedDepHead.Id, StartDate = depFromJson.StartDate, EndDate = depFromJson.EndDate, DepartmentId = user.DepartmentId }; _context.DelegationOfAuthority.Add(doaInDb); ApplicationUserManager userManager = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>(); userManager.AddToRole(doaInDb.DelegatedTo, RoleName.ActingDepartmentHead); _context.SaveChanges(); status = "Successfully delegated."; //emailing the delegated head //string delHeadEmail = _context.Department.FirstOrDefault(m => m.DepartmentId == pair.Key).AspNetUsers3.Email; string recipient = "*****@*****.**"; //dummy email used string title = "You've been delegated as Acting head department from " + depFromJson.StartDate + " to " + depFromJson.EndDate; string body = "Dear employee, you have been delegated as Acting head department for the period stated above. Kindly approve/reject all request while the head is out of the office."; Email.Send(recipient, title, body); } return(Ok(status)); }