public override void Bind(IEditorService service)
        {
            _edsvc = service;
            _edsvc.RegisterCustomNotifier(this);

            try
            {
                _fsvc = (IFusionService)_edsvc.GetService((int)ServiceType.Fusion);
                if (service.CurrentConnection.ProviderName.ToUpper() == "MAESTRO.HTTP")
                {
                    _baseUrl = service.GetCustomProperty("BaseUrl").ToString(); //NOXLATE

                    if (!_baseUrl.EndsWith("/"))                                //NOXLATE
                    {
                        _baseUrl += "/";                                        //NOXLATE
                    }
                }
            }
            catch
            {
                throw new NotSupportedException(Strings.IncompatibleConnection);
            }

            _edsvc.Saved += OnSaved;
            _flexLayout   = (IApplicationDefinition)service.GetEditedResource();

            TextBoxBinder.BindText(txtTemplateUrl, _flexLayout, "TemplateUrl"); //NOXLATE
            TextBoxBinder.BindText(txtTitle, _flexLayout, "Title");             //NOXLATE
            var templates = _fsvc.GetApplicationTemplates();

            InitializeTemplateList(templates);

            GeneratePreviewUrl();
        }
        internal string[] GetDockableWidgetNames(IApplicationDefinition appDef)
        {
            //Key the dockable types
            var dict = new Dictionary <string, IWidgetInfo>();

            foreach (var winfo in GetAllWidgets())
            {
                if (winfo.StandardUi)
                {
                    dict[winfo.Type] = winfo;
                }
            }

            var result = new List <string>();

            foreach (var wset in appDef.WidgetSets)
            {
                foreach (var wgt in wset.Widgets)
                {
                    if (dict.ContainsKey(wgt.Type))
                    {
                        result.Add(wgt.Name);
                    }
                }
            }
            return(result.ToArray());
        }
        public override void Bind(IEditorService service)
        {
            service.RegisterCustomNotifier(this);
            try
            {
                _fsvc = (IFusionService)service.GetService((int)ServiceType.Fusion);
                if (service.CurrentConnection.ProviderName.ToUpper() == "MAESTRO.HTTP")
                {
                    _baseUrl = service.GetCustomProperty("BaseUrl").ToString(); //NOXLATE

                    if (!_baseUrl.EndsWith("/"))                                //NOXLATE
                    {
                        _baseUrl += "/";                                        //NOXLATE
                    }
                }
            }
            catch
            {
                throw new NotSupportedException(Strings.IncompatibleConnection);
            }
            _edsvc = service;
            _edsvc.RegisterCustomNotifier(this);
            _flexLayout = (IApplicationDefinition)service.GetEditedResource();

            foreach (var grp in _flexLayout.MapSet.MapGroups)
            {
                AddMap(grp);
            }
        }
        /// <summary>
        /// Gets whether a widget with the specified name already exists
        /// </summary>
        /// <param name="appDef"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static bool WidgetNameExists(this IApplicationDefinition appDef, string name)
        {
            Check.NotNull(appDef, "appDef");
            Check.NotEmpty(name, "name");

            return(appDef.FindWidget(name) != null);
        }
        public override void Bind(IEditorService service)
        {
            try
            {
                _edsvc   = service;
                _fsvc    = (IFusionService)_edsvc.GetService((int)ServiceType.Fusion);
                _context = new FlexibleLayoutEditorContext(_fsvc);
                if (service.CurrentConnection.ProviderName.ToUpper() == "MAESTRO.HTTP")
                {
                    _baseUrl = service.GetCustomProperty("BaseUrl").ToString(); //NOXLATE

                    if (!_baseUrl.EndsWith("/"))                                //NOXLATE
                    {
                        _baseUrl += "/";                                        //NOXLATE
                    }
                }
            }
            catch
            {
                throw new NotSupportedException(Strings.IncompatibleConnection);
            }
            service.RegisterCustomNotifier(this);
            _flexLayout = (IApplicationDefinition)service.GetEditedResource();
            InitWidgetSet();
        }
Пример #6
0
        /// <summary>
        /// Sets the initial state of this editor and sets up any databinding
        /// within such that user interface changes will propagate back to the
        /// model.
        /// </summary>
        /// <param name="service"></param>
        public override void Bind(IEditorService service)
        {
            _flexLayout = (IApplicationDefinition)service.GetEditedResource();

            settingsCtrl.Bind(service);
            mapsCtrl.Bind(service);
            widgetsCtrl.Bind(service);
        }
Пример #7
0
 public Root(IApplicationDefinition app, IServiceProvider provider)
 {
     foreach (var domain in app.Contexts.Where(i => i.Queries.Any()))
     {
         var graphDomain = new GraphDomain(domain, provider);
         AddField(graphDomain.GetFieldType());
     }
 }
