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();
        }
Example #4
0
        /// <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);
        }
Example #5
0
        /// <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);
        }
Example #6
0
        /// <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);
        }