Example #1
0
        public IEnumerable <ClientContract> GetFilteredList(object state, ParameterString param, User user, Permission permission)
        {
            Func <ISubCriteria <Deal>, ISubCriteria <Deal> > cond = null;

            switch (user.GetPermissionDistributionType(permission))
            {
            case PermissionDistributionType.None:
                return(new List <ClientContract>());

            case PermissionDistributionType.Personal:
                cond = x => x.PropertyIn(y => y.Id, dealRepository.GetSubQueryForDealIdOnPersonalPermission(user.Id)).Select(y => y.Id);
                break;

            case PermissionDistributionType.Teams:
                cond = x => x.PropertyIn(y => y.Id, dealRepository.GetSubQueryForDealIdOnTeamPermission(user.Id)).Select(y => y.Id);
                break;

            case PermissionDistributionType.All:
                break;
            }

            // получаем список договоров через область видимости сделок
            // (кол-во записей на странице может быть меньше необходимого, т.к. одна сделка может быть связана с несколькими договорами)
            return(dealRepository.GetFilteredList(state, param, cond: cond).Select(x => x.Contract).Distinct());
        }
Example #2
0
        public IEnumerable <Deal> GetFilteredList(object state, ParameterString param, User user, Permission permission)
        {
            Func <ISubCriteria <Deal>, ISubCriteria <Deal> > cond = null;

            switch (user.GetPermissionDistributionType(permission))
            {
            case PermissionDistributionType.None:
                return(new List <Deal>());

            case PermissionDistributionType.Personal:
                cond = x => x.PropertyIn(y => y.Id, dealRepository.GetSubQueryForDealIdOnPersonalPermission(user.Id)).Select(y => y.Id);
                break;

            case PermissionDistributionType.Teams:
                cond = x => x.PropertyIn(y => y.Id, dealRepository.GetSubQueryForDealIdOnTeamPermission(user.Id)).Select(y => y.Id);
                break;

            case PermissionDistributionType.All:
                break;
            }

            return(dealRepository.GetFilteredList(state, param, cond: cond));
        }