Exemple #1
0
        public void ValidateEditorPropertySharedResourceRegexWithResourceIsNotString()
        {
            IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>();

            var configurationEditorViewModel = _typesContainer.Resolve <IFragmentEditorViewModel>(
                ApplicationGlobalNames.FragmentInjectcionStrings.CONFIGURATION +
                ApplicationGlobalNames.CommonInjectionStrings.EDITOR_VIEWMODEL) as ConfigurationEditorViewModel;

            var deviceSharedResources = new DeviceSharedResources();
            ISharedResourcesGlobalViewModel sharedResourcesGlobalViewModel =
                _typesContainer.Resolve <ISharedResourcesGlobalViewModel>();

            sharedResourcesGlobalViewModel.InitializeFromResources(deviceSharedResources);

            var rootGroup = new ConfigurationGroupEditorViewModel()
            {
                Name = "root"
            };

            configurationEditorViewModel.RootConfigurationItemViewModels.Add(rootGroup);

            var property = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 1, _typesContainer);

            property.FormatterParametersViewModel.RelatedUshortsFormatterViewModel = new BoolFormatterViewModel();
            property.Name = "Pupa";

            configurationEditorViewModel.SelectedRow = property;

            sharedResourcesGlobalViewModel.AddAsSharedResourceWithContainer(property, null, false);

            property.Parent = rootGroup;


            var property2 = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 2, _typesContainer);

            property2.DependencyViewModels.Add(
                new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>())
            {
                SelectedConditionViewModel = new RegexMatchConditionViewModel(
                    _typesContainer.Resolve <ISharedResourcesGlobalViewModel>())
                {
                    ReferencedResourcePropertyName = "Pupa"
                }
            });



            initialDevice.FragmentEditorViewModels
            .Add(configurationEditorViewModel);

            var res = _typesContainer.Resolve <IDeviceEditorViewModelValidator>()
                      .ValidateDeviceEditor(new List <IFragmentEditorViewModel>()
            {
                configurationEditorViewModel
            });

            Assert.True(res.Count == 1);
        }
Exemple #2
0
        public AddFragmentViewModel(IResultingDeviceViewModel resultingDeviceViewModel)
        {
            _resultingDeviceViewModel = resultingDeviceViewModel;
            AvailableFragments        = new ObservableCollection <IFragmentEditorViewModel>();
            IEnumerable <IFragmentEditorViewModel> fragments = _container.ResolveAll <IFragmentEditorViewModel>();

            foreach (IFragmentEditorViewModel fragment in fragments)
            {
                AvailableFragments.Add(fragment);
            }
            AddSelectedFragmentCommand = new RelayCommand <object>(OnAddSelectedFragment, CanAddSelectedFragment);
        }
Exemple #3
0
        public void EditorImportPropertiesTypeASave()
        {
            var globalCommandsMock = ApplicationGlobalCommandsMock
                                     .Create()
                                     .WithAskUserGlobalResult(true).WithSelectFileToOpenResult("FileAssets/МР5ПО60_ВЛС.xlsx");

            StaticContainer.Container.RegisterInstance <IApplicationGlobalCommands>(globalCommandsMock);
            var serializerService = Program.GetApp().Container.Resolve <ISerializerService>();

            IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>();

            initialDevice.LoadDevice("FileAssets/testFile.json");

            var configurationEditorViewModel =
                initialDevice.FragmentEditorViewModels.First() as ConfigurationEditorViewModel;



            var targetGroup = configurationEditorViewModel.RootConfigurationItemViewModels.First();

            targetGroup.ChildStructItemViewModels.Clear();

            var helper = Program.GetApp().Container.Resolve <ImportPropertiesFromExcelTypeAHelper>();

            helper.ImportPropertiesToGroup(targetGroup as IConfigurationGroupEditorViewModel);



            Program.CleanProject();
            var device = initialDevice.GetDevice();

            Program.GetApp().Container.Resolve <IDevicesContainerService>()
            .AddConnectableItem(device);
            var shell           = Program.GetApp().Container.Resolve <ShellViewModel>();
            var deviceViewModel = shell.ProjectBrowserViewModel.DeviceViewModels[0];

            var configurationFragmentViewModel = shell.ProjectBrowserViewModel.DeviceViewModels[0].FragmentViewModels
                                                 .First(model => model.NameForUiKey == "Configuration") as
                                                 RuntimeConfigurationViewModel;

            var group = configurationEditorViewModel.RootConfigurationItemViewModels.First();

            Assert.AreEqual(group.ChildStructItemViewModels.Count, 111);

            Assert.AreEqual(group.ChildStructItemViewModels[49].Header, "U2>> ИО");
            Assert.True(
                (((device.DeviceFragments.First() as IDeviceConfiguration).RootConfigurationItemList[0] as
                  IItemsGroup).ConfigurationItemList[100] as IProperty).IsFromBits);
            Assert.True(
                (((device.DeviceFragments.First() as IDeviceConfiguration).RootConfigurationItemList[0] as
                  IItemsGroup).ConfigurationItemList[100] as IProperty).UshortsFormatter is IBoolFormatter);
        }
