Exemple #1
0
        /// <summary>
        /// Инициализация фильтров пользователя.
        /// </summary>
        /// <param name="token">Токен безопасности.</param>
        /// <param name="filters">Фильтры.</param>
        protected override void InitializeCustomFilters(SecurityToken token, IList <UserGridFilter> filters)
        {
            //TODO:Настроить фильтр
            //filters.Add(CustomTodayFilter);
            var filter = new UserGridFilter();

            filter.Title      = "Мои задачи";
            filter.FilterData = "[StatusKind]!=5";
            var fieldName = string.Empty;

            if (token.User.ProjectRoleID == ProjectRoleSet.Engineer.ProjectRoleID)
            {
                fieldName = "EngineerID";
            }
            else if (token.User.ProjectRoleID == ProjectRoleSet.Manager.ProjectRoleID)
            {
                fieldName = "ManagerID";
            }

            if (!string.IsNullOrWhiteSpace(fieldName))
            {
                filter.FilterData += string.Format(" && [{0}] ='{1}'", fieldName, token.User.UserID);
            }

            filter.UserGridFilterID = new Guid("25B04D3E-7AC2-400D-B999-2269FC0BA35B");

            filters.Add(filter);
        }
        public ActionResult GetFilter(Guid?userFilterId)
        {
            try
            {
                var token  = GetToken();
                var filter = RemontinkaServer.Instance.EntitiesFacade.GetUserGridFilter(token, userFilterId);
                if (filter == null)
                {
                    var list = new List <UserGridFilter>();
                    InitializeCustomFilters(token, list);

                    filter = list.FirstOrDefault(i => i.UserGridFilterID == userFilterId);
                }

                if (filter == null)
                {
                    _logger.ErrorFormat("При получении фильтра по ID {0} для грида {1} пользователем {2},фильтр не найден", userFilterId, GetGridName(), token.LoginName);
                    filter            = new UserGridFilter();
                    filter.FilterData = string.Empty;
                }

                return(JCrudData(filter.FilterData));
            }
            catch (Exception ex)
            {
                var innerException = string.Empty;
                if (ex.InnerException != null)
                {
                    innerException = ex.InnerException.Message;
                } //if
                _logger.ErrorFormat("Во время получения фильтра для грида {0} {1} произошла ошибка {2} {3} {4} {5}",
                                    GetType().Name, userFilterId, ex.Message, ex.GetType(), innerException, ex.StackTrace);
                return(JCrudError("Ошибка получения данных по фильтру"));
            }
        }
        public ActionResult SaveCurrentFilter(string filterData, string filterName)
        {
            try
            {
                var token = GetToken();
                _logger.InfoFormat("Поступил запрос на сохранение фильтра для грида {0} {1} от пользователя {2}", GetGridName(), filterName, token.LoginName);
                if (string.IsNullOrWhiteSpace(filterName))
                {
                    _logger.ErrorFormat("При сохранении фильтра произошла ошибка: не задано имя фильтра {0},{1} ", token.LoginName, filterData);
                    return(JCrudError("Не задано имя фильтра"));
                }

                if (string.IsNullOrWhiteSpace(filterData))
                {
                    _logger.ErrorFormat("При сохранении фильтра произошла ошибка: фильтр пустой {0},{1} ", token.LoginName, filterName);
                    return(JCrudError("Фильтр пустой"));
                }

                var filter = new UserGridFilter();
                filter.UserID     = token.User.UserID;
                filter.Title      = filterName;
                filter.FilterData = filterData;
                filter.GridName   = GetGridName();
                RemontinkaServer.Instance.EntitiesFacade.SaveUserGridFilter(token, filter);
                return(JCrud(new JCrudResult {
                    ResultState = CrudResultKind.Success
                }));
            }
            catch (Exception ex)
            {
                var innerException = string.Empty;
                if (ex.InnerException != null)
                {
                    innerException = ex.InnerException.Message;
                } //if

                _logger.ErrorFormat("Во время сохранения фильтра для грида {0} {1} произошла ошибка {2} {3} {4} {5}", filterData, GetGridName(), ex.Message, ex.GetType(), innerException, ex.StackTrace);

                return(JCrudError(ex.Message));
            }
        }