Exemple #1
0
 public ProxyTemplateItemModel(ProxyTemplateItemModel p)
 {
     _def = new TemplateDefinition()
     {
         OverlayBlocks = p._def.OverlayBlocks,
         TextBlocks    = p._def.TextBlocks,
         Matches       = p._def.Matches,
         rootPath      = p._def.rootPath
     };
 }
        public void UpdateProxyTemplate()
        {
            var tempCard   = GetTempCard();
            var properties = tempCard.GetProxyMappings();
            ProxyTemplateItemModel activeTemplate = ViewModelLocator.ProxyTabViewModel.Templates.First(x => x._def.defaultTemplate == true);

            foreach (var template in ViewModelLocator.ProxyTabViewModel.Templates)
            {
                bool isValidTemplate = true;
                foreach (var match in template._def.Matches)
                {
                    if (!properties.ContainsKey(match.Name) || properties[match.Name] != match.Value)
                    {
                        isValidTemplate = false;
                        break;
                    }
                }
                if (isValidTemplate == true)
                {
                    activeTemplate = template;
                    break;
                }
            }
            BaseImage = Path.Combine(activeTemplate._def.rootPath, activeTemplate._def.src);
            BitmapImage image = new BitmapImage(new Uri(BaseImage));

            BaseWidth  = image.PixelWidth;
            BaseHeight = image.PixelHeight;

            ActiveOverlayLayers = new ObservableCollection <ProxyOverlayItemModel>(activeTemplate._def.GetOverLayBlocks(properties).Select(x => ViewModelLocator.ProxyTabViewModel.OverlayBlocks.First(y => y.Name == x.Block)));
            ActiveTextLayers    = new ObservableCollection <ProxyTextBlockItemModel>(activeTemplate._def.GetTextBlocks(properties).Select(x => new ProxyTextBlockItemModel(x)
            {
                Property = GetProperties.First(y => y.Name == x.NestedProperties.First().Name)
            }));
            RaisePropertyChanged("");
        }