Exemple #4
0
        public void ValidateEditorConfigurationWithErrorComplexProperty()
        {
            IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>();


            var configurationEditorViewModel = _typesContainer.Resolve <IFragmentEditorViewModel>(
                ApplicationGlobalNames.FragmentInjectcionStrings.CONFIGURATION +
                ApplicationGlobalNames.CommonInjectionStrings.EDITOR_VIEWMODEL) as ConfigurationEditorViewModel;

            var rootGroup = new ConfigurationGroupEditorViewModel()
            {
                Name = "root"
            };

            var property = _typesContainer.Resolve <IComplexPropertyEditorViewModel>();

            rootGroup.ChildStructItemViewModels
            .Add(property);
            configurationEditorViewModel.RootConfigurationItemViewModels.Add(rootGroup);


            initialDevice.FragmentEditorViewModels
            .Add(configurationEditorViewModel);

            var res = _typesContainer.Resolve <IDeviceEditorViewModelValidator>()
                      .ValidateDeviceEditor(new List <IFragmentEditorViewModel>()
            {
                configurationEditorViewModel
            });

            Assert.True(res.Count == 0);

            var newDevice = initialDevice.GetDevice();


            IResultingDeviceViewModel newDeviceViewModel = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>();

            newDeviceViewModel.LoadDevice(newDevice);

            var resNew = _typesContainer.Resolve <IDeviceEditorViewModelValidator>()
                         .ValidateDeviceEditor(new List <IFragmentEditorViewModel>()
            {
                newDeviceViewModel.FragmentEditorViewModels.First()
            });

            Assert.True(resNew.Count == 0);
        }
 public DeviceEditorViewModel(ILocalizerService localizerService, IDialogCoordinator dialogCoordinator,
                              IResultingDeviceViewModel resultingDeviceViewModel, IDevicesContainerService devicesContainerService,
                              IApplicationGlobalCommands applicationGlobalCommands,
                              IDeviceEditorViewModelValidator deviceEditorViewModelValidator)
 {
     _localizerService            = localizerService;
     _dialogCoordinator           = dialogCoordinator;
     _resultingDeviceViewModel    = resultingDeviceViewModel;
     _devicesContainerService     = devicesContainerService;
     _applicationGlobalCommands   = applicationGlobalCommands;
     LoadExistingDevice           = new RelayCommand(OnLoadExistingDevice);
     CreateDeviceCommand          = new RelayCommand(OnCreateDeviceExecute);
     SaveInFileCommand            = new RelayCommand(OnSaveInFileExecute);
     OpenSharedResourcesCommand   = new RelayCommand(OnOpenSharedResourcesExecute);
     DeleteFragmentCommand        = new RelayCommand <object>(OnDeleteFragmentExecute);
     OpenAddFragmentWindowCommand = new RelayCommand(OnOpenAddFragmentWindowCommand);
     _currentFolder =
         Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), DEFAULT_FOLDER);
     DeviceEditorValidationViewModel = new DeviceEditorValidationViewModel(() =>
                                                                           deviceEditorViewModelValidator.ValidateDeviceEditor(ResultingDeviceViewModel.FragmentEditorViewModels
                                                                                                                               .ToList()));
     _applicationGlobalCommands.SetGlobalDialogContext(this);
 }
