Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }