public List <EditorValidationErrorViewModel> CheckItem(List <EditorValidationErrorViewModel> initialErrors,
                                                               IConfigurationItemViewModel configurationEditorItemViewModel,
                                                               IConfigurationEditorViewModel configurationEditorViewModel)
        {
            if (configurationEditorItemViewModel is IPropertyEditorViewModel propertyEditorViewModel &&
                !(configurationEditorItemViewModel is IComplexPropertyEditorViewModel))
            {
                if (propertyEditorViewModel.FormatterParametersViewModel == null ||
                    (propertyEditorViewModel.FormatterParametersViewModel.RelatedUshortsFormatterViewModel == null &&
                     !propertyEditorViewModel.FormatterParametersViewModel.IsFromSharedResources))
                {
                    initialErrors.Add(new EditorValidationErrorViewModel(
                                          $"{propertyEditorViewModel.Name} ({_localizerService.GetLocalizedString("Address")}:{propertyEditorViewModel.Address}): {_localizerService.GetLocalizedString(ApplicationGlobalNames.StatusMessages.EMPTY_FORMATTING_MESSAGE)}",
                                          Result <Action> .Create(
                                              () =>
                    {
                        _formatterEditorFactory.EditFormatterByUser(propertyEditorViewModel,
                                                                    configurationEditorViewModel.RootConfigurationItemViewModels.ToList());
                    }, true)));
                }

                if (propertyEditorViewModel.FormatterParametersViewModel != null &&

                    propertyEditorViewModel.FormatterParametersViewModel.IsFromSharedResources &&
                    _sharedResourcesGlobalViewModel.GetResourceByName(propertyEditorViewModel
                                                                      .FormatterParametersViewModel.Name) == null)
                {
                    initialErrors.Add(new EditorValidationErrorViewModel(
                                          $"{propertyEditorViewModel.Name} ({_localizerService.GetLocalizedString("Address")}:{propertyEditorViewModel.Address}): {_localizerService.GetLocalizedString(ApplicationGlobalNames.StatusMessages.FORMATTING_RESOURCE_NOT_FOUND_MESSAGE)}",
                                          Result <Action> .Create(
                                              () =>
                    {
                        _formatterEditorFactory.EditFormatterByUser(propertyEditorViewModel,
                                                                    configurationEditorViewModel.RootConfigurationItemViewModels.ToList());
                    }, true)));
                }
            }

            if (configurationEditorItemViewModel is IConfigurationGroupEditorViewModel configurationGroupEditorViewModel
                )
            {
                configurationGroupEditorViewModel.ChildStructItemViewModels.ForEach(model =>
                                                                                    CheckItem(initialErrors, model, configurationEditorViewModel));
            }

            if (configurationEditorItemViewModel is IComplexPropertyEditorViewModel complexPropertyEditorViewModel)
            {
                complexPropertyEditorViewModel.SubPropertyEditorViewModels.ForEach(model =>
                                                                                   CheckItem(initialErrors, model, configurationEditorViewModel));
            }

            return(initialErrors);
        }
Beispiel #2
0
        public static IDeviceConfiguration CreateConfiguration(
            IConfigurationEditorViewModel configurationEditorViewModel)
        {
            var deviceConfiguration = StaticContainer.Container.Resolve <IDeviceConfiguration>();

            deviceConfiguration.RootConfigurationItemList = configurationEditorViewModel.RootConfigurationItemViewModels
                                                            .Select(model =>
                                                                    (model as IEditorConfigurationItemViewModel).Accept(
                                                                        new SaveEditorConfigurationItemViewModelVisitor(StaticContainer.Container))).ToList();
            deviceConfiguration.FragmentSettings =
                configurationEditorViewModel.FragmentSettingsViewModel.Model as IFragmentSettings;
            deviceConfiguration.BaseValues = StaticContainer.Container.Resolve <BaseValuesFillHelper>()
                                             .CreateConfigurationBaseValues(configurationEditorViewModel.BaseValuesViewModel);
            return(deviceConfiguration);
        }