Exemple #6
0
        public void EditorBaseValuesSave()
        {
            var serializerService = Program.GetApp().Container.Resolve <ISerializerService>();

            IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>();

            initialDevice.LoadDevice("FileAssets/testFile.json");

            var configurationEditorViewModel = initialDevice.FragmentEditorViewModels.First() as ConfigurationEditorViewModel;

            var memoryForBaseValues =
                serializerService.DeserializeFromFile <Dictionary <ushort, ushort> >(
                    "FileAssets/Конфигурация testFile.cnf");

            var baseValuesMemory = Result <Dictionary <ushort, ushort> >
                                   .Create(memoryForBaseValues, true);

            configurationEditorViewModel.BaseValuesViewModel = new BaseValuesViewModel();


            configurationEditorViewModel.BaseValuesViewModel.BaseValuesViewModels.Add(new BaseValueViewModel()
            {
                Name             = "baseVal1",
                BaseValuesMemory = baseValuesMemory
            });
            configurationEditorViewModel.BaseValuesViewModel.BaseValuesViewModels.Add(new BaseValueViewModel()
            {
                Name             = "baseVal2",
                BaseValuesMemory = baseValuesMemory
            });
            var result = ConfigurationFragmentFactory.CreateConfiguration(configurationEditorViewModel);


            Assert.AreEqual(result.BaseValues.BaseValues.Count, 2);
            Assert.True(result.BaseValues.BaseValues[0].Name == "baseVal1");
            Assert.True(result.BaseValues.BaseValues[1].Name == "baseVal2");

            Program.CleanProject();
            var globalCommandsMock = ApplicationGlobalCommandsMock
                                     .Create()
                                     .WithAskUserGlobalResult(true);

            StaticContainer.Container.RegisterInstance <IApplicationGlobalCommands>(globalCommandsMock);
            var device = initialDevice.GetDevice();

            Program.GetApp().Container.Resolve <IDevicesContainerService>()
            .AddConnectableItem(device);
            var shell           = Program.GetApp().Container.Resolve <ShellViewModel>();
            var deviceViewModel = shell.ProjectBrowserViewModel.DeviceViewModels[0];

            var configurationFragmentViewModel = shell.ProjectBrowserViewModel.DeviceViewModels[0].FragmentViewModels
                                                 .First(model => model.NameForUiKey == "Configuration") as
                                                 RuntimeConfigurationViewModel;
            var command = configurationFragmentViewModel.FragmentOptionsViewModel.GetCommand("BaseValues", "baseVal1");

            var editableChosenFromListValueViewModel =
                ((configurationFragmentViewModel.AllRows[4].ChildStructItemViewModels[2] as
                  ILocalAndDeviceValueContainingViewModel).LocalValue as EditableChosenFromListValueViewModel);

            Assert.AreEqual(
                editableChosenFromListValueViewModel.SelectedItem,
                "Нет");
            command.OptionCommand.Execute(null);
            Assert.AreEqual(
                editableChosenFromListValueViewModel.SelectedItem,
                "Д2   Инв");

            editableChosenFromListValueViewModel.SelectedItem =
                editableChosenFromListValueViewModel.AvailableItemsList[1];
            Assert.AreEqual(
                editableChosenFromListValueViewModel.SelectedItem,
                "Д1   Инв");
            command.OptionCommand.Execute(null);
            Assert.AreEqual(
                editableChosenFromListValueViewModel.SelectedItem,
                "Д2   Инв");
        }
Exemple #7
0
        public void ValidateEditorRemovePropertySharedResource()
        {
            IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>();

            var configurationEditorViewModel = _typesContainer.Resolve <IFragmentEditorViewModel>(
                ApplicationGlobalNames.FragmentInjectcionStrings.CONFIGURATION +
                ApplicationGlobalNames.CommonInjectionStrings.EDITOR_VIEWMODEL) as ConfigurationEditorViewModel;

            var deviceSharedResources = new DeviceSharedResources();
            ISharedResourcesGlobalViewModel sharedResourcesGlobalViewModel =
                _typesContainer.Resolve <ISharedResourcesGlobalViewModel>();

            sharedResourcesGlobalViewModel.InitializeFromResources(deviceSharedResources);

            var rootGroup = new ConfigurationGroupEditorViewModel()
            {
                Name = "root"
            };

            configurationEditorViewModel.RootConfigurationItemViewModels.Add(rootGroup);

            var property = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 1, _typesContainer);

            property.Name = "Pupa";

            configurationEditorViewModel.SelectedRow = property;

            sharedResourcesGlobalViewModel.AddAsSharedResourceWithContainer(property, null, false);

            property.Parent = rootGroup;

            property.DeleteElement();



            var property2 = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 2, _typesContainer);

            property2.DependencyViewModels.Add(
                new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>())
            {
                SelectedConditionViewModel = new CompareResourceConditionViewModel(
                    _typesContainer.Resolve <ISharedResourcesGlobalViewModel>(),
                    new List <string>(Enum.GetNames(typeof(ConditionsEnum))))
                {
                    ReferencedResourcePropertyName = "Pupa"
                }
            });



            initialDevice.FragmentEditorViewModels
            .Add(configurationEditorViewModel);

            var res = _typesContainer.Resolve <IDeviceEditorViewModelValidator>()
                      .ValidateDeviceEditor(new List <IFragmentEditorViewModel>()
            {
                configurationEditorViewModel
            });

            Assert.True(res.Count == 1);
            Assert.True(res[0].ErrorMessage.Contains(ApplicationGlobalNames.StatusMessages.RESOURCE_FOR_DEPENDENCY_NOT_FOUND_MESSAGE));
        }
Exemple #8
0
        public void ValidateEditorConfigurationWithMissingResourceDependencyError()
        {
            IResultingDeviceViewModel initialDevice = Program.GetApp().Container.Resolve <IResultingDeviceViewModel>();


            var configurationEditorViewModel = _typesContainer.Resolve <IFragmentEditorViewModel>(
                ApplicationGlobalNames.FragmentInjectcionStrings.CONFIGURATION +
                ApplicationGlobalNames.CommonInjectionStrings.EDITOR_VIEWMODEL) as ConfigurationEditorViewModel;

            var rootGroup = new ConfigurationGroupEditorViewModel()
            {
                Name = "root"
            };

            var property = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 1, _typesContainer);

            property.DependencyViewModels.Add(
                new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>())
            {
                SelectedConditionViewModel = new CompareResourceConditionViewModel(
                    _typesContainer.Resolve <ISharedResourcesGlobalViewModel>(),
                    new List <string>(Enum.GetNames(typeof(ConditionsEnum))))
                {
                    ReferencedResourcePropertyName = ""
                }
            });

            var property2 = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 2, _typesContainer);

            property2.DependencyViewModels.Add(
                new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>())
            {
                SelectedConditionViewModel = new CompareResourceConditionViewModel(
                    _typesContainer.Resolve <ISharedResourcesGlobalViewModel>(),
                    new List <string>(Enum.GetNames(typeof(ConditionsEnum))))
                {
                    ReferencedResourcePropertyName = "Pupa"
                }
            });


            var property3 = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 2, _typesContainer);

            property3.DependencyViewModels.Add(
                new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>())
            {
                SelectedConditionViewModel = new RegexMatchConditionViewModel(
                    _typesContainer.Resolve <ISharedResourcesGlobalViewModel>())
                {
                    ReferencedResourcePropertyName = "Pupa"
                }
            });
            var property4 = EditorHelpers.AddPropertyViewModel(rootGroup.ChildStructItemViewModels, 2, _typesContainer);


            property4.DependencyViewModels.Add(
                new ConditionResultDependencyViewModel(new List <IResultViewModel>(), new List <IConditionViewModel>())
            {
                SelectedConditionViewModel = new RegexMatchConditionViewModel(
                    _typesContainer.Resolve <ISharedResourcesGlobalViewModel>())
                {
                    ReferencedResourcePropertyName = ""
                }
            });


            configurationEditorViewModel.RootConfigurationItemViewModels.Add(rootGroup);


            initialDevice.FragmentEditorViewModels
            .Add(configurationEditorViewModel);

            var res = _typesContainer.Resolve <IDeviceEditorViewModelValidator>()
                      .ValidateDeviceEditor(new List <IFragmentEditorViewModel>()
            {
                configurationEditorViewModel
            });

            Assert.True(res.Count == 4);
        }