Esempio n. 1
0
        public void ChangeSubscribeRequestState(long userId, StatusRequestEnum requestState)
        {
            IEnumerable <long> statusRequestIds = statusRequestMapService.GetElementsByEquivalence(requestState);
            IEnumerable <CabinetUserEventSubscribe> subscribes = userEventSubscribeRepository.GetList(s => s.User.Id == userId &&
                                                                                                      statusRequestIds.Contains(s.StatusRequest.Id));

            if (!subscribes.Any())
            {
                foreach (long statusRequestId in statusRequestIds)
                {
                    var subscribe = new CabinetUserEventSubscribe()
                    {
                        StatusRequest = statusRepository.Get(statusRequestId),
                        User          = userRepository.Get(userId)
                    };
                    userEventSubscribeRepository.Save(subscribe);
                }
            }
            else
            {
                userEventSubscribeRepository.Delete(s => s.User.Id == userId && statusRequestIds.Contains(s.StatusRequest.Id));
            }

            repository.SaveChanges();
        }
Esempio n. 2
0
        /// <summary>
        /// Заявки пользователя личного кабинета
        /// </summary>
        public IEnumerable <RequestDTO> GetListByEmployee(long employeeId, RequestFilter filter, OrderInfo orderInfo, PageInfo pageInfo)
        {
            if (filter.StatusIds != null && filter.StatusIds.Any())
            {
                filter.RawStatusIds = new List <long>();
                foreach (StatusRequestEnum s in filter.StatusIds)
                {
                    foreach (long statuId in statusRequestMapService.GetElementsByEquivalence(s))
                    {
                        filter.RawStatusIds.Add(statuId);
                    }
                }
            }

            return(getList(
                       delegate(PageInfo _pageInfo)
            {
                return queryHandler.Handle <EmployeeRequestQueryParam, IEnumerable <RequestDTO>, IEmployeeRequestQuery <Request> >
                    (new EmployeeRequestQueryParam
                {
                    EmployeeId = employeeId,
                    Filter = filter,
                    OrderInfo = orderInfo,
                    PageInfo = _pageInfo
                }, _employeeRequestQuery);
            },
                       delegate(PageInfo _pageInfo)
            {
                return queryHandler.Handle <EmployeeRequestQueryParam, IEnumerable <RequestDTO>, IEmployeeRequestQuery <RequestArch> >
                    (new EmployeeRequestQueryParam
                {
                    EmployeeId = employeeId,
                    Filter = filter,
                    OrderInfo = orderInfo,
                    PageInfo = _pageInfo
                }, _employeeRequestArchQuery);
            },
                       filter, orderInfo, pageInfo));
        }