Example #1
0
        /// <summary>
        /// Constructs a new <see cref="Element"/> from the given <see cref=" ElementHandle"/>.
        /// </summary>
        /// <param name="elementHandle"></param>
        public Element(ElementHandle elementHandle)
            : this()
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");

            _elementHandle = elementHandle;            
        }
        public static bool ExecuteElementDraggedAndDropped(ElementHandle draggedElementHandle, ElementHandle newParentdElementHandle, int dropIndex, string consoleId, bool isCopy)
        {
            FlowControllerServicesContainer flowServicesContainer = new FlowControllerServicesContainer();
            flowServicesContainer.AddService(new ManagementConsoleMessageService(consoleId));
            flowServicesContainer.AddService(new ElementDataExchangeService(draggedElementHandle.ProviderName));
            flowServicesContainer.AddService(new ActionExecutionService(draggedElementHandle.ProviderName, consoleId));

            return ElementFacade.ExecuteElementDraggedAndDropped(draggedElementHandle, newParentdElementHandle, dropIndex, isCopy, flowServicesContainer);
        }
Example #3
0
        /// <summary>
        /// Constructs a new <see cref="Element"/> from the given <see cref=" ElementHandle"/> and <see cref="ElementVisualizedData"/>.
        /// </summary>
        /// <param name="elementHandle"></param>
        /// <param name="visualData"></param>
        public Element(ElementHandle elementHandle, ElementVisualizedData visualData)
            : this()
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");
            if (visualData == null) throw new ArgumentNullException("visualData");
            
            _elementHandle = elementHandle;

            this.VisualData = visualData;            
        }
        public static void ExecuteElementAction(ElementHandle elementHandle, ActionHandle actionHandle, string consoleId)
        {
            FlowControllerServicesContainer flowServicesContainer = new FlowControllerServicesContainer();
            flowServicesContainer.AddService(new ManagementConsoleMessageService(consoleId));
            flowServicesContainer.AddService(new ElementDataExchangeService(elementHandle.ProviderName));
            flowServicesContainer.AddService(new ActionExecutionService(elementHandle.ProviderName, consoleId));
            flowServicesContainer.AddService(new ElementInformationService(elementHandle));

            FlowToken flowToken = ActionExecutorFacade.Execute(elementHandle.EntityToken, actionHandle.ActionToken, flowServicesContainer);

            IFlowUiDefinition uiDefinition = FlowControllerFacade.GetCurrentUiDefinition(flowToken, flowServicesContainer);

            if (typeof(FlowUiDefinitionBase).IsAssignableFrom(uiDefinition.GetType()))
            {
                string serializedEntityToken = EntityTokenSerializer.Serialize(elementHandle.EntityToken, true);
                ViewTransitionHelper.HandleNew(consoleId, elementHandle.ProviderName, serializedEntityToken, flowToken, (FlowUiDefinitionBase)uiDefinition);
            }
        }
Example #5
0
        /// <summary>
        /// Constructs a new <see cref="Element"/> from the given <see cref=" ElementHandle"/> and <see cref="ElementDragAndDropInfo"/>.
        /// </summary>
        /// <param name="elementHandle"></param>
        /// <param name="movabilityInfo"></param>
        public Element(ElementHandle elementHandle, ElementDragAndDropInfo movabilityInfo)
            : this()
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");
            if (movabilityInfo == null) throw new ArgumentNullException("movabilityInfo");

            _elementHandle = elementHandle;
            this.MovabilityInfo = movabilityInfo;
        }
Example #6
0
        /// <summary>
        /// Constructs a new <see cref="Element"/> from the given <see cref=" ElementHandle"/>, <see cref="ElementVisualizedData"/> and <see cref="ElementDragAndDropInfo"/>.
        /// </summary>
        /// <param name="elementHandle"></param>
        /// <param name="visualData"></param>
        /// <param name="movabilityInfo"></param>
        public Element(ElementHandle elementHandle, ElementVisualizedData visualData, ElementDragAndDropInfo movabilityInfo)
            : this()
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");
            if (visualData == null) throw new ArgumentNullException("visualData");
            if (movabilityInfo == null) throw new ArgumentNullException("movabilityInfo");
            
            _elementHandle = elementHandle;

            this.VisualData = visualData;
            this.MovabilityInfo = movabilityInfo;            
        }
