/// <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); }
/// <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); }
/// <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); }