public ActionResult Update(int id) { var request = _requestService.GetRequestById(id); if (request == null) { return(RedirectToAction("NotFoundError", "Home")); } try { var userInfo = _securityService.GetUserInfo(); if (userInfo == null) { return(RedirectToAction("ForbiddenError", "Home")); } _requestService.UpdateUserLastSeen(id, userInfo.IdUser); _requestService.SaveChanges(); } catch (DbUpdateException e) { return(RedirectToAction("ConflictError", "Home", new { message = e.Message })); } return(TransfertTo("Update", request.IdRequestType)); }
public virtual Request InsertRequest(RequestModel <TUserModel> requestModel) { var request = ConvertToRequest(requestModel); var idRequestStateType = RequestSecurityService.CanSetRequestStateGlobal(request, 1) ? 1 : 2; var firstState = new RequestState { IdRequestStateType = idRequestStateType, Request = request, Date = DateTime.Now }; request.RequestStates = new List <RequestState> { firstState }; request.User = RequestSecurityService.GetUserInfo(); request.CurrentRequestStateDate = firstState.Date; request.IdCurrentRequestStateType = firstState.IdRequestStateType; request.CurrentRequestStateType = RequestsRepository.GetRequestStateTypes() .FirstOrDefault(r => r.IdRequestStateType == firstState.IdRequestStateType); return(RequestsRepository.InsertRequest(request)); }
public IEnumerable <MailMessage> SetRequestStateEmails(Request request, int idRequestStateType, string agreementDescription) { var messages = new List <MailMessage>(); if (request.User.Roles.Any(r => r.IdRole == 1)) { return(messages); } if (request.IdCurrentRequestStateType == 4 || (request.IdCurrentRequestStateType != idRequestStateType && !(request.IdCurrentRequestStateType == 2 && idRequestStateType == 5))) { return(messages); } var requester = request.User; if (!string.IsNullOrEmpty(requester.Email)) { var message = SetRequestStateRequesterEmail(request, request.CurrentRequestStateType, agreementDescription); messages.Add(message); } if (idRequestStateType == 2 || (new[] { 4, 5 }.Contains(idRequestStateType) && request.RequestStates.Any(r => !r.Deleted && r.IdRequestStateType == 2))) { var users = _requestSecurityService.GetUsersBy(AclRole.Dispatcher) .Union(_requestSecurityService.GetUsersBy(AclRole.Registrar)); var userInfo = _requestSecurityService.GetUserInfo(); foreach (var user in users) { if (string.IsNullOrEmpty(user.Email)) { continue; } if (user.IdUser == userInfo.IdUser) { continue; } var message = SetRequestStateDispatcherEmail(request, request.CurrentRequestStateType, agreementDescription, user); messages.Add(message); } } return(messages); }