/// <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); }
public virtual bool TryGetMappedValue(CacheContext cacheContext, Location sourceLocation, Location targetLocation, ConditionItemModel item, out string value) { var resolved = true; value = item.Value; return(resolved); }
/// <summary> /// Получение отображаемого имени значения условия выбора /// </summary> public string GetValueDisplayName(CacheContext cacheContext, Location location, ConditionItemModel item) { string displayName = null; Guid conditionTypeId = item.ConditionTypeId; var value = item.Value; var objectContext = this.SessionContextProvider.GetOrCreateCurrentObjectContext(); if (conditionTypeId == Constants.ConditionTypes.GroupsConditionType) { if (value != null) { var id = Guid.Parse(value); var group = objectContext.GetObject <StaffGroup>(id); displayName = group.Name; } else { displayName = "Any"; } } else if (conditionTypeId == Constants.ConditionTypes.UnitConditionType) { if (value != null) { var id = Guid.Parse(value); var unit = objectContext.GetObject <StaffUnit>(id); displayName = unit.Name; } else { displayName = "Any"; } } else if (conditionTypeId == Constants.ConditionTypes.RolesConditionType) { if (value != null) { var id = Guid.Parse(value); var role = objectContext.GetObject <StaffRole>(id); displayName = role.Name; } else { displayName = "Any"; } } return(displayName); }