Esempio n. 1
0
        public IEditorConfigurationItemViewModel VisitItemsGroup(IItemsGroup itemsGroup)
        {
            var res = _container.Resolve <IConfigurationGroupEditorViewModel>();

            if (itemsGroup != null)
            {
                res.ChildStructItemViewModels.Clear();
                foreach (IConfigurationItem configurationItem in itemsGroup.ConfigurationItemList)
                {
                    res.IsCheckable = true;
                    res.ChildStructItemViewModels.Add(configurationItem.Accept(this.WithParent(res)));
                }

                if (itemsGroup.GroupInfo is IGroupWithReiterationInfo groupWithReiterationInfo)
                {
                    res.SetIsGroupWithReiteration(true);
                    res.ReiterationStep = groupWithReiterationInfo.ReiterationStep;
                    groupWithReiterationInfo.SubGroups.ForEach(info =>
                                                               res.SubGroupNames.Add(new StringWrapper(info.Name)));
                }

                if (itemsGroup.GroupFilter != null)
                {
                    var filterFillHelper = _container.Resolve <FilterFillHelper>();
                    res.FilterViewModels.AddCollection(itemsGroup.GroupFilter.Filters
                                                       .Select(filter => filterFillHelper.CreateFilterViewModel(filter)));
                }

                res.IsMain             = itemsGroup.IsMain ?? false;
                res.IsTableViewAllowed = itemsGroup.IsTableViewAllowed;
            }
            InitializeBaseProperties(res, itemsGroup);
            return(res);
        }
Esempio n. 2
0
        public Result VisitItemsGroup(IItemsGroup itemsGroup)
        {
            foreach (var itemGroup in itemsGroup.ConfigurationItemList)
            {
                itemGroup.Accept(this);
            }

            return(Result.Create(true));
        }
Esempio n. 3
0
 public async Task VisitItemsGroup(IItemsGroup itemsGroup)
 {
     if (itemsGroup.GroupInfo is IGroupWithReiterationInfo groupWithReiterationInfo &&
         groupWithReiterationInfo.IsReiterationEnabled)
     {
         int offset = _offset;
         foreach (var subGroup in groupWithReiterationInfo.SubGroups)
         {
             foreach (var configurationItemInGroup in itemsGroup.ConfigurationItemList)
             {
                 await configurationItemInGroup.Accept(new MemoryReaderVisitor(_configuration, _deviceContext, offset, _triggerSubscriptions));
             }
             offset += groupWithReiterationInfo.ReiterationStep;
         }
     }
Esempio n. 4
0
        public async Task VisitItemsGroup(IItemsGroup itemsGroup)
        {
            if (itemsGroup.GroupInfo is IGroupWithReiterationInfo groupWithReiterationInfo &&
                groupWithReiterationInfo.IsReiterationEnabled)
            {
                int offset = _offset;

                foreach (var subGroup in groupWithReiterationInfo.SubGroups)
                {
                    foreach (var configurationItemInGroup in itemsGroup.ConfigurationItemList)
                    {
                        await configurationItemInGroup.Accept(new MemoryWriterVisitor(_deviceContext, _writtenAddresses,
                                                                                      _configuration, offset));
                    }
                    offset += groupWithReiterationInfo.ReiterationStep;
                }
            }
        public IConfigurationItem ResolveGroupConfigurationItem()
        {
            IItemsGroup group = _container.Resolve(typeof(IItemsGroup)) as IItemsGroup;

            return(group);
        }
        public async Task <FactoryResult <IRuntimeConfigurationItemViewModel> > VisitItemsGroup(IItemsGroup itemsGroup)
        {
            var res = _container.Resolve <IRuntimeItemGroupViewModel>() as RuntimeItemGroupViewModel;

            res.ChildStructItemViewModels.Clear();
            if (itemsGroup.GroupInfo is IGroupWithReiterationInfo groupWithReiterationInfo &&
                groupWithReiterationInfo.IsReiterationEnabled)
            {
                int offset = AddressOffset;

                foreach (var subGroupInfo in groupWithReiterationInfo.SubGroups)
                {
                    var subGroup = _container.Resolve <IRuntimeItemGroupViewModel>();

                    subGroup.Description = itemsGroup.Description;
                    subGroup.Header      = subGroupInfo.Name;
                    if (Parent != null)
                    {
                        subGroup.Parent = Parent;
                        subGroup.Level  = Parent.Level + 1;
                    }

                    foreach (IConfigurationItem configurationItem in itemsGroup.ConfigurationItemList)
                    {
                        await(await configurationItem.Accept(this.WithParent(subGroup)
                                                             .WithOffset(offset))).OnAddingNeeded(subGroup.ChildStructItemViewModels.Add);
                    }

                    res.ChildStructItemViewModels.Add(subGroup);
                    subGroup.Offset = offset;

                    offset += groupWithReiterationInfo.ReiterationStep;
                }
            }