Пример #8
0
        /// <summary>
        /// Sets the initial state of this editor and sets up any databinding
        /// within such that user interface changes will propagate back to the
        /// model.
        /// </summary>
        /// <param name="service"></param>
        public override void Bind(IEditorService service)
        {
            _flexLayout = (IApplicationDefinition)service.GetEditedResource();

            settingsCtrl.Bind(service);
            mapsCtrl.Bind(service);
            widgetsCtrl.Bind(service);
        }
Пример #9
0
 public EventFlyBuilder(IServiceCollection services)
 {
     Services = services;
     ApplicationDefinition = new ApplicationDefinition();
     Services
     .AddSingleton(ApplicationDefinition)
     .AddSingleton <IDefinitionToManagerRegistry, DefinitionToManagerRegistry>();
 }
        public NewWidgetDialog(IApplicationDefinition appDef, FlexibleLayoutEditorContext context)
        {
            InitializeComponent();
            _appDef  = appDef;
            _context = context;

            cmbWidgets.DisplayMember = "Type"; //NOXLATE
            cmbWidgets.DataSource    = _context.GetAllWidgets();
        }
Пример #11
0
        public NewWidgetDialog(IApplicationDefinition appDef, FlexibleLayoutEditorContext context)
        {
            InitializeComponent();
            _appDef = appDef;
            _context = context;

            cmbWidgets.DisplayMember = "Type"; //NOXLATE
            cmbWidgets.DataSource = _context.GetAllWidgets();
        }
 public CommandsApiDescriptionGroupCollectionProvider(
     IApplicationDefinition applicationDefinition,
     EventFlyWebApiOptions options,
     IActionDescriptorCollectionProvider actionDescriptorCollectionProvider,
     IEnumerable <IApiDescriptionProvider> apiDescriptionProviders)
 {
     _options  = options;
     _metadata = applicationDefinition;
     _internal = new ApiDescriptionGroupCollectionProvider(actionDescriptorCollectionProvider, apiDescriptionProviders);
 }
Пример #13
0
        public void ApplicationDefinitionDeserializationWithFullContentModel()
        {
            IResource res = ObjectFactory.DeserializeXml(Properties.Resources.AppDef_1_0_0);

            Assert.NotNull(res);
            Assert.AreEqual(res.ResourceType, "ApplicationDefinition");
            Assert.AreEqual(res.ResourceVersion, new Version(1, 0, 0));
            IApplicationDefinition appDef = res as IApplicationDefinition;

            Assert.NotNull(appDef);
        }
Пример #14
0
        public void ApplicationDefinitionDeserializationWithFullContentModel()
        {
            IResource res = ObjectFactory.DeserializeXml(Utils.ReadAllText($"Resources{System.IO.Path.DirectorySeparatorChar}AppDef-1.0.txt"));

            Assert.NotNull(res);
            Assert.Equal("ApplicationDefinition", res.ResourceType);
            Assert.Equal(res.ResourceVersion, new Version(1, 0, 0));
            IApplicationDefinition appDef = res as IApplicationDefinition;

            Assert.NotNull(appDef);
        }
Пример #15
0
        public static bool ValidData(string value, int row, ColumnMapping mapping, IVisualCollection collection, Dictionary <string, IEntityObject> navProperties, List <string> errorList)
        {
            bool        bValid           = false;
            IEntityType targetEntityType = mapping.TableField.EntityType;

            //Need to grab the entity set and check number of results we get
            IApplicationDefinition     appModel = collection.Screen.Details.Application.Details.GetModel();
            IEntityContainerDefinition entityContainerDefinition = (from ecd in appModel.GlobalItems.OfType <IEntityContainerDefinition>()
                                                                    where ecd.EntitySets.Any(es => object.ReferenceEquals(es.EntityType, targetEntityType))
                                                                    select ecd).FirstOrDefault();

            if (entityContainerDefinition == null)
            {
                throw new Exception("Could not find an entity container representing the entity type: " + targetEntityType.Name);
            }

            IEntitySetDefinition entitySetDefinition = (from es in entityContainerDefinition.EntitySets
                                                        where object.ReferenceEquals(es.EntityType, targetEntityType)
                                                        select es).First();

            var dataService = (IDataService)collection.Screen.Details.DataWorkspace.Details.Properties[entityContainerDefinition.Name].Value;
            var entitySet   = (IEntitySet)dataService.Details.Properties[entitySetDefinition.Name].Value;
            var dsQuery     = entitySet.GetQuery();

            //Search for the matching entity for the relationship IEnumerable<IEntityObject>
            var results = SearchEntityMethodInfo().MakeGenericMethod(dsQuery.ElementType).Invoke(null,
                                                                                                 new object[]
            {
                dsQuery,
                value,
                targetEntityType
            }) as IEnumerable <IEntityObject>;

            int searchCount = results.Count();

            if (searchCount == 0)
            {
                bValid = false;
                errorList.Add(String.Format("Column:{0} Row:{1} Cannot find a matching '{2}' for '{3}'", mapping.OfficeColumn, row, mapping.TableField.DisplayName, value));
            }
            else if (searchCount > 1)
            {
                bValid = true;
                errorList.Add(String.Format("Column:{0} Row:{1} Multiple matching '{2}' for '{3}'.  Will select first match.", mapping.OfficeColumn, row, mapping.TableField.DisplayName, value));
                navProperties[String.Format("{0}_{1}", mapping.TableField.Name, value)] = results.FirstOrDefault();
            }
            else
            {
                bValid = true;
                navProperties[String.Format("{0}_{1}", mapping.TableField.Name, value)] = results.FirstOrDefault();
            }
            return(bValid);
        }
