Beispiel #1
0
        /// <summary>
        /// Query a number of blocks form the server.
        /// </summary>
        /// <param name="context"></param>
        /// <param name="numBlocks"></param>
        private DataTable GetDataTableBlocks(IUPopulationContext context, int numBlocks)
        {
            DataTable lDataResult = null;

            for (int iaux = 0; iaux < numBlocks; iaux++)
            {
                // Get Data Query.
                DataTable lDataAux = GetQuery(Context);
                AddLastOid(Context, lDataAux);

                if (lDataAux != null)
                {
                    if (lDataResult == null)
                    {
                        lDataResult = lDataAux;
                    }
                    else
                    {
                        lDataResult.Merge(lDataAux);
                    }
                }
            }

            return(lDataResult);
        }
        /// <summary>
        /// Stablish the label Number of elements
        /// </summary>
        private void SetNumberOfInstances()
        {
            if (this.NumberOfInstances == null)
            {
                return;
            }

            IUPopulationContext lContext     = Context as IUPopulationContext;
            int?   totalNumberOfInstances    = (mDataTable.ExtendedProperties["TotalRows"] as int?);
            string strTotalNumberOfInstances = "...";             // By default, if no information about the total number of instances.

            if (totalNumberOfInstances != null && totalNumberOfInstances > -1)
            {
                strTotalNumberOfInstances = totalNumberOfInstances.ToString();
            }

            if (lContext != null)
            {
                if (lContext.LastBlock)
                {
                    this.NumberOfInstances.Value = DataTable.Rows.Count.ToString() + "/" + mDataTable.Rows.Count.ToString();
                }
                else
                {
                    this.NumberOfInstances.Value = DataTable.Rows.Count.ToString() + "/" + strTotalNumberOfInstances;
                }
            }
            else
            {
                this.NumberOfInstances.Value = DataTable.Rows.Count.ToString() + "/" + strTotalNumberOfInstances;
            }
        }
Beispiel #3
0
 /// <summary>
 /// Add to Stack of last Oid queried.
 /// </summary>
 /// <param name="context">Context to save the last oid.</param>
 /// <param name="lastOid">last Oid.</param>
 /// <returns></returns>
 protected virtual Oid AddLastOid(IUPopulationContext context, Oid lastOid)
 {
     if (lastOid != null)
     {
         context.LastOids.Push(lastOid);
     }
     return(lastOid);
 }
Beispiel #4
0
        /// <summary>
        /// Add to Stack of last Oid queried.
        /// </summary>
        /// <param name="context">Context to save the last oid.</param>
        /// <param name="dataTable">Data table queried.</param>
        /// <returns></returns>
        protected virtual Oid AddLastOid(IUPopulationContext context, DataTable dataTable)
        {
            if (dataTable != null)
            {
                Oid lLastOid = Adaptor.ServerConnection.GetLastOid(dataTable);
                return(AddLastOid(context, lLastOid));
            }

            return(null);
        }
Beispiel #5
0
        /// <summary>
        /// Retrieves all the existing instances
        /// </summary>
        /// <param name="context"></param>
        protected virtual void ExecuteCommandRetriveAll(IUPopulationContext context)
        {
            context.LastBlock = false;
            UpdateData(true);

            while (!context.LastBlock)
            {
                UpdateData(false);
            }
        }
Beispiel #6
0
        /// <summary>
        /// Solves the filter variables default values of a filter.
        /// </summary>
        /// <param name="context">Current context.</param>
        public static void ExecuteDefaultValues(IUPopulationContext context, string filterName)
        {
            // Parameter values
            object[] lParameters = new object[1];
            lParameters[0] = context;

            // Parameter types
            Type[] lTypes = new Type[1];
            lTypes[0] = typeof(IUPopulationContext);

            ExecuteMethod(GetFilterTypeName(context.ClassName, filterName), "ExecuteDefaultValues", lTypes, lParameters);
        }
Beispiel #7
0
        /// <summary>
        /// Solves the validation of filter variables values of a filter.
        /// </summary>
        /// <param name="context">Current context.</param>
        public static void ExecuteValidateValue(IUPopulationContext context)
        {
            // Parameter values
            object[] lParameters = new object[1];
            lParameters[0] = context;

            // Parameter types
            Type[] lTypes = new Type[1];
            lTypes[0] = typeof(IUPopulationContext);

            ExecuteMethod(GetFilterTypeName(context.ClassName, context.FilterNameSelected), "ExecuteValidateValue", lTypes, lParameters);
        }