Example #7
0
        /// <exclude />
        public static void ExecuteElementAction(string providerName, string serializedEntityToken, string piggybag, string serializedActionToken, string consoleId)
        {
            using (DebugLoggingScope.MethodInfoScope)
            {
                EntityToken entityToken = EntityTokenSerializer.Deserialize(serializedEntityToken);
                if (!entityToken.IsValid())
                {
                    ShowInvalidEntityMessage(consoleId);
                    return;
                }

                var elementHandle = new ElementHandle(providerName, entityToken, piggybag);

                ActionToken actionToken = ActionTokenSerializer.Deserialize(serializedActionToken, true);
                ActionHandle actionHandle = new ActionHandle(actionToken);

                ActionExecutionMediator.ExecuteElementAction(elementHandle, actionHandle, consoleId);
            }
        }
Example #8
0
        /// <exclude />
        public static bool ExecuteElementDraggedAndDropped(string draggedElementProviderName, string draggedElementSerializedEntityToken, string draggedElementPiggybag, string newParentElementProviderName, string newParentElementSerializedEntityToken, string newParentElementPiggybag, int dropIndex, string consoleId, bool isCopy)
        {
            if (draggedElementProviderName != newParentElementProviderName)
            {
                throw new InvalidOperationException("Only drag'n'drop internal in element providers are allowed");
            }

            EntityToken draggedElementEntityToken = EntityTokenSerializer.Deserialize(draggedElementSerializedEntityToken);
            ElementHandle draggedElementHandle = new ElementHandle(draggedElementProviderName, draggedElementEntityToken, draggedElementPiggybag);

            EntityToken newParentElementEntityToken = EntityTokenSerializer.Deserialize(newParentElementSerializedEntityToken);
            ElementHandle newParentdElementHandle = new ElementHandle(newParentElementProviderName, newParentElementEntityToken, newParentElementPiggybag);

            return ActionExecutionMediator.ExecuteElementDraggedAndDropped(draggedElementHandle, newParentdElementHandle, dropIndex, consoleId, isCopy);                            
        }
Example #9
0
        /// <exclude />
        public static List<RefreshChildrenInfo> GetMultipleChildren(List<RefreshChildrenParams> nodesToBeRefreshed)
        {
                int t1 = Environment.TickCount;

                var result = new List<RefreshChildrenInfo>();

                foreach (RefreshChildrenParams node in nodesToBeRefreshed)
                {
                    EntityToken entityToken;

                    try
                    {
                        entityToken = EntityTokenSerializer.Deserialize(node.EntityToken);
                    }
                    catch (EntityTokenSerializerException)
                    {
                        continue;
                    }
                    
                    var elementHandle = new ElementHandle(node.ProviderName, entityToken, node.Piggybag);
                    SearchToken searchToken = null;
                    if (!string.IsNullOrEmpty(node.SearchToken))
                    {
                        searchToken = SearchToken.Deserialize(node.SearchToken);
                    }

                    List<Element> childElements;
                    if (UserSettings.ForeignLocaleCultureInfo == null || UserSettings.ForeignLocaleCultureInfo.Equals(UserSettings.ActiveLocaleCultureInfo))
                    {
                        childElements = ElementFacade.GetChildren(elementHandle, searchToken).ToList();
                    }
                    else
                    {
                        childElements = ElementFacade.GetForeignChildren(elementHandle, searchToken).ToList();
                    }

                    result.Add(new RefreshChildrenInfo
                      {
                          ElementKey = GetElementKey(node.ProviderName, node.EntityToken, node.Piggybag),
                          ClientElements = childElements.ToClientElementList()
                      });
                }

                int t2 = Environment.TickCount;

                //LoggingService.LogVerbose("TreeServiceFacade", string.Format("GetMultipleChildren: {0} ms", t2 - t1));

                return result;
        }
Example #10
0
        /// <exclude />
        public static List<ClientLabeledProperty> GetLabeledProperties(string providerName, string serializedEntityToken, string piggybag)
        {
                EntityToken elementEntityToken = EntityTokenSerializer.Deserialize(serializedEntityToken);
                ElementHandle elementHandle = new ElementHandle(providerName, elementEntityToken, piggybag);

                IEnumerable<LabeledProperty> labeledProperties;
                if (UserSettings.ForeignLocaleCultureInfo == null || UserSettings.ForeignLocaleCultureInfo.Equals(UserSettings.ActiveLocaleCultureInfo))
                {
                    labeledProperties = ElementFacade.GetLabeledProperties(elementHandle);
                }
                else
                {
                    labeledProperties = ElementFacade.GetForeignLabeledProperties(elementHandle);
                }


                return
                    (from property in labeledProperties
                     select new ClientLabeledProperty(property)).ToList();
        }