Пример #16
0
        public WidgetReferenceCtrl(IWidgetItem item, IEditorService edsvc)
            : this()
        {
            _widgetRef = item;
            _flexLayout = (IApplicationDefinition)edsvc.GetEditedResource();
            _fsvc = (IFusionService)edsvc.GetService((int)ServiceType.Fusion);
            _context = new FlexibleLayoutEditorContext(_fsvc);
            cmbWidgetRefs.DataSource = _context.GetDockableWidgetNames(_flexLayout);

            cmbWidgetRefs.SelectedItem = item.Widget;
            _init = false;
        }
        public WidgetReferenceCtrl(IWidgetItem item, IEditorService edsvc)
            : this()
        {
            _widgetRef  = item;
            _flexLayout = (IApplicationDefinition)edsvc.GetEditedResource();
            _fsvc       = (IFusionService)edsvc.GetService((int)ServiceType.Fusion);
            _context    = new FlexibleLayoutEditorContext(_fsvc);
            cmbWidgetRefs.DataSource = _context.GetDockableWidgetNames(_flexLayout);

            cmbWidgetRefs.SelectedItem = item.Widget;
            _init = false;
        }
Пример #18
0
        public RabbitMqEventProvider(IRabbitMqEventProviderConfiguration configuration, IApplicationDefinition applicationDefinition, IDomainEventFactory domainEventFactory, IDomainEventBus domainEventBus)
        {
            _configuration          = configuration;
            _rabbitMqMessageFactory = new RabbitMqMessageFactory();

            _applicationDefinition = applicationDefinition;
            _domainEventFactory    = domainEventFactory;
            _domainEventBus        = domainEventBus;

            _connectionFactory = new ConnectionFactory {
                Uri = _configuration.Connection
            };
        }
Пример #19
0
        public MapCtrl(IApplicationDefinition appDef, IMapGroup group, IEditorService edService, IMapWidget widget)
            : this()
        {
            _appDef = appDef;
            _widget = widget;
            _group  = group;
            _edSvc  = edService;
            _edSvc.RegisterCustomNotifier(this);
            _models            = new BindingList <MapModel>();
            lstMaps.DataSource = _models;
            UpdateMapList();
            txtMapId.Text = group.id;

            LoadMapOptions();
        }
        /// <summary>
        /// Gets the first widget set of this application definition.
        /// </summary>
        /// <param name="appDef"></param>
        /// <returns></returns>
        public static IWidgetSet GetFirstWidgetSet(this IApplicationDefinition appDef)
        {
            Check.NotNull(appDef, "appDef"); //NOXLATE
            IWidgetSet set = null;

            foreach (var wgt in appDef.WidgetSets)
            {
                if (set == null)
                {
                    set = wgt;
                    break;
                }
            }
            return(set);
        }
 private void ValidateWidgetReferencesForMenu(IApplicationDefinition fusionApp, IMenu menu, List <ValidationIssue> issues, ResourceValidationContext context, IResource resource)
 {
     foreach (var item in menu.Items)
     {
         var subMenu   = item as IMenu;
         var widgetRef = item as IWidgetItem;
         if (subMenu != null)
         {
             ValidateWidgetReferencesForMenu(fusionApp, subMenu, issues, context, resource);
         }
         else if (widgetRef != null)
         {
             var    id         = widgetRef.Widget;
             var    wgt        = fusionApp.FindWidget(id);
             var    uiWgt      = wgt as IUIWidget;
             string parentName = "<unknown>"; //NOXLATE
             var    cnt        = menu as IWidgetContainer;
             var    fly        = menu as IFlyoutItem;
             if (cnt != null)
             {
                 parentName = cnt.Name;
             }
             else if (fly != null)
             {
                 parentName = fly.Label;
             }
             if (wgt == null)
             {
                 issues.Add(new ValidationIssue(resource, ValidationStatus.Error, ValidationStatusCode.Error_Fusion_InvalidWidgetReference, string.Format(Strings.ADF_InvalidWidgetReferenceInContainer, id, parentName)));
             }
             else
             {
                 if (uiWgt == null)
                 {
                     issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_NonStandardUiWidgetAttachedToContainer, string.Format(Strings.ADF_NonUiWidgetAttachedToContainer, id, parentName)));
                 }
                 else
                 {
                     if (string.IsNullOrEmpty(uiWgt.Label) && string.IsNullOrEmpty(uiWgt.ImageUrl))
                     {
                         issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_NoLabelOnWidget, string.Format(Strings.ADF_ReferencedWidgetInMenuHasNoLabel, id, parentName)));
                     }
                 }
             }
         }
     }
 }
        /// <summary>
        /// Gets the widget of the specified name
        /// </summary>
        /// <param name="appDef"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static IWidget FindWidget(this IApplicationDefinition appDef, string name)
        {
            Check.NotNull(appDef, "appDef");
            Check.NotEmpty(name, "name");

            foreach (var set in appDef.WidgetSets)
            {
                foreach (var wgt in set.Widgets)
                {
                    if (wgt.Name == name)
                    {
                        return(wgt);
                    }
                }
            }
            return(null);
        }