Beispiel #8
0
        /// <summary>
        /// Solves the filter execution.
        /// </summary>
        /// <param name="context">Current context.</param>
        /// <returns>A DataTable with the instances searched.</returns>
        public static DataTable ExecuteQueryFilter(IUPopulationContext context)
        {
            // Parameter values
            object[] lParameters = new object[1];
            lParameters[0] = context;

            // Parameter types
            Type[] lTypes = new Type[1];
            lTypes[0] = typeof(IUPopulationContext);

            return(ExecuteMethod(GetFilterTypeName(context.ClassName, context.ExecutedFilter), "ExecuteQueryFilter", lTypes, lParameters) as DataTable);
        }
        /// <summary>
        /// Occurs when trigger presentation (magnifying glass) of the object-valued Argument is triggered.
        /// </summary>
        /// <param name="sender">Sender object.</param>
        /// <param name="e">TriggerEventArgs.</param>
        protected void HandleTriggerExecute(object sender, TriggerEventArgs e)
        {
            // Actualize the context.
            IUContext lContext = null;

            if (Parent != null)
            {
                Parent.UpdateContext();
                lContext = Parent.Context;
            }

            // Initialize class and service name.
            string lClassName     = string.Empty;
            string lContainerName = string.Empty;

            if (IsServiceField)
            {
                IUServiceController lServiceController = Parent as IUServiceController;

                if (lServiceController != null)
                {
                    lClassName     = lServiceController.ClassName;
                    lContainerName = lServiceController.Name;
                }
            }
            else if (IsFilterField)
            {
                IUFilterController lFilterController = Parent as IUFilterController;

                if (lFilterController != null)
                {
                    IUPopulationContext lPopContext = lFilterController.Parent.Context as IUPopulationContext;
                    lClassName     = lPopContext.ClassName;
                    lContainerName = lFilterController.Context.FilterName;
                    lContext       = lPopContext;
                }
            }
            // Create exchange information.
            ExchangeInfoSelectionForward lInfo =
                new ExchangeInfoSelectionForward(
                    Domain,
                    mSelectionScenario,
                    lClassName,
                    lContainerName,
                    Name,
                    MultiSelectionAllowed,
                    IsNavigationalFilter,
                    lContext);

            // Launch scenario.
            ScenarioManager.LaunchSelectionScenario(lInfo, this);
        }
Beispiel #10
0
        /// <summary>
        /// Configures the InteractionToolkit layer from the context values.
        /// </summary>
        /// <param name="context">IUPopulationContext used to configure the InteractionToolkit layer.</param>
        public void ConfigureByContext(IUPopulationContext context)
        {
            IUPopulationContext lContext = context as IUPopulationContext;

            // Order criteria selected
            if (lContext.OrderCriteriaNameSelected != string.Empty)
            {
                OrderCriteriaSelected = OrderCriterias[lContext.OrderCriteriaNameSelected];
            }

            // Default
            base.ConfigureByContext(context);
        }
        /// <summary>
        /// Initializes a new instance of the 'IUPopulationController' class.
        /// </summary>
        /// <param name="name">Name of the Interaction Unit.</param>
        /// <param name="alias">Alias of the Interaction Unit.</param>
        /// <param name="idXML">IdXML of the Interaction Unit.</param>
        /// <param name="context">Current context.</param>
        /// <param name="parent">Parent controller.</param>
        public IUPopulationController(string name, string alias, string idXML, IUPopulationContext context, IUController parent)
            : base()
        {
            Name = name;
            Alias = alias;
            IdXML = idXML;
            Context = context;
            Parent =  parent;

            Filters = new FilterControllerList();

            mOrderCriterias = new Dictionary<string, OrderCriteriaController>(StringComparer.CurrentCultureIgnoreCase);
        }
Beispiel #12
0
        /// <summary>
        /// Initializes a new instance of the 'IUPopulationController' class.
        /// </summary>
        /// <param name="name">Name of the Interaction Unit.</param>
        /// <param name="alias">Alias of the Interaction Unit.</param>
        /// <param name="idXML">IdXML of the Interaction Unit.</param>
        /// <param name="context">Current context.</param>
        /// <param name="parent">Parent controller.</param>
        public IUPopulationController(string name, string alias, string idXML, IUPopulationContext context, IUController parent)
            : base()
        {
            Name    = name;
            Alias   = alias;
            IdXML   = idXML;
            Context = context;
            Parent  = parent;

            Filters = new FilterControllerList();

            mOrderCriterias = new Dictionary <string, OrderCriteriaController>(StringComparer.CurrentCultureIgnoreCase);
        }