Example #11
0
        /// <exclude />
        public static IEnumerable<Element> GetForeignChildren(ElementHandle elementHandle, SearchToken searchToken)
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");

            return GetChildren(elementHandle, searchToken, true, true);
        }
Example #12
0
        /// <exclude />
        public static bool ExecuteElementDraggedAndDropped(ElementHandle draggedElementHandle, ElementHandle newParentElementHandle, int dropIndex, bool isCopy, FlowControllerServicesContainer draggedElementFlowControllerServicesContainer)
        {
            if (draggedElementHandle == null) throw new ArgumentNullException("draggedElementHandle");
            if (newParentElementHandle == null) throw new ArgumentNullException("newParentElementHandle");
            if (draggedElementFlowControllerServicesContainer == null) throw new ArgumentNullException("draggedElementFlowControllerServicesContainer");

            if (draggedElementHandle.Equals(newParentElementHandle))
            {
                LoggingService.LogError("ElementFacade", "ExecuteElementDraggedAndDropped on the same element is not allowed");
                return false;
            }

            DragAndDropType dragAndDropType = DragAndDropType.Move;
            if (isCopy)
            {
                dragAndDropType = DragAndDropType.Copy;
            }

            return ElementProviderPluginFacade.OnElementDraggedAndDropped(draggedElementHandle.ProviderName, draggedElementHandle.EntityToken, newParentElementHandle.EntityToken, dropIndex, dragAndDropType, draggedElementFlowControllerServicesContainer);
        }
Example #13
0
        private static IEnumerable<Element> GetChildren(ElementHandle elementHandle, SearchToken searchToken, bool performSecurityCheck, bool useForeign)
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");

            IPerformanceCounterToken performanceToken = PerformanceCounterFacade.BeginElementCreation();

            IEnumerable<Element> children;
            if (ElementProviderRegistry.ElementProviderNames.Contains(elementHandle.ProviderName))
            {
                if ((useForeign == false) || (ElementProviderPluginFacade.IsLocaleAwareElementProvider(elementHandle.ProviderName) == false))
                {
                    children = ElementProviderPluginFacade.GetChildren(elementHandle.ProviderName, elementHandle.EntityToken, searchToken).Evaluate();
                }
                else
                {
                    children = ElementProviderPluginFacade.GetForeignChildren(elementHandle.ProviderName, elementHandle.EntityToken, searchToken).Evaluate();
                }
            }
            else if (ElementAttachingProviderRegistry.ElementAttachingProviderNames.Contains(elementHandle.ProviderName))
            {
                children = ElementAttachingProviderPluginFacade.GetChildren(elementHandle.ProviderName, elementHandle.EntityToken, elementHandle.Piggyback).Evaluate();
            }
            else
            {
                throw new InvalidOperationException(string.Format("No element provider named '{0}' found", elementHandle.ProviderName));
            }

            foreach (Element element in children)
            {
                if (element.VisualData.HasChildren == false)
                {
                    element.VisualData.HasChildren = ElementAttachingProviderFacade.HaveCustomChildElements(element.ElementHandle.EntityToken, element.ElementHandle.Piggyback);
                }
            }
                        
            children = ElementAttachingProviderFacade.AttachElements(elementHandle.EntityToken, elementHandle.Piggyback, children).Evaluate();

            int totalElementCount = children.Count();

            ElementActionProviderFacade.AddActions(children, elementHandle.ProviderName);

            if (performSecurityCheck)
            {
                children = children.FilterActions().Evaluate();
            }

            PerformanceCounterFacade.EndElementCreation(performanceToken, children.Count(), totalElementCount);

            return children;
        }
Example #14
0
        /// <exclude />
        public bool Equals(ElementHandle elementHandle)
        {
            if (elementHandle == null) return false;

            if ((elementHandle.EntityToken.Equals(this.EntityToken) == false) || (elementHandle.ProviderName != this.ProviderName)) return false;

            if (elementHandle.Piggyback.Count != this.Piggyback.Count) return false;

            foreach (KeyValuePair<string, string> kvp in elementHandle.Piggyback)
            {
                string value;
                if (this.Piggyback.TryGetValue(kvp.Key, out value) == false) return false;

                if (kvp.Value != value) return false;
            }

            return true;
        }