Пример #23
0
        public WidgetManagementDialog(IApplicationDefinition appDef, IEditorService edsvc, FlexibleLayoutEditorContext context)
        {
            InitializeComponent();
            edsvc.RegisterCustomNotifier(this);
            grdWidgets.AutoGenerateColumns = false;
            _items = new BindingList<WidgetItem>();
            _appDef = appDef;
            _context = context;
            _edsvc = edsvc;
            grdWidgets.DataSource = _items;
            txtMapWidgetXml.SetHighlighting("XML"); //NOXLATE
            var wset = appDef.GetFirstWidgetSet();
            SetupMapWidget(wset.MapWidget);
            foreach (var wgt in wset.Widgets)
            {
                AddWidgetItem(wgt);
            }

            this.Disposed += new EventHandler(OnDisposed);
        }
        public WidgetManagementDialog(IApplicationDefinition appDef, IEditorService edsvc, FlexibleLayoutEditorContext context)
        {
            InitializeComponent();
            edsvc.RegisterCustomNotifier(this);
            grdWidgets.AutoGenerateColumns = false;
            _items   = new BindingList <WidgetItem>();
            _appDef  = appDef;
            _context = context;
            _edsvc   = edsvc;
            grdWidgets.DataSource = _items;
            txtMapWidgetXml.SetHighlighting("XML"); //NOXLATE
            var wset = appDef.GetFirstWidgetSet();

            SetupMapWidget(wset.MapWidget);
            foreach (var wgt in wset.Widgets)
            {
                AddWidgetItem(wgt);
            }

            this.Disposed += new EventHandler(OnDisposed);
        }
Пример #25
0
        public DefinitionToManagerRegistry(ActorSystem actorSystem, IApplicationDefinition applicationDefinition)
        {
            _system = actorSystem;

            foreach (var context in applicationDefinition.Contexts)
            {
                DefinitionToAggregateManager     = DefinitionToAggregateManager.Union(RegisterAggregateManagers(context.Aggregates.Select(a => a.ManagerDefinition).ToList(), context.Name)).ToDictionary(k => k.Key, v => v.Value);
                DefinitionToQueryManager         = DefinitionToQueryManager.Union(RegisterQueryManagers(context.Queries.Select(a => a.ManagerDefinition).ToList(), context.Name)).ToDictionary(k => k.Key, v => v.Value);
                DefinitionToReadModelManager     = DefinitionToReadModelManager.Union(RegisterReadModelManagers(context.ReadModels.Select(a => a.ManagerDefinition).ToList(), context.Name)).ToDictionary(k => k.Key, v => v.Value);
                DefinitionToSagaManager          = DefinitionToSagaManager.Union(RegisterSagaManagers(context.Sagas.Select(a => a.ManagerDefinition).ToList(), context.Name)).ToDictionary(k => k.Key, v => v.Value);
                DefinitionToDomainServiceManager = DefinitionToDomainServiceManager.Union(RegisterDomainServiceManagers(context.DomainServices.Select(a => a.ManagerDefinition).ToList(), context.Name)).ToDictionary(k => k.Key, v => v.Value);
                DefinitionToJobManager           = DefinitionToJobManager
                                                   .Union(RegisterJobManagers(context.Jobs.Select(a => a.ManagerDefinition).ToList(), context.Name))
                                                   .ToDictionary(k => k.Key, v => v.Value);
            }

            DefinitionToJobManager = DefinitionToJobManager
                                     .Union(RegisterCommandsScheduler("common"))
                                     .Union(RegisterEventsScheduler("common"))
                                     .ToDictionary(k => k.Key, v => v.Value);

            RegisterDomainEventSubscribers(applicationDefinition.DomainEventSubscribers);
        }