Beispiel #13
0
        /// <summary>
        /// Initializes a new instance of the 'IUFilterReportController' class.
        /// </summary>
        /// <param name="filterController">IUFilterController related.</param>
        /// <param name="reportFile">Path of the report file.</param>
        /// <param name="dataSetFile">Path of the associated dataset file.</param>
        /// <param name="printDirectly">Print ot Preview</param>
        public IUFilterReportController(IUFilterController filterController, string reportFile, string dataSetFile, bool printDirectly)
            : base(filterController.Name, filterController.Alias, filterController.IdXML, filterController.DefaultOrderCriteria, filterController.Context, filterController.Parent)
        {
            // Set report properties.
            mReportFile    = reportFile;
            mDataSetFile   = dataSetFile;
            mPrintDirectly = printDirectly;

            // Set the Population Context.
            mPopulationContext = (filterController.Parent.Context as IUPopulationContext);

            // Assign the filter variables values.
            this.InputFields = filterController.InputFields;
        }
        /// <summary>
        /// Initializes a new instance of the 'IUFilterReportController' class.
        /// </summary>
        /// <param name="filterController">IUFilterController related.</param>
        /// <param name="reportFile">Path of the report file.</param>
        /// <param name="dataSetFile">Path of the associated dataset file.</param>
        /// <param name="printDirectly">Print ot Preview</param>
        public IUFilterReportController(IUFilterController filterController, string reportFile, string dataSetFile, bool printDirectly)
            : base(filterController.Name, filterController.Alias, filterController.IdXML, filterController.DefaultOrderCriteria, filterController.Context, filterController.Parent)
        {
            // Set report properties.
            mReportFile = reportFile;
            mDataSetFile = dataSetFile;
            mPrintDirectly = printDirectly;

            // Set the Population Context.
            mPopulationContext = (filterController.Parent.Context as IUPopulationContext);

            // Assign the filter variables values.
            this.InputFields = filterController.InputFields;
        }
Beispiel #15
0
        /// <summary>
        /// Execute a <b>Query Related</b> or <b>Query Populaton</b> depending of exchange type.
        /// <b>ExchangeType.Navigation</b> execute Query Related.
        /// <b>ExchangeType.Action or SelectinForward</b> execute Query Population.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        protected virtual DataTable GetQueryPopulation(IUPopulationContext context)
        {
            DataTable lData = null;

            // Depending on the ExchangeInfo Type
            switch (Context.ExchangeInformation.ExchangeType)
            {
            case ExchangeType.Navigation:
                try
                {
                    // Logic API call.
                    lData = Logic.ExecuteQueryRelated(context);
                }
                catch (Exception logicException)
                {
                    ScenarioManager.LaunchErrorScenario(logicException);
                }
                break;

            case ExchangeType.Action:
            case ExchangeType.SelectionForward:
                // If this Population doesn't contain filters, search all population
                if (Filters.Count == 0)
                {
                    try
                    {
                        // Logic API call.
                        lData = Logic.ExecuteQueryPopulation(context);
                    }
                    catch (Exception logicException)
                    {
                        ScenarioManager.LaunchErrorScenario(logicException);
                    }
                }
                else
                {
                    // If there are no filters executed, set the last block true to do not
                    //  retrieve all the instances
                    this.Context.LastBlock = true;
                }
                break;

            default:
                lData = null;
                break;
            }

            return(lData);
        }
        /// <summary>
        /// Save the information in user preferences
        /// </summary>
        protected override void SaveScenarioInfoInPrefecences()
        {
            // For population interaction unit
            IUQueryController queryController = Parent as IUQueryController;

            if (queryController == null)
            {
                return;
            }

            string nameInPreferences       = Context.ClassName + ":" + queryController.Name;
            IUPopulationContext popContext = Context as IUPopulationContext;

            Logic.UserPreferences.SavePopulationInfo(nameInPreferences, popContext.BlockSize, CurrentDisplaySet.Name, DisplaySetList);
        }
Beispiel #17
0
        /// <summary>
        /// Execute a query to retrieve a set of instances, without any condition.
        /// </summary>
        /// <param name="context">Current context.</param>
        /// <returns>A DataTable with the instances searched.</returns>
        public static DataTable ExecuteQueryPopulation(IUPopulationContext context)
        {
            // Last Oid
            RevisionPasajeroOid lLastOid = null;
            if (context.LastOids.Count > 0)
            {
                lLastOid = new RevisionPasajeroOid(context.LastOids.Peek());
            }

            // Last Block
            bool lLastBlock = true;
            NavigationalFiltering navigationalFiltering = NavigationalFiltering.GetNavigationalFiltering(context);
            DataTable lDataTable = ExecuteQueryRelated(context.Agent, new Dictionary<string, Oid>(), context.DisplaySetAttributes, context.OrderCriteriaNameSelected, navigationalFiltering, lLastOid, context.BlockSize, ref lLastBlock);
            context.LastBlock = lLastBlock;

            return lDataTable;
        }
Beispiel #18
0
        /// <summary>
        /// Execute a query to retrieve a set of instances, without any condition.
        /// </summary>
        /// <param name="context">Current context.</param>
        /// <returns>A DataTable with the instances searched.</returns>
        public static DataTable ExecuteQueryPopulation(IUPopulationContext context)
        {
            // Last Oid
            PasajeroOid lLastOid = null;

            if (context.LastOids.Count > 0)
            {
                lLastOid = new PasajeroOid(context.LastOids.Peek());
            }

            // Last Block
            bool lLastBlock = true;
            NavigationalFiltering navigationalFiltering = NavigationalFiltering.GetNavigationalFiltering(context);
            DataTable             lDataTable            = ExecuteQueryRelated(context.Agent, new Dictionary <string, Oid>(), context.DisplaySetAttributes, context.OrderCriteriaNameSelected, navigationalFiltering, lLastOid, context.BlockSize, ref lLastBlock);

            context.LastBlock = lLastBlock;

            return(lDataTable);
        }
