Пример #1
0
        /// <summary>
        /// Получение условия выбора разметок по роли
        /// </summary>
        private IConditionItemEditor GetRolesConditionItemEditor()
        {
            var rolesEditor = new ConditionItemEditor();
            var rolesHeader = new ConditionHeader {
                Header = "Role", ConditionTypeId = Constants.ConditionTypes.RolesConditionType
            };
            var staffTree = GetStaffTree();

            var rolesModel = new List <ConditionItemModel>();

            foreach (var staff in staffTree)
            {
                foreach (var role in staff.Roles)
                {
                    var id = role.GetObjectId().ToString("D");
                    if (!rolesModel.Any(x => x.Value == id))
                    {
                        var rolesItem = new ConditionItemModel
                        {
                            ConditionTypeId  = Constants.ConditionTypes.RolesConditionType,
                            Value            = role.GetObjectId().ToString("D"),
                            ValueDisplayName = role.Name
                        };

                        if (!rolesModel.Contains(rolesItem))
                        {
                            rolesModel.Add(rolesItem);
                        }
                    }
                }
            }
            rolesModel.Insert(0, new ConditionItemModel
            {
                ConditionTypeId  = Constants.ConditionTypes.RolesConditionType,
                Value            = null,
                ValueDisplayName = "Any"
            });

            rolesEditor.Initialize(rolesHeader, rolesModel);
            return(rolesEditor);
        }
Пример #2
0
        /// <summary>
        /// Получение условия выбора разметок по группе
        /// </summary>
        private IConditionItemEditor GetGroupsConditionItemEditor()
        {
            var groupsEditor = new ConditionItemEditor();
            var groupsHeader = new ConditionHeader {
                Header = "Groups", ConditionTypeId = Constants.ConditionTypes.GroupsConditionType
            };

            var objectContext = this.SessionContextProvider.GetOrCreateCurrentObjectContext();

            var refStaff = objectContext.GetObject <Staff>(RefStaff.ID);

            var staffGroups = new List <StaffGroup>();

            foreach (var group in refStaff.Groups)
            {
                CollectGroups(staffGroups, group);
            }

            var groupsModel = staffGroups
                              .Select(staffGroup => new ConditionItemModel
            {
                ConditionTypeId  = Constants.ConditionTypes.GroupsConditionType,
                Value            = staffGroup.GetObjectId().ToString("D"),
                ValueDisplayName = staffGroup.Name
            })
                              .OrderBy(staffGroup => staffGroup.ValueDisplayName)
                              .ToList();

            groupsModel.Insert(0, new ConditionItemModel
            {
                ConditionTypeId  = Constants.ConditionTypes.GroupsConditionType,
                Value            = null,
                ValueDisplayName = "Any"
            });

            groupsEditor.Initialize(groupsHeader, groupsModel);
            return(groupsEditor);
        }
Пример #3
0
        /// <summary>
        /// Получение условия выбора разметок по пользователю
        /// </summary>
        private IConditionItemEditor GetUnitsConditionItemEditor()
        {
            var usersEditor = new ConditionItemEditor();
            var usersHeader = new ConditionHeader {
                Header = "Units", ConditionTypeId = Constants.ConditionTypes.UnitConditionType
            };

            var objectContext = this.SessionContextProvider.GetOrCreateCurrentObjectContext();

            var refStaff = objectContext.GetObject <Staff>(RefStaff.ID);

            var staffUnits = new List <StaffUnit>();

            foreach (var unit in refStaff.Units)
            {
                CollectUnits(staffUnits, unit);
            }

            var unitsModel = staffUnits
                             .Select(staffUnit => new ConditionItemModel
            {
                ConditionTypeId  = Constants.ConditionTypes.UnitConditionType,
                Value            = staffUnit.GetObjectId().ToString("D"),
                ValueDisplayName = staffUnit.Name
            })
                             .OrderBy(staffUnit => staffUnit.ValueDisplayName)
                             .ToList();

            unitsModel.Insert(0, new ConditionItemModel
            {
                ConditionTypeId  = Constants.ConditionTypes.UnitConditionType,
                Value            = null,
                ValueDisplayName = "Any"
            });
            usersEditor.Initialize(usersHeader, unitsModel);
            return(usersEditor);
        }