/// <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); }
/// <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); } }
/// <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; }
/// <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; }
/// <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); } }
/// <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); }
/// <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; }
/// <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(); }
/// <exclude /> public static IEnumerable<Element> GetForeignChildren(ElementHandle elementHandle, SearchToken searchToken) { if (elementHandle == null) throw new ArgumentNullException("elementHandle"); return GetChildren(elementHandle, searchToken, true, true); }
/// <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); }
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; }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <exclude /> public static IEnumerable<LabeledProperty> GetLabeledProperties(ElementHandle elementHandle) { if (elementHandle == null) throw new ArgumentNullException("elementHandle"); return ElementProviderPluginFacade.GetLabeledProperties(elementHandle.ProviderName, elementHandle.EntityToken); }
/// <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); } }