Beispiel #19
0
        /// <summary>
        /// Creates the specific IUPopulationController of the 'PIU_NaveNodriza' IU pattern.
        /// </summary>
        /// <param name="exchangeInfo">IUPopulationContext reference.</param>
        /// <returns>Specific IUPopulationController of the 'PIU_NaveNodriza' IU pattern.</returns>
        public static IUPopulationController Population_PIU_NaveNodriza(ExchangeInfo exchangeInfo)
        {
            IUPopulationContext lContext = new IUPopulationContext(exchangeInfo, "NaveNodriza", "PIU_NaveNodriza");

            // Block size.
            lContext.BlockSize = 40;
            IUPopulationController lController = new IUPopulationController("PIU_NaveNodriza", "PIU_NaveNodriza", "Clas_1347649273856884UIPobCl_1_Alias", lContext, null);

            // Action _Auto_.
            lController.Action = NaveNodriza.Action__Auto_(lController);
            // DisplaySet '_Auto_'.
            DisplaySetByBlocksController lDisplaySetByBlocksController = new DisplaySetByBlocksController(NaveNodriza.DisplaySet__Auto_(lController));

            lController.DisplaySet = lDisplaySetByBlocksController;
            // Get user preferences for this scenario.
            lController.SetPreferences(Logic.UserPreferences.GetScenarioPrefs("NaveNodriza:PIU_NaveNodriza") as PopulationPrefs);

            return(lController);
        }
        /// <summary>
        /// Copy constructor
        /// </summary>
        /// <param name="nodeToBeCopied"></param>
        /// <param name="newExchangeInfo"></param>
        public TreeNodeController(TreeNodeController nodeToBeCopied, ExchangeInfoNavigation newExchangeInfo)
        {
            mRecursiveNodes   = new List <TreeNodeController>();
            mParentNodeId     = nodeToBeCopied.ParentNodeId;
            mNodeId           = nodeToBeCopied.NodeId;
            mIsMainMaster     = false;
            mShowGroupingNode = nodeToBeCopied.ShowGroupingNode;
            Filters           = new FilterControllerList();
            mQueryContext     = new IUPopulationContext(newExchangeInfo, nodeToBeCopied.QueryContext.ClassName, "");
            mQueryContext.DisplaySetAttributes = nodeToBeCopied.QueryContext.DisplaySetAttributes;
            mOriginalNode = nodeToBeCopied;
            IUPopulationContext lPopContext = nodeToBeCopied.QueryContext as IUPopulationContext;

            if (lPopContext != null)
            {
                ((IUPopulationContext)QueryContext).BlockSize = lPopContext.BlockSize;
            }
            mShowInTree  = nodeToBeCopied.ShowInTree;
            mFinalNodeID = nodeToBeCopied.FinalNodeID;
        }
Beispiel #21
0
        /// <summary>
        /// Creates the specific IUPopulationController of the 'PIU_Aeronave' IU pattern.
        /// </summary>
        /// <param name="exchangeInfo">IUPopulationContext reference.</param>
        /// <returns>Specific IUPopulationController of the 'PIU_Aeronave' IU pattern.</returns>
        public static IUPopulationController Population_PIU_Aeronave(ExchangeInfo exchangeInfo)
        {
            IUPopulationContext lContext = new IUPopulationContext(exchangeInfo, "Aeronave", "PIU_Aeronave");

            // Block size.
            lContext.BlockSize = 40;
            IUPopulationController lController = new IUPopulationController("PIU_Aeronave", "Aeronave", "Clas_1348178411520734UIPobCl_1_Alias", lContext, null);

            // Action _Auto_.
            lController.Action = Aeronave.Action__Auto_(lController);
            // Navigation _Auto_.
            lController.Navigation = Aeronave.Navigation__Auto_(lController);
            // DisplaySet '_Auto_'.
            DisplaySetByBlocksController lDisplaySetByBlocksController = new DisplaySetByBlocksController(Aeronave.DisplaySet__Auto_(lController));

            lController.DisplaySet = lDisplaySetByBlocksController;
            // Get user preferences for this scenario.
            lController.SetPreferences(Logic.UserPreferences.GetScenarioPrefs("Aeronave:PIU_Aeronave") as PopulationPrefs);

            return(lController);
        }
