コード例 #1
0
        public IEnumerable <ReturnFromClientWaybill> GetFilteredList(object state, User user, ParameterString param = null)
        {
            if (param == null)
            {
                param = new ParameterString("");
            }

            Func <ISubCriteria <ReturnFromClientWaybill>, ISubCriteria <ReturnFromClientWaybill> > cond = null;

            switch (user.GetPermissionDistributionType(Permission.ReturnFromClientWaybill_List_Details))
            {
            case PermissionDistributionType.None:
                return(new List <ReturnFromClientWaybill>());

            case PermissionDistributionType.Personal:
                cond = x =>
                {
                    AddArticleRestriction(param, x);

                    return(x.PropertyIn(y => y.Deal.Id, dealRepository.GetSubQueryForDealIdOnPersonalPermission(user.Id)).Select(y => y.Id));
                };
                break;

            case PermissionDistributionType.Teams:
                cond = x =>
                {
                    AddArticleRestriction(param, x);

                    return(x.PropertyIn(y => y.Deal.Id, dealRepository.GetSubQueryForDealIdOnTeamPermission(user.Id)).Select(y => y.Id));
                };
                break;

            case PermissionDistributionType.All:
                break;
            }

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