private void ValidateResetCommand(bool allFieldsVisible) { var viewModel = new DetailedItemViewModel(_story); viewModel.InitializeAsync().Wait(); Assert.IsTrue(viewModel.OnlyDefaultFieldsAreShown, "Only default fields should be visible when detailed item is initialized"); foreach (var field in viewModel.FilteredEntityFields) { field.IsSelected = allFieldsVisible; viewModel.ToggleEntityFieldVisibilityCommand.Execute(null); } Assert.IsFalse(viewModel.OnlyDefaultFieldsAreShown, "Visible fields should be different than default fields"); viewModel.ResetFieldsCustomizationCommand.Execute(null); var dynamicFieldsCache = ExposedClass.From(typeof(FieldsCache)); var cache = dynamicFieldsCache._defaultFieldsCache as FieldsCache.Metadata; var persistedVisibleFields = cache.data[Utility.GetConcreteEntityType(_story)]; Assert.AreEqual(persistedVisibleFields.Count, viewModel.VisibleFields.Count(), "Inconsistent number of visible fields"); foreach (var field in viewModel.VisibleFields) { Assert.IsTrue(persistedVisibleFields.Contains(field.Name), $"Field {field.Name} should be visible"); } Assert.IsTrue(viewModel.OnlyDefaultFieldsAreShown, "Only default fields should be visible after reset command"); }
/// <summary> /// Check whether the given entity is the currently cached active entity /// </summary> internal static bool IsActiveEntity(BaseEntity entity) { if (entity == null) { return(false); } LoadMetadataIfNeeded(); return(_metadata.activeEntityId == entity.Id && _metadata.activeEntityType == Utility.GetConcreteEntityType(entity)); }
/// <summary> /// Sets the given entity as the currently active entity /// </summary> internal static void SetActiveEntity(BaseEntity entity) { if (entity == null) { return; } LoadMetadataIfNeeded(); _metadata.activeEntityType = Utility.GetConcreteEntityType(entity); _metadata.activeEntityId = entity.Id; SaveMetadata(); }
/// <summary> /// Return the associated entity type information based on the given entity /// </summary> public static EntityTypeInformation GetEntityTypeInformation(BaseEntity entity) { if (entity == null) { return(null); } var entityType = Utility.GetConcreteEntityType(entity); EntityTypeInformation info; Registry.TryGetValue(entityType, out info); return(info); }
/// <summary> /// Returns hashset of fields that shouldn't be visible /// </summary> public static HashSet <string> GetFieldsToHide(BaseEntity entity) { if (entity == null) { return(new HashSet <string>()); } HashSet <string> result; if (!FieldsToHideDictionary.TryGetValue(Utility.GetConcreteEntityType(entity), out result)) { return(new HashSet <string>()); } return(result); }
/// <summary> /// Return the list of field metadata for the given entity type /// </summary> internal static async Task <List <FieldMetadata> > GetFieldMetadata(BaseEntity entity) { if (entity == null) { return(new List <FieldMetadata>()); } OctaneServices octaneService = OctaneServices.GetInstance(); var entityType = Utility.GetConcreteEntityType(entity); var fieldsMetadata = await octaneService.GetFieldsMetadata(entityType); List <FieldMetadata> fields = fieldsMetadata.Where(fm => fm.VisibleInUI).ToList(); return(fields); }