Beispiel #22
0
        /// <summary>
        /// Creates the specific IUPopulationController of the '_Auto_' IU pattern.
        /// </summary>
        /// <param name="exchangeInfo">IUPopulationContext reference.</param>
        /// <returns>Specific IUPopulationController of the '_Auto_' IU pattern.</returns>
        public static IUPopulationController Population__Auto_(ExchangeInfo exchangeInfo)
        {
            IUPopulationContext lContext = new IUPopulationContext(exchangeInfo, "Revision", "_Auto_");

            // Block size.
            lContext.BlockSize = 40;
            IUPopulationController lController = new IUPopulationController("_Auto_", "Revision", "Clas_1348178542592347UIPobCl_Auto_Alias", lContext, null);

            // Action _Auto_.
            lController.Action = Revision.Action__Auto_(lController);
            // Navigation _Auto_.
            lController.Navigation = Revision.Navigation__Auto_(lController);
            // DisplaySet '_Auto_'.
            DisplaySetByBlocksController lDisplaySetByBlocksController = new DisplaySetByBlocksController(Revision.DisplaySet__Auto_(lController));

            lDisplaySetByBlocksController.DisplaySetList.Add(Revision.DisplaySet__Auto_(lController).CurrentDisplaySet);
            lController.DisplaySet = lDisplaySetByBlocksController;
            // Get user preferences for this scenario.
            lController.SetPreferences(Logic.UserPreferences.GetScenarioPrefs("Revision:_Auto_") as PopulationPrefs);

            return(lController);
        }
Beispiel #23
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private DataTable GetNextData(IUPopulationContext context)
        {
            DataTable lData = null;

            // When is navigation, must have Seletected, Oids if not showed populations must be nothing.
            if (ExchangeInfo.IsNavigation(context.ExchangeInformation))
            {
                if (ExchangeInfo.HasSelectedOids(context.ExchangeInformation))
                {
                    lData = GetQuery(context);
                }
                else
                {
                    this.Context.LastBlock = true;
                }
            }
            else
            {
                lData = GetQuery(context);
            }

            return(lData);
        }
Beispiel #24
0
        /// <summary>
        /// Execute a Query Filter or Query Population depending if has <b>FilterNameSelected</b> or not.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        protected virtual DataTable GetQuery(IUPopulationContext context)
        {
            DataTable lData = null;

            // If one filters is selected. use the Filter search
            if (Context.ExecutedFilter != string.Empty)
            {
                try
                {
                    // Logic API call.
                    lData = Logic.ExecuteQueryFilter(Context);
                }
                catch (Exception logicException)
                {
                    ScenarioManager.LaunchErrorScenario(logicException);
                }
            }
            else
            {
                lData = GetQueryPopulation(context);
            }

            return(lData);
        }
        /// <summary>
        /// Query a number of blocks form the server.
        /// </summary>
        /// <param name="context"></param>
        /// <param name="numBlocks"></param>
        private DataTable GetDataTableBlocks(IUPopulationContext context, int numBlocks)
        {
            DataTable lDataResult = null;
            for (int iaux = 0; iaux < numBlocks; iaux++)
            {
                // Get Data Query.
                DataTable lDataAux = GetQuery(Context);
                AddLastOid(Context, lDataAux);

                if (lDataAux != null)
                {
                    if (lDataResult == null)
                    {
                        lDataResult = lDataAux;
                    }
                    else
                    {
                        lDataResult.Merge(lDataAux);
                    }
                }
            }

            return lDataResult;
        }
        /// <summary>
        /// Execute a <b>Query Related</b> or <b>Query Populaton</b> depending of exchange type.
        /// <b>ExchangeType.Navigation</b> execute Query Related.
        /// <b>ExchangeType.Action or SelectinForward</b> execute Query Population.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        protected virtual DataTable GetQueryPopulation(IUPopulationContext context)
        {
            DataTable lData = null;

            // Depending on the ExchangeInfo Type
            switch (Context.ExchangeInformation.ExchangeType)
            {
                case ExchangeType.Navigation:
                    try
                    {
                        // Logic API call.
                        lData = Logic.ExecuteQueryRelated(context);
                    }
                    catch (Exception logicException)
                    {
                        ScenarioManager.LaunchErrorScenario(logicException);
                    }
                    break;
                case ExchangeType.Action:
                case ExchangeType.SelectionForward:
                    // If this Population doesn't contain filters, search all population
                    if (Filters.Count == 0)
                    {
                        try
                        {
                            // Logic API call.
                            lData = Logic.ExecuteQueryPopulation(context);
                        }
                        catch (Exception logicException)
                        {
                            ScenarioManager.LaunchErrorScenario(logicException);
                        }
                    }
                    else
                    {
                        // If there are no filters executed, set the last block true to do not
                        //  retrieve all the instances
                        this.Context.LastBlock = true;
                    }
                    break;
                default:
                    lData = null;
                    break;
            }

            return lData;
        }
        /// <summary>
        /// Execute a Query Filter or Query Population depending if has <b>FilterNameSelected</b> or not.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        protected virtual DataTable GetQuery(IUPopulationContext context)
        {
            DataTable lData = null;

            // If one filters is selected. use the Filter search
            if (Context.ExecutedFilter != string.Empty)
            {
                try
                {
                    // Logic API call.
                    lData = Logic.ExecuteQueryFilter(Context);
                }
                catch (Exception logicException)
                {
                    ScenarioManager.LaunchErrorScenario(logicException);
                }
            }
            else
            {
                lData = GetQueryPopulation(context);
            }

            return lData;
        }
        /// <summary>
        /// Retrieves all the existing instances
        /// </summary>
        /// <param name="context"></param>
        protected virtual void ExecuteCommandRetriveAll(IUPopulationContext context)
        {
            context.LastBlock = false;
            UpdateData(true);

            while (!context.LastBlock)
            {
                UpdateData(false);
            }
        }