Пример #26
0
        public override void Bind(IEditorService service)
        {
            _edsvc = service;
            _edsvc.RegisterCustomNotifier(this);

            try
            {
                _fsvc = (IFusionService)_edsvc.GetService((int)ServiceType.Fusion);
                _baseUrl = service.GetCustomProperty("BaseUrl").ToString(); //NOXLATE

                if (!_baseUrl.EndsWith("/")) //NOXLATE
                    _baseUrl += "/"; //NOXLATE
            }
            catch
            {
                throw new NotSupportedException(Strings.IncompatibleConnection);
            }

            _edsvc.Saved += OnSaved;
            _flexLayout = (IApplicationDefinition)service.GetEditedResource();

            TextBoxBinder.BindText(txtTemplateUrl, _flexLayout, "TemplateUrl"); //NOXLATE
            TextBoxBinder.BindText(txtTitle, _flexLayout, "Title"); //NOXLATE
            var templates = _fsvc.GetApplicationTemplates();
            InitializeTemplateList(templates);

            GeneratePreviewUrl();
        }
Пример #27
0
 public SerializedCommandPublisher(IApplicationDefinition applicationDefinition, ICommandBus bus)
 {
     _applicationDefinition = applicationDefinition;
     _bus = bus;
 }
Пример #28
0
 public SerializedQueryExecutor(IApplicationDefinition applicationDefinition, IQueryProcessor queryProcessor)
 {
     _applicationDefinition = applicationDefinition;
     _queryProcessor        = queryProcessor;
 }
Пример #29
0
        public override void Bind(IEditorService service)
        {
            try
            {
                _edsvc = service;
                _fsvc = (IFusionService)_edsvc.GetService((int)ServiceType.Fusion);
                _context = new FlexibleLayoutEditorContext(_fsvc);
                _baseUrl = service.GetCustomProperty("BaseUrl").ToString(); //NOXLATE

                if (!_baseUrl.EndsWith("/")) //NOXLATE
                    _baseUrl += "/"; //NOXLATE
            }
            catch
            {
                throw new NotSupportedException(Strings.IncompatibleConnection);
            }
            service.RegisterCustomNotifier(this);
            _flexLayout = (IApplicationDefinition)service.GetEditedResource();
            InitWidgetSet();
        }
Пример #30
0
        public MapCtrl(IApplicationDefinition appDef, IMapGroup group, IEditorService edService, IMapWidget widget)
            : this()
        {
            _edsvc = edService;
            _edsvc.RegisterCustomNotifier(this);
            _appDef = appDef;
            _group = group;
            _widget = widget;

            foreach (var map in group.Map)
            {
                if (map.Type.Equals("MapGuide")) //NOXLATE
                {
                    _map = map;
                }
                else
                {
                    var cmsOpts = map.CmsMapOptions;
                    if (cmsOpts != null)
                    {
                        switch (cmsOpts.Type)
                        {
                            case G_HYBRID_MAP:
                                chkGoogHybrid.Checked = true;
                                break;
                            case G_NORMAL_MAP:
                                chkGoogStreets.Checked = true;
                                break;
                            case G_SATELLITE_MAP:
                                chkGoogSatellite.Checked = true;
                                break;
                            case G_PHYSICAL_MAP:
                                chkGoogTerrain.Checked = true;
                                break;
                            case BING_AERIAL:
                                chkBingSatellite.Checked = true;
                                break;
                            case BING_HYBRID:
                                chkBingHybrid.Checked = true;
                                break;
                            case BING_ROAD:
                                chkBingStreets.Checked = true;
                                break;
                            case YAHOO_MAP_HYB:
                                chkYahooHybrid.Checked = true;
                                break;
                            case YAHOO_MAP_REG:
                                chkYahooStreets.Checked = true;
                                break;
                            case YAHOO_MAP_SAT:
                                chkYahooSatellite.Checked = true;
                                break;
                        }
                    }
                }
            }

            string googUrl = _appDef.GetValue("GoogleScript"); //NOXLATE
            string yahooUrl = _appDef.GetValue("YahooScript"); //NOXLATE

            if (!string.IsNullOrEmpty(yahooUrl))
            {
                txtYahooApiKey.Text = yahooUrl.Substring(YAHOO_URL.Length);
            }
            EvaluateCmsStates();

            _initialView = _group.InitialView;
            _cmsMaps = new Dictionary<string, CmsMap>();
            chkOverride.Checked = (_initialView != null);

            InitCmsMaps(group);
            Debug.Assert(_cmsMaps.Count == 13);

            if (_initialView == null)
                _initialView = group.CreateInitialView(0.0, 0.0, 0.0);

            txtViewX.Text = _initialView.CenterX.ToString(CultureInfo.InvariantCulture);
            txtViewY.Text = _initialView.CenterY.ToString(CultureInfo.InvariantCulture);
            txtViewScale.Text = _initialView.Scale.ToString(CultureInfo.InvariantCulture);

            txtViewX.TextChanged += (s, e) =>
            {
                double d;
                if (double.TryParse(txtViewX.Text, out d))
                {
                    _initialView.CenterX = d;
                    OnResourceChanged();
                }
            };
            txtViewY.TextChanged += (s, e) =>
            {
                double d;
                if (double.TryParse(txtViewY.Text, out d))
                {
                    _initialView.CenterY = d;
                    OnResourceChanged();
                }
            };
            txtViewScale.TextChanged += (s, e) =>
            {
                double d;
                if (double.TryParse(txtViewScale.Text, out d))
                {
                    _initialView.Scale = d;
                    OnResourceChanged();
                }
            };

            TextBoxBinder.BindText(txtMapId, group, "id"); //NOXLATE

            txtMapDefinition.Text = _map.GetMapDefinition();
            txtMapDefinition.TextChanged += (s, e) =>
            {
                _map.SetMapDefinition(txtMapDefinition.Text);
                OnResourceChanged();
            };

            CheckBoxBinder.BindChecked(chkSingleTiled, _map, "SingleTile"); //NOXLATE

            var selOverlay = _map.GetValue("SelectionAsOverlay"); //NOXLATE
            var selColor = _map.GetValue("SelectionColor"); //NOXLATE

            if (!string.IsNullOrEmpty(selColor))
                cmbSelectionColor.CurrentColor = Utility.ParseHTMLColorRGBA(selColor.Substring(2)); //Strip the "0x" part

            if (!string.IsNullOrEmpty(selOverlay))
            {
                bool b = true;
                if (bool.TryParse(selOverlay, out b))
                    chkSelectionAsOverlay.Checked = b;
            }

            cmbSelectionColor.SelectedIndexChanged += (s, e) =>
            {
                _map.SetValue("SelectionColor", "0x" + Utility.SerializeHTMLColorRGBA(cmbSelectionColor.CurrentColor, true)); //NOXLATE
                OnResourceChanged();
            };
            chkSelectionAsOverlay.CheckedChanged += (s, e) =>
            {
                _map.SetValue("SelectionAsOverlay", chkSelectionAsOverlay.Checked.ToString().ToLower()); //NOXLATE
                OnResourceChanged();
            };

            _noEvents = false;
        }
Пример #31
0
        public override void Bind(IEditorService service)
        {
            service.RegisterCustomNotifier(this);
            try
            {
                _fsvc = (IFusionService)service.GetService((int)ServiceType.Fusion);
                _baseUrl = service.GetCustomProperty("BaseUrl").ToString(); //NOXLATE

                if (!_baseUrl.EndsWith("/")) //NOXLATE
                    _baseUrl += "/"; //NOXLATE
            }
            catch
            {
                throw new NotSupportedException(Strings.IncompatibleConnection);
            }
            _edsvc = service;
            _edsvc.RegisterCustomNotifier(this);
            _flexLayout = (IApplicationDefinition)service.GetEditedResource();

            foreach (var grp in _flexLayout.MapSet.MapGroups)
            {
                AddMap(grp);
            }
        }
        /// <summary>
        /// Validats the specified resources for common issues associated with this
        /// resource type
        /// </summary>
        /// <param name="context"></param>
        /// <param name="resource"></param>
        /// <param name="recurse"></param>
        /// <returns></returns>
        public ValidationIssue[] Validate(ResourceValidationContext context, IResource resource, bool recurse)
        {
            if (resource.ResourceType != ResourceTypes.ApplicationDefinition.ToString())
            {
                return(null);
            }

            //TODO: Other items to check for
            //
            // - References to non-existent widgets
            // - MapWidget checks
            //   - Ensure map id checks out
            //   - Ensure context menu id checks out
            // - Verify containers of template are all referenced within this flexible layout
            // - Check required parameters of widgets are satisfied

            List <ValidationIssue> issues = new List <ValidationIssue>();

            IApplicationDefinition fusionApp = resource as IApplicationDefinition;

            if (fusionApp.MapSet == null || fusionApp.MapSet.MapGroupCount == 0)
            {
                issues.Add(new ValidationIssue(fusionApp, ValidationStatus.Error, ValidationStatusCode.Error_Fusion_MissingMap, string.Format(Strings.ADF_MapMissingError)));
            }
            else
            {
                foreach (IMapGroup mapGroup in fusionApp.MapSet.MapGroups)
                {
                    bool checkCmsProjection = false;
                    List <IMapDefinition> mapDefsInGroup = new List <IMapDefinition>();
                    foreach (IMap map in mapGroup.Map)
                    {
                        if (IsCommercialOverlay(map))
                        {
                            checkCmsProjection = true;
                        }
                        if (map.Type.ToLower() == "virtualearth")
                        {
                            //As of July 1, 2017 we need an API key on Bing Maps
                            var bingMapsKey = fusionApp.GetValue("BingMapKey");
                            if (string.IsNullOrEmpty(bingMapsKey))
                            {
                                issues.Add(new ValidationIssue(fusionApp, ValidationStatus.Error, ValidationStatusCode.Error_Fusion_BingMapsMissingApiKey, Strings.ADF_BingMapsMissingApiKey));
                            }

                            //If this is still referencing the "Hybrid" base layer type, that no longer exists in the v8 API
                            if (map.CmsMapOptions.Type == "Hybrid")
                            {
                                issues.Add(new ValidationIssue(fusionApp, ValidationStatus.Error, ValidationStatusCode.Error_Fusion_BingMapsHybridBaseLayerNoLongerAvailable, Strings.ADF_BingMapsHybridLayerNoLongerAvailable));
                            }
                        }
                        try
                        {
                            if (map.Type.ToLower() == "mapguide") //NOXLATE
                            {
                                var mdfId = map.GetMapDefinition();
                                if (string.IsNullOrEmpty(mdfId) || !this.Connection.ResourceService.ResourceExists(mdfId))
                                {
                                    issues.Add(new ValidationIssue(fusionApp, ValidationStatus.Error, ValidationStatusCode.Error_Fusion_InvalidMap, string.Format(Strings.ADF_MapInvalidError, mapGroup.id)));
                                }
                                else
                                {
                                    IMapDefinition mdef = (IMapDefinition)context.GetResource(mdfId);
                                    mapDefsInGroup.Add(mdef);

                                    IEnvelope mapEnv = ObjectFactory.CreateEnvelope(mdef.Extents.MinX, mdef.Extents.MinY, mdef.Extents.MaxX, mdef.Extents.MaxY);

                                    if (mapGroup.InitialView != null)
                                    {
                                        if (!mapEnv.Contains(mapGroup.InitialView.CenterX, mapGroup.InitialView.CenterY))
                                        {
                                            issues.Add(new ValidationIssue(mdef, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_InitialViewOutsideMapExtents, string.Format(Strings.ADF_ViewOutsideMapExtents)));
                                        }
                                    }

                                    if (recurse)
                                    {
                                        issues.AddRange(ResourceValidatorSet.Validate(context, mdef, recurse));
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            string msg = NestedExceptionMessageProcessor.GetFullMessage(ex);
                            issues.Add(new ValidationIssue(fusionApp, ValidationStatus.Error, ValidationStatusCode.Error_Fusion_MapValidationError, string.Format(Strings.ADF_MapValidationError, mapGroup.id, msg)));
                        }
                    }

                    if (checkCmsProjection)
                    {
                        foreach (var mdf in mapDefsInGroup)
                        {
                            var wkt    = mdf.CoordinateSystem;
                            var csCode = this.Connection.CoordinateSystemCatalog.ConvertWktToCoordinateSystemCode(wkt);
                            if (csCode.ToUpper() != "WGS84.PSEUDOMERCATOR") //NOXLATE
                            {
                                issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_MapCoordSysIncompatibleWithCommericalLayers, string.Format(Strings.ADF_MapWithIncompatibleCommericalCs, mdf.ResourceID)));
                            }
                        }
                    }
                }
            }

            //Check labels of referenced widgets
            foreach (var wset in fusionApp.WidgetSets)
            {
                foreach (var cnt in wset.Containers)
                {
                    var menu = cnt as IMenu;
                    if (menu != null)
                    {
                        ValidateWidgetReferencesForMenu(fusionApp, menu, issues, context, resource);
                    }
                }
            }

            context.MarkValidated(resource.ResourceID);

            return(issues.ToArray());
        }
Пример #33
0
 protected AbstractExternalEventProvider(IApplicationDefinition applicationDefinition, IDomainEventBus eventBus)
 {
     _eventTypes = applicationDefinition.ExternalEvents.GetAllDefinitions().Select(d => d.Type).ToList();
     _eventBus   = eventBus;
 }
Пример #34
0
 public SecurityService(IServiceProvider serviceProvider, IApplicationDefinition definition)
 {
     _permissionProvider = serviceProvider.GetService <IPermissionProvider>();
     _definition         = definition;
 }
 /// <summary>
 /// Gets the name of the fusion template
 /// </summary>
 /// <param name="appDef"></param>
 /// <returns></returns>
 public static string GetTemplateName(this IApplicationDefinition appDef)
 {
     string[] tokens = appDef.TemplateUrl.Split('/');
     // fusion/templates/mapguide/{templateName}/index.html
     return(tokens[tokens.Length - 2]);
 }
Пример #36
0
 private void ValidateWidgetReferencesForMenu(IApplicationDefinition fusionApp, IMenu menu, List<ValidationIssue> issues, ResourceValidationContext context, IResource resource)
 {
     foreach (var item in menu.Items)
     {
         var subMenu = item as IMenu;
         var widgetRef = item as IWidgetItem;
         if (subMenu != null)
         {
             ValidateWidgetReferencesForMenu(fusionApp, subMenu, issues, context, resource);
         }
         else if (widgetRef != null)
         {
             var id = widgetRef.Widget;
             var wgt = fusionApp.FindWidget(id);
             var uiWgt = wgt as IUIWidget;
             string parentName = "<unknown>"; //NOXLATE
             var cnt = menu as IWidgetContainer;
             var fly = menu as IFlyoutItem;
             if (cnt != null)
                 parentName = cnt.Name;
             else if (fly != null)
                 parentName = fly.Label;
             if (wgt == null)
             {
                 issues.Add(new ValidationIssue(resource, ValidationStatus.Error, ValidationStatusCode.Error_Fusion_InvalidWidgetReference, string.Format(Strings.ADF_InvalidWidgetReferenceInContainer, id, parentName)));
             }
             else
             {
                 if (uiWgt == null)
                 {
                     issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_NonStandardUiWidgetAttachedToContainer, string.Format(Strings.ADF_NonUiWidgetAttachedToContainer, id, parentName)));
                 }
                 else
                 {
                     if (string.IsNullOrEmpty(uiWgt.Label) && string.IsNullOrEmpty(uiWgt.ImageUrl))
                     {
                         issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_NoLabelOnWidget, string.Format(Strings.ADF_ReferencedWidgetInMenuHasNoLabel, id, parentName)));
                     }
                 }
             }
         }
     }
 }
Пример #37
0
        internal string[] GetDockableWidgetNames(IApplicationDefinition appDef)
        {
            //Key the dockable types
            var dict = new Dictionary<string, IWidgetInfo>();
            foreach (var winfo in GetAllWidgets())
            {
                if (winfo.StandardUi)
                {
                    dict[winfo.Type] = winfo;
                }
            }

            var result = new List<string>();
            foreach (var wset in appDef.WidgetSets)
            {
                foreach (var wgt in wset.Widgets)
                {
                    if (dict.ContainsKey(wgt.Type))
                        result.Add(wgt.Name);
                }
            }
            return result.ToArray();
        }
        /// <summary>
        /// Removes the specified widget from this
        /// </summary>
        /// <param name="appDef">The app definition.</param>
        /// <param name="widgetName">Name of the widget to remove.</param>
        /// <param name="deleteReferences">if set to <c>true</c> [deletes any references to the widget to be deleted].</param>
        public static void RemoveWidget(this IApplicationDefinition appDef, string widgetName, bool deleteReferences)
        {
            Check.NotNull(appDef, "appDef");          //NOXLATE
            Check.NotEmpty(widgetName, "widgetName"); //NOXLATE

            IWidgetSet matchingSet    = null;
            IWidget    matchingWidget = null;

            foreach (var set in appDef.WidgetSets)
            {
                if (matchingSet == null)
                {
                    foreach (var wgt in set.Widgets)
                    {
                        if (wgt.Name == widgetName)
                        {
                            matchingSet    = set;
                            matchingWidget = wgt;
                            break;
                        }
                    }
                }
            }

            int removed = 0;

            if (matchingSet != null && matchingWidget != null)
            {
                matchingSet.RemoveWidget(matchingWidget);

                if (deleteReferences)
                {
                    foreach (var set in appDef.WidgetSets)
                    {
                        foreach (var cnt in set.Containers)
                        {
                            var uicnt = cnt as IUIItemContainer;
                            if (uicnt != null)
                            {
                                List <IWidgetItem> removeMe = new List <IWidgetItem>();
                                foreach (var uiitem in uicnt.Items)
                                {
                                    IWidgetItem witem = uiitem as IWidgetItem;
                                    if (witem != null && witem.Widget == widgetName)
                                    {
                                        removeMe.Add(witem);
                                        System.Diagnostics.Trace.TraceInformation("Found widget reference in container: " + uicnt.Name); //NOXLATE
                                    }
                                }

                                if (removeMe.Count > 0)
                                {
                                    foreach (var rm in removeMe)
                                    {
                                        uicnt.RemoveItem(rm);
                                        removed++;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            if (deleteReferences)
            {
                System.Diagnostics.Trace.TraceInformation(removed + " widget references removed");   //NOXLATE
            }
        }