Example #15
0
        /// <exclude />
        public static Dictionary<string, object> GetSearchFormBindings(ElementHandle elementHandle)
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");

            Dictionary<string, object> bindings;

            if (ElementProviderPluginFacade.GetSearchFormBindings(elementHandle.ProviderName, elementHandle.EntityToken, out bindings) == false)
            {
                return new Dictionary<string, object>();
            }

            return bindings;
        }
Example #16
0
        /// <exclude />
        public static XmlReader GetSearchFormMarkup(ElementHandle elementHandle)
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");

            XmlReader formDefinition;

            if (ElementProviderPluginFacade.GetSearchFormDefinition(elementHandle.ProviderName, elementHandle.EntityToken, out formDefinition) == false)
            {
                IFormMarkupProvider markupProvider = new FormDefinitionFileMarkupProvider("/Administrative/ElementKeywordSearch.xml");

                return markupProvider.GetReader();
            }

            return formDefinition;
        }
Example #17
0
        /// <exclude />
        public static SearchToken GetNewSearchToken(ElementHandle elementHandle)
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");

            if (elementHandle == null) throw new ArgumentNullException("elementHandle");

            SearchToken searchToken;

            if (ElementProviderPluginFacade.GetNewSearchToken(elementHandle.ProviderName, elementHandle.EntityToken, out searchToken) == false)
            {
                return new SearchToken();
            }

            return searchToken;
        }
 public ElementInformationService(ElementHandle elementHandle)
 {
     _elementHandle = elementHandle;
 }
Example #19
0
        /// <exclude />
        public static List<ClientElement> GetChildren(string providerName, string serializedEntityToken, string piggybag, string serializedSearchToken)
        {
                //LoggingService.LogVerbose("RGB(255, 0, 255)TreeServiceFacade", "----- Start -----------------------------------------------");

                int t1 = Environment.TickCount;

                EntityToken entityToken = EntityTokenSerializer.Deserialize(serializedEntityToken);
                ElementHandle elementHandle = new ElementHandle(providerName, entityToken, piggybag);

                //int t2 = Environment.TickCount;

                SearchToken searchToken = null;
                if (!string.IsNullOrEmpty(serializedSearchToken))
                {
                    searchToken = SearchToken.Deserialize(serializedSearchToken);
                }

                List<Element> childElements;
                if (UserSettings.ForeignLocaleCultureInfo == null || UserSettings.ForeignLocaleCultureInfo.Equals(UserSettings.ActiveLocaleCultureInfo))
                {
                    childElements = ElementFacade.GetChildren(elementHandle, searchToken).ToList();
                }
                else
                {
                    childElements = ElementFacade.GetForeignChildren(elementHandle, searchToken).ToList();
                }

                //int t3 = Environment.TickCount;

                List<ClientElement> resultList = childElements.ToClientElementList();

                int t4 = Environment.TickCount;

                //LoggingService.LogVerbose("RGB(255, 0, 255)TreeServiceFacade", string.Format("ElementHandle: {0} ms", t2 - t1));
                //LoggingService.LogVerbose("RGB(255, 0, 255)TreeServiceFacade", string.Format("GetChildren: {0} ms", t3 - t2));
                //LoggingService.LogVerbose("RGB(255, 0, 255)TreeServiceFacade", string.Format("ToClientElementList: {0} ms", t4 - t3));
                //LoggingService.LogVerbose("RGB(255, 0, 255)TreeServiceFacade", string.Format("Total: {0} ms", t4 - t1));
                //LoggingService.LogVerbose("RGB(255, 0, 255)TreeServiceFacade", "----- End -------------------------------------------------");

                //LoggingService.LogVerbose("TreeServiceFacade", string.Format("GetChildren: {0} ms", t4 - t1));

                return resultList;
        }
Example #20
0
        /// <exclude />
        public static IEnumerable<LabeledProperty> GetLabeledProperties(ElementHandle elementHandle)
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");

            return ElementProviderPluginFacade.GetLabeledProperties(elementHandle.ProviderName, elementHandle.EntityToken);
        }
Example #21
0
        /// <exclude />
        public static IEnumerable<LabeledProperty> GetForeignLabeledProperties(ElementHandle elementHandle)
        {
            if (elementHandle == null) throw new ArgumentNullException("elementHandle");

            if (ElementProviderPluginFacade.IsLocaleAwareElementProvider(elementHandle.ProviderName))
            {
                return ElementProviderPluginFacade.GetForeignLabeledProperties(elementHandle.ProviderName, elementHandle.EntityToken);
            }
            else
            {
                return ElementProviderPluginFacade.GetLabeledProperties(elementHandle.ProviderName, elementHandle.EntityToken);
            }

        }