Beispiel #29
0
        /// <summary>
        /// Execute a query related with other instance.
        /// </summary>
        /// <param name="context">Current context.</param>
        /// <returns>A DataTable with the instances searched.</returns>
        public static DataTable ExecuteQueryRelated(IUQueryContext context)
        {
            try
            {
                ExchangeInfo lExchangeInfo = context.ExchangeInformation;

                if (lExchangeInfo.ExchangeType != ExchangeType.Navigation || lExchangeInfo.SelectedOids.Count == 0)
                {
                    return(null);
                }

                IUPopulationContext lIUContext = context as IUPopulationContext;
                int blockSize = 1;
                if (lIUContext != null)
                {
                    blockSize = lIUContext.BlockSize;
                }
                ExchangeInfoNavigation lNavInfo = lExchangeInfo as ExchangeInfoNavigation;
                // Specific case. No role name indicates Query by Instance.
                if (lNavInfo.RolePath == "")
                {
                    if (lIUContext != null)
                    {
                        lIUContext.LastBlock = true;
                    }

                    PasajeroOid lOidInstance = new PasajeroOid(lNavInfo.SelectedOids[0]);
                    return(ExecuteQueryInstance(context.Agent, lOidInstance, context.DisplaySetAttributes));
                }

                // Get link items.
                Oid lOid = lNavInfo.SelectedOids[0];
                Dictionary <string, Oid> lLinkItems = new Dictionary <string, Oid>(StringComparer.CurrentCultureIgnoreCase);
                lLinkItems.Add(lNavInfo.RolePath, lOid);

                bool        lLastBlock     = true;
                PasajeroOid lLastOid       = null;
                string      lOrderCriteria = string.Empty;

                // Get population members.
                if (lIUContext != null)
                {
                    if (lIUContext.LastOid != null)
                    {
                        lLastOid = new PasajeroOid(lIUContext.LastOid);
                    }
                    lOrderCriteria = lIUContext.OrderCriteriaNameSelected;
                }
                NavigationalFiltering navigationalFiltering = NavigationalFiltering.GetNavigationalFiltering(context);
                DataTable             lDataTable            = ExecuteQueryRelated(context.Agent, lLinkItems, context.DisplaySetAttributes, lOrderCriteria, navigationalFiltering, lLastOid, blockSize, ref lLastBlock);

                if (lIUContext != null)
                {
                    lIUContext.LastBlock = lLastBlock;
                }

                return(lDataTable);
            }
            catch (Exception e)
            {
                ScenarioManager.LaunchErrorScenario(e);
                return(null);
            }
        }
Beispiel #30
0
        /// <summary>
        /// Creates the specific IUPopulationController of the 'PIU_NaveNodriza' IU pattern.
        /// </summary>
        /// <param name="exchangeInfo">IUPopulationContext reference.</param>
        /// <returns>Specific IUPopulationController of the 'PIU_NaveNodriza' IU pattern.</returns>
        public static IUPopulationController Population_PIU_NaveNodriza(ExchangeInfo exchangeInfo)
        {
            IUPopulationContext lContext = new IUPopulationContext(exchangeInfo,"NaveNodriza", "PIU_NaveNodriza");
            // Block size.
            lContext.BlockSize = 40;
            IUPopulationController lController = new IUPopulationController("PIU_NaveNodriza", "PIU_NaveNodriza", "Clas_1347649273856884UIPobCl_1_Alias", lContext, null);

            // Action _Auto_.
            lController.Action = NaveNodriza.Action__Auto_(lController);
            // DisplaySet '_Auto_'.
            DisplaySetByBlocksController lDisplaySetByBlocksController = new DisplaySetByBlocksController(NaveNodriza.DisplaySet__Auto_(lController));
            lController.DisplaySet = lDisplaySetByBlocksController;
            // Get user preferences for this scenario.
            lController.SetPreferences(Logic.UserPreferences.GetScenarioPrefs("NaveNodriza:PIU_NaveNodriza") as PopulationPrefs);

            return lController;
        }
        /// <summary>
        /// Configures the InteractionToolkit layer from the context values.
        /// </summary>
        /// <param name="context">IUPopulationContext used to configure the InteractionToolkit layer.</param>
        public void ConfigureByContext(IUPopulationContext context)
        {
            IUPopulationContext lContext = context as IUPopulationContext;

            // Order criteria selected
            if (lContext.OrderCriteriaNameSelected != string.Empty)
            {
                OrderCriteriaSelected = OrderCriterias[lContext.OrderCriteriaNameSelected];
            }

            // Default
            base.ConfigureByContext(context);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private DataTable GetNextData(IUPopulationContext context)
        {
            DataTable lData = null;
            // When is navigation, must have Seletected, Oids if not showed populations must be nothing.
            if (ExchangeInfo.IsNavigation(context.ExchangeInformation))
            {
                if (ExchangeInfo.HasSelectedOids(context.ExchangeInformation))
                {
                    lData = GetQuery(context);
                }
                else
                {
                    this.Context.LastBlock = true;
                }
            }
            else
            {
                lData = GetQuery(context);
            }

            return lData;
        }
Beispiel #33
0
        /// <summary>
        /// Solves the validation of filter variables values of a filter.
        /// </summary>
        /// <param name="context">Current context.</param>
        public static void ExecuteValidateValue(IUPopulationContext context)
        {
            // Parameter values
            object[] lParameters = new object[1];
            lParameters[0] = context;

            // Parameter types
            Type[] lTypes = new Type[1];
            lTypes[0] = typeof(IUPopulationContext);

            ExecuteMethod(GetFilterTypeName(context.ClassName, context.FilterNameSelected), "ExecuteValidateValue", lTypes, lParameters);
        }
        /// <summary>
        /// Add to Stack of last Oid queried.
        /// </summary>
        /// <param name="context">Context to save the last oid.</param>
        /// <param name="dataTable">Data table queried.</param>
        /// <returns></returns>
        protected virtual Oid AddLastOid(IUPopulationContext context, DataTable dataTable)
        {
            if (dataTable != null)
            {
                Oid lLastOid = Adaptor.ServerConnection.GetLastOid(dataTable);
                return AddLastOid(context, lLastOid);
            }

            return null;
        }
Beispiel #35
0
        /// <summary>
        /// Creates the specific IUPopulationController of the 'PIU_Pasajero' IU pattern.
        /// </summary>
        /// <param name="exchangeInfo">IUPopulationContext reference.</param>
        /// <returns>Specific IUPopulationController of the 'PIU_Pasajero' IU pattern.</returns>
        public static IUPopulationController Population_PIU_Pasajero(ExchangeInfo exchangeInfo)
        {
            IUPopulationContext lContext = new IUPopulationContext(exchangeInfo,"Pasajero", "PIU_Pasajero");
            // Block size.
            lContext.BlockSize = 40;
            IUPopulationController lController = new IUPopulationController("PIU_Pasajero", "Pasajero", "Clas_1348178542592658UIPobCl_1_Alias", lContext, null);

            // Action _Auto_.
            lController.Action = Pasajero.Action__Auto_(lController);
            // Navigation _Auto_.
            lController.Navigation = Pasajero.Navigation__Auto_(lController);
            // DisplaySet '_Auto_'.
            DisplaySetByBlocksController lDisplaySetByBlocksController = new DisplaySetByBlocksController(Pasajero.DisplaySet__Auto_(lController));
            lController.DisplaySet = lDisplaySetByBlocksController;
            // Get user preferences for this scenario.
            lController.SetPreferences(Logic.UserPreferences.GetScenarioPrefs("Pasajero:PIU_Pasajero") as PopulationPrefs);

            return lController;
        }
 /// <summary>
 /// Add to Stack of last Oid queried.
 /// </summary>
 /// <param name="context">Context to save the last oid.</param>
 /// <param name="lastOid">last Oid.</param>
 /// <returns></returns>
 protected virtual Oid AddLastOid(IUPopulationContext context, Oid lastOid)
 {
     if (lastOid != null)
     {
         context.LastOids.Push(lastOid);
     }
     return lastOid;
 }
Beispiel #37
0
        /// <summary>
        /// Creates the specific IUPopulationController of the '_Auto_' IU pattern.
        /// </summary>
        /// <param name="exchangeInfo">IUPopulationContext reference.</param>
        /// <returns>Specific IUPopulationController of the '_Auto_' IU pattern.</returns>
        public static IUPopulationController Population__Auto_(ExchangeInfo exchangeInfo)
        {
            IUPopulationContext lContext = new IUPopulationContext(exchangeInfo,"Revision", "_Auto_");
            // Block size.
            lContext.BlockSize = 40;
            IUPopulationController lController = new IUPopulationController("_Auto_", "Revision", "Clas_1348178542592347UIPobCl_Auto_Alias", lContext, null);

            // Action _Auto_.
            lController.Action = Revision.Action__Auto_(lController);
            // Navigation _Auto_.
            lController.Navigation = Revision.Navigation__Auto_(lController);
            // DisplaySet '_Auto_'.
            DisplaySetByBlocksController lDisplaySetByBlocksController = new DisplaySetByBlocksController(Revision.DisplaySet__Auto_(lController));
            lDisplaySetByBlocksController.DisplaySetList.Add(Revision.DisplaySet__Auto_(lController).CurrentDisplaySet);
            lController.DisplaySet = lDisplaySetByBlocksController;
            // Get user preferences for this scenario.
            lController.SetPreferences(Logic.UserPreferences.GetScenarioPrefs("Revision:_Auto_") as PopulationPrefs);

            return lController;
        }
Beispiel #38
0
        /// <summary>
        /// Obtains the NavigationalFiltering contained in a IUContext.
        /// </summary>
        /// <param name="context">Context the NavigationalFiltering is obtained from.</param>
        /// <returns>NavigationalFiltering contained in the context.</returns>
        public static NavigationalFiltering GetNavigationalFiltering(IUContext context)
        {
            NavigationalFiltering lResult = null;

            if (HasNavigationalFiltering(context))
            {
                switch (context.ExchangeInformation.ExchangeType)
                {
                case ExchangeType.Navigation:
                {
                    ExchangeInfoNavigation lExchangeInfo = context.ExchangeInformation as ExchangeInfoNavigation;
                    lResult = new NavigationalFiltering(
                        new SelectedObjectNavigationFiltering(
                            lExchangeInfo.NavigationalFilterIdentity,
                            lExchangeInfo.SelectedOids[0]));
                }
                break;

                case ExchangeType.Action:
                {
                    ExchangeInfoAction lExchangeInfo = context.ExchangeInformation as ExchangeInfoAction;
                    if ((lExchangeInfo.SelectedOids == null) || (lExchangeInfo.SelectedOids.Count == 0) || (lExchangeInfo.SelectedOids[0] == null))
                    {
                        IUServiceContext lServiceContext = context.ExchangeInformation.Previous as IUServiceContext;


                        ArgumentsList lArguments = ArgumentsList.GetArgumentsFromContext(lServiceContext);
                        lResult = new NavigationalFiltering(
                            new ServiceIUNavigationFiltering(
                                lExchangeInfo.NavigationalFilterIdentity,
                                lArguments));
                    }
                    else
                    {
                        lResult = new NavigationalFiltering(
                            new SelectedObjectNavigationFiltering(
                                lExchangeInfo.NavigationalFilterIdentity,
                                lExchangeInfo.SelectedOids[0]));
                    }
                }
                break;

                case ExchangeType.SelectionForward:
                {
                    ExchangeInfoSelectionForward lExchangeInfo = context.ExchangeInformation as ExchangeInfoSelectionForward;
                    ArgumentsList       lArguments             = null;
                    IUServiceContext    lServiceContext        = null;
                    IUPopulationContext lPopulationContext     = null;
                    string lClassName = string.Empty;

                    // context is of IUServiceContext type.
                    if (context.ExchangeInformation.Previous.ContextType == ContextType.Service)
                    {
                        lServiceContext = context.ExchangeInformation.Previous as IUServiceContext;
                        lArguments      = ArgumentsList.GetArgumentsFromContext(lServiceContext);
                        lClassName      = lServiceContext.ClassName;
                        if (string.Compare(lClassName, "Global", true) == 0)
                        {
                            lClassName = string.Empty;
                        }

                        lResult = new NavigationalFiltering(
                            new ArgumentNavigationFiltering(
                                lClassName,
                                lServiceContext.ServiceName,
                                lServiceContext.SelectedInputField,
                                lArguments));
                    }
                    // context is of lPopulationContext type.
                    if (context.ExchangeInformation.Previous.ContextType == ContextType.Population)
                    {
                        lPopulationContext = context.ExchangeInformation.Previous as IUPopulationContext;
                        lClassName         = lPopulationContext.ClassName;
                        string lFilterName         = lExchangeInfo.ServiceName;
                        string lFilterVariableName = lExchangeInfo.ArgumentName;
                        lArguments = ArgumentsList.GetArgumentsFromContext(lPopulationContext.Filters[lFilterName]);

                        lResult = new NavigationalFiltering(
                            new FilterVariableNavigationFiltering(
                                lClassName,
                                lFilterName,
                                lFilterVariableName,
                                lArguments));
                    }
                }
                break;

                case ExchangeType.SelectionBackward:
                    break;

                default:
                    break;
                }
            }
            return(lResult);
        }
Beispiel #39
0
        /// <summary>
        /// Execute a query to retrieve a set of instances, without any condition.
        /// </summary>
        /// <param name="context">Current context.</param>
        /// <returns>A DataTable with the instances searched.</returns>
        public static DataTable ExecuteQueryPopulation(IUPopulationContext context)
        {
            // Parameter values
            object[] lParameters = new object[1];
            lParameters[0] = context;

            // Parameter types
            Type[] lTypes = new Type[1];
            lTypes[0] = typeof(IUPopulationContext);

            return ExecuteMethod(GetClassTypeName(context.ClassName), "ExecuteQueryPopulation", lTypes, lParameters) as DataTable;
        }
Beispiel #40
0
        /// <summary>
        /// Solves the filter variables default values of a filter.
        /// </summary>
        /// <param name="context">Current context.</param>
        public static void ExecuteDefaultValues(IUPopulationContext context, string filterName)
        {
            // Parameter values
            object[] lParameters = new object[1];
            lParameters[0] = context;

            // Parameter types
            Type[] lTypes = new Type[1];
            lTypes[0] = typeof(IUPopulationContext);

            ExecuteMethod(GetFilterTypeName(context.ClassName, filterName), "ExecuteDefaultValues", lTypes, lParameters);
        }