Пример #1
0
        public override IQueryable <Person> DefineModelList()
        {
            IQueryable <Person> qmembers;

            if (CanView != true)
            {
                qmembers = DbUtil.Db.PeopleQuery2("PeopleId = 0");
            }
            else if (StatusFlag.HasValue())
            {
                qmembers = DbUtil.Db.PeopleQuery2($"StatusFlag = '{StatusFlag}'", fromDirectory: true);
            }
            else if (OrgId.HasValue)
            {
                qmembers = DbUtil.Db.PeopleQuery2($"IsMemberOfDirectory( Org={OrgId} ) = 1 ", fromDirectory: true);
            }
            else if (DivId.HasValue)
            {
                qmembers = DbUtil.Db.PeopleQuery2($"IsMemberOfDirectory( Div={DivId} ) = 1", fromDirectory: true);
            }
            else
            {
                qmembers = DbUtil.Db.PeopleQuery2("PeopleId = 0");
            }

            if (Name.HasValue())
            {
                qmembers = from p in qmembers
                           where p.Family.HeadOfHousehold.LastName.Contains(Name) || p.Name.Contains(Name)
                           select p;
            }

            return(qmembers);
        }
Пример #2
0
        private void GetConfiguration()
        {
            Selector = DbUtil.Db.Setting("PictureDirectorySelector", "");
            if (OrgId.HasValue)
            {
                Selector = "FromUrl";
            }
            else if (DivId.HasValue)
            {
                Selector = "FromUrl";
            }
            else if (Regex.IsMatch(Selector, @"\AF\d\d\z"))
            {
                StatusFlag = Selector;
            }
            else if (Regex.IsMatch(Selector, @"\A\d+\z"))
            {
                OrgId = Selector.ToInt();
            }

            if (OrgId.HasValue)
            {
                if (!CanView.HasValue)
                {
                    CanView = HttpContextFactory.Current.User.IsInRole("Admin") || DbUtil.Db.PeopleQuery2($@"
IsMemberOfDirectory( Org={OrgId} ) = 1 
AND PeopleId = {Util.UserPeopleId}", fromDirectory: true).Any();
                }
                //HasDirectory = (om.Organization.PublishDirectory ?? 0) > 0,

                TemplateName = Util.PickFirst(
                    Organization.GetExtra(DbUtil.Db, OrgId.Value, PictureDirectoryTemplateName),
                    PictureDirectoryTemplateName);
                SqlName = Util.PickFirst(
                    Organization.GetExtra(DbUtil.Db, OrgId.Value, PictureDirectorySqlName),
                    PictureDirectorySqlName);
            }
            else if (DivId.HasValue)
            {
                if (!CanView.HasValue)
                {
                    CanView = HttpContextFactory.Current.User.IsInRole("Admin") || DbUtil.Db.PeopleQuery2($@"
IsMemberOfDirectory( Div={DivId} ) = 1 
AND PeopleId = {Util.UserPeopleId}", fromDirectory: true).Any();
                }

                TemplateName = PictureDirectoryTemplateName + "-" + Selector;
                if (!DbUtil.Db.Contents.Any(vv => vv.Name == TemplateName && vv.TypeID == ContentTypeCode.TypeText))
                {
                    TemplateName = PictureDirectoryTemplateName;
                }

                SqlName = PictureDirectorySqlName + "-" + Selector;
                if (!DbUtil.Db.Contents.Any(vv => vv.Name == TemplateName && vv.TypeID == ContentTypeCode.TypeSqlScript))
                {
                    TemplateName = PictureDirectoryTemplateName;
                }
            }
            else if (StatusFlag.HasValue())
            {
                if (!CanView.HasValue)
                {
                    var hasstatus = (from v in DbUtil.Db.StatusFlags(StatusFlag)
                                     where v.PeopleId == Util.UserPeopleId
                                     where v.StatusFlags != null
                                     select v).Any();
                    CanView = hasstatus || HttpContextFactory.Current.User.IsInRole("Admin");
                }
                TemplateName = DbUtil.Db.Setting(PictureDirectoryTemplateName, PictureDirectoryTemplateName);
                SqlName      = DbUtil.Db.Setting(PictureDirectorySqlName, PictureDirectorySqlName);
            }
            else
            {
                ErrorMessage = "NotConfigured";
            }

            if (!ErrorMessage.HasValue() && CanView == false)
            {
                ErrorMessage = "NotAuthorized";
            }
        }