Exemplo n.º 1
0
        public IPresentationSettings SavePresentationSettings(
            PresentationSettingsViewModel presentationSettingsViewModel)
        {
            var res = StaticContainer.Container.Resolve <IPresentationSettings>();

            res.GroupsOfElements = presentationSettingsViewModel.PresentationElementViewModels
                                   .Where(model => model.TemplatedViewModelToShowOnCanvas is PresentationGroupViewModel).Select(model =>
            {
                var group             = StaticContainer.Container.Resolve <IMeasuringPresentationGroup>();
                group.PositioningInfo = SavePositioningInfo(model.PositioningInfoViewModel);
                SaveTemplatedItemOnCanvas(group, model.TemplatedViewModelToShowOnCanvas as PresentationGroupViewModel);

                return(group);
            }).ToList();
            res.Elements = presentationSettingsViewModel.PresentationElementViewModels
                           .Where(model => !(model.TemplatedViewModelToShowOnCanvas is PresentationGroupViewModel)).Select(model =>
            {
                var presentationInfo                       = StaticContainer.Container.Resolve <IMeasuringElementPresentationInfo>();
                presentationInfo.PositioningInfo           = SavePositioningInfo(model.PositioningInfoViewModel);
                presentationInfo.RelatedMeasuringElementId =
                    (model.TemplatedViewModelToShowOnCanvas as IUniqueId).Id;
                return(presentationInfo);
            }).ToList();
            return(res);
        }
        public PresentationSettingsViewModel CreatePresentationSettingsViewModel(IMeasuringGroup measuringGroup,
                                                                                 IMeasuringGroupEditorViewModel measuringGroupEditorViewModel)
        {
            var res = new PresentationSettingsViewModel(measuringGroupEditorViewModel,
                                                        CreatePositioningInfoViewModels(measuringGroup.PresentationSettings));

            if (measuringGroup?.PresentationSettings != null)
            {
                foreach (var groupsOfElement in measuringGroup?.PresentationSettings?.GroupsOfElements)
                {
                    var presentationGroupViewModel = new PresentationGroupViewModel()
                    {
                        Header = groupsOfElement.Name
                    };
                    res.PresentationElementViewModels.Add(new PresentationElementViewModel(
                                                              presentationGroupViewModel)
                    {
                        PositioningInfoViewModel = InitializePositioningInfo(groupsOfElement.PositioningInfo,
                                                                             new PresentationPositionChangedSubscription(presentationGroupViewModel, res))
                    });
                }
            }

            return(res);
        }
 public PresentationPositionChangedSubscription(PresentationGroupViewModel presentationGroupViewModel, PresentationSettingsViewModel presentationSettingsViewModel)
 {
     _presentationGroupViewModel    = presentationGroupViewModel;
     _presentationSettingsViewModel = presentationSettingsViewModel;
 }