Example #1
0
        private SiteSettings GetSiteSettings(Context context, SiteSettings ss)
        {
            switch (TableName)
            {
            case "Depts":
                return(SiteSettingsUtilities.DeptsSiteSettings(context: context));

            case "Groups":
                return(SiteSettingsUtilities.GroupsSiteSettings(context: context));

            case "Users":
                return(SiteSettingsUtilities.UsersSiteSettings(context: context));

            default:
                return(ss);
            }
        }
Example #2
0
        public void Action(
            Context context,
            long siteId,
            string type,
            Dictionary <string, string> data,
            SqlSelect sub)
        {
            var ss = SiteSettingsUtilities.Get(
                context: context,
                siteId: siteId);

            LinkActions?.ForEach(action =>
            {
                if (action.Type == type)
                {
                    switch (type)
                    {
                    case "CopyWithLinks":
                        action.CopyWithLinks(
                            context: context,
                            ss: ss,
                            columnName: ColumnName,
                            from: data.Get("From").ToLong(),
                            to: data.Get("To").ToLong());
                        break;

                    case "DeleteWithLinks":
                        action.DeleteWithLinks(
                            context: context,
                            ss: ss,
                            columnName: ColumnName,
                            sub: sub);
                        break;
                    }
                }
            });
        }
Example #3
0
        public void SetChoiceHash(
            Context context,
            SiteSettings ss,
            Column column,
            string searchText,
            Column parentColumn,
            List <long> parentIds,
            int offset,
            bool search,
            bool searchFormat,
            bool setAllChoices,
            bool setChoices)
        {
            switch (TableName)
            {
            case "Depts":
                column.Type = Column.Types.Dept;
                if (setChoices)
                {
                    if (column.UseSearch != true || search || setAllChoices)
                    {
                        var currentSs = SiteSettingsUtilities.DeptsSiteSettings(context: context);
                        Set(
                            context: context,
                            ss: currentSs,
                            column: column,
                            dataRows: Depts(
                                context: context,
                                ss: currentSs,
                                inheritPermission: ss.InheritPermission,
                                searchText: searchText,
                                setAllChoices: setAllChoices,
                                offset: offset),
                            searchFormat: searchFormat);
                    }
                }
                break;

            case "Groups":
                column.Type = Column.Types.Group;
                if (setChoices)
                {
                    if (column.UseSearch != true || search || setAllChoices)
                    {
                        var currentSs = SiteSettingsUtilities.GroupsSiteSettings(context: context);
                        Set(
                            context: context,
                            ss: currentSs,
                            column: column,
                            dataRows: Groups(
                                context: context,
                                ss: currentSs,
                                inheritPermission: ss.InheritPermission,
                                searchText: searchText,
                                setAllChoices: setAllChoices,
                                offset: offset),
                            searchFormat: searchFormat);
                    }
                }
                break;

            case "Users":
                column.Type = Column.Types.User;
                if (setChoices)
                {
                    if (column.UseSearch != true || search || setAllChoices)
                    {
                        var currentSs = SiteSettingsUtilities.UsersSiteSettings(context: context);
                        Set(
                            context: context,
                            ss: currentSs,
                            column: column,
                            dataRows: Users(
                                context: context,
                                ss: currentSs,
                                inheritPermission: ss.InheritPermission,
                                searchText: searchText,
                                setAllChoices: setAllChoices,
                                offset: offset),
                            searchFormat: searchFormat);
                    }
                }
                break;

            default:
                if (setChoices)
                {
                    if (SiteId > 0)
                    {
                        if (column.UseSearch != true || search || setAllChoices)
                        {
                            var currentSs = ss.JoinedSsHash.Get(SiteId);
                            if (currentSs != null)
                            {
                                Set(
                                    context: context,
                                    ss: currentSs,
                                    column: column,
                                    dataRows: Items(
                                        context: context,
                                        ss: currentSs,
                                        searchText: searchText,
                                        parentColumn: parentColumn,
                                        parentIds: parentIds,
                                        offset: offset,
                                        setAllChoices: setAllChoices),
                                    searchFormat: searchFormat);
                            }
                        }
                    }
                }
                break;
            }
        }
Example #4
0
        public Dictionary <string, string> LookupData(
            Context context,
            SiteSettings ss,
            Link link,
            long id)
        {
            var currentSs = ss.Destinations.Get(link.SiteId);
            var canRead   = false;

            if (currentSs == null)
            {
                canRead = true;
                switch (link?.TableName)
                {
                case "Depts":
                    currentSs = SiteSettingsUtilities.DeptsSiteSettings(context: context);
                    break;

                case "Users":
                    currentSs = SiteSettingsUtilities.UsersSiteSettings(context: context);
                    break;

                case "Groups":
                    currentSs = SiteSettingsUtilities.GroupsSiteSettings(context: context);
                    break;

                default:
                    canRead = false;
                    break;
                }
            }
            else
            {
                canRead = Permissions.CanRead(
                    context: context,
                    siteId: currentSs.SiteId,
                    id: id);
            }
            var formData = link.Lookups.ToDictionary(
                lookup => $"{currentSs.ReferenceType}_{lookup.To}",
                lookup => string.Empty);

            if (id > 0 &&
                currentSs != null &&
                canRead)
            {
                link.Lookups.ForEach(lookup =>
                {
                    formData.AddOrUpdate(
                        $"{currentSs.ReferenceType}_{lookup.To}",
                        string.Empty);
                });
                switch (currentSs.ReferenceType)
                {
                case "Issues":
                    var issueModel = new IssueModel(
                        context: context,
                        ss: currentSs,
                        issueId: id);
                    link.Lookups.ForEach(lookup =>
                                         formData.AddOrUpdate(
                                             $"{ss.ReferenceType}_{lookup.To}",
                                             lookup.Data(
                                                 context: context,
                                                 ss: currentSs,
                                                 issueModel: issueModel)));
                    break;

                case "Results":
                    var resultModel = new ResultModel(
                        context: context,
                        ss: currentSs,
                        resultId: id);
                    link.Lookups.ForEach(lookup =>
                                         formData.AddOrUpdate(
                                             $"{ss.ReferenceType}_{lookup.To}",
                                             lookup.Data(
                                                 context: context,
                                                 ss: currentSs,
                                                 resultModel: resultModel)));
                    break;

                case "Depts":
                    var deptModel = new DeptModel(
                        context: context,
                        ss: currentSs,
                        deptId: id.ToInt());
                    link.Lookups.ForEach(lookup =>
                                         formData.AddOrUpdate(
                                             $"{ss.ReferenceType}_{lookup.To}",
                                             lookup.Data(
                                                 context: context,
                                                 ss: currentSs,
                                                 deptModel: deptModel)));
                    break;

                case "Users":
                    var userModel = new UserModel(
                        context: context,
                        ss: currentSs,
                        userId: id.ToInt());
                    link.Lookups.ForEach(lookup =>
                                         formData.AddOrUpdate(
                                             $"{ss.ReferenceType}_{lookup.To}",
                                             lookup.Data(
                                                 context: context,
                                                 ss: currentSs,
                                                 userModel: userModel)));
                    break;

                case "Groups":
                    var groupModel = new GroupModel(
                        context: context,
                        ss: currentSs,
                        groupId: id.ToInt());
                    link.Lookups.ForEach(lookup =>
                                         formData.AddOrUpdate(
                                             $"{ss.ReferenceType}_{lookup.To}",
                                             lookup.Data(
                                                 context: context,
                                                 ss: currentSs,
                                                 groupModel: groupModel)));
                    break;
                }
            }
            return(formData);
        }