private void MaintainCountofFiveForQueries(OMQuery query, ConnectionDetails connection)
        {
            List <OMQuery> qListForClass = FetchQueriesForAClass(query.BaseClass);

            if (qListForClass != null)
            {
                bool check = false;
                if (qListForClass.Any(qry => qry.QueryString == query.QueryString))
                {
                    check = true;
                    OMQuery result = connection.QueryList.Find(bk => bk.QueryString == query.QueryString);
                    connection.QueryList.Remove(result);
                    DeleteQuery(result);
                }
                if (qListForClass.Count >= 5)

                {
                    if (!check)
                    {
                        OMQuery q      = qListForClass[qListForClass.Count - 1];
                        OMQuery result = connection.QueryList.Find(bk => bk.QueryString == q.QueryString);
                        connection.QueryList.Remove(result);
                        DeleteQuery(result);
                    }
                }
            }
        }
 internal void AddQueryToList(OMQuery query)
 {
     try
     {
         long id = ChkIfRecentConnIsInDb();
         if (id > 0)
         {
             ConnectionDetails temprc = Db4oClient.OMNConnection.Ext().GetByID(id) as ConnectionDetails;
             Db4oClient.OMNConnection.Ext().Activate(temprc, 5);
             MaintainCountofTwentyforQueries(temprc);
             MaintainCountofFiveForQueries(query, temprc);
             if (temprc != null)
             {
                 temprc.Timestamp = DateTime.Now;
                 temprc.QueryList.Add(query);
             }
             Db4oClient.OMNConnection.Ext().Store(temprc, 5);
             Db4oClient.OMNConnection.Commit();
         }
     }
     catch (Exception oEx)
     {
         LoggingHelper.HandleException(oEx);
     }
     finally
     {
         Db4oClient.CloseRecentConnectionFile();
     }
 }
Beispiel #3
0
    	public static long[] ExecuteQuery(OMQuery query)
        {
            QueryParser qParser = new QueryParser(query);
            IObjectSet objSet = qParser.ExecuteOMQueryList();
            
			return objSet != null ? objSet.Ext().GetIDs() : null;
        }
Beispiel #4
0
    	public static long[] ExecuteQuery(OMQuery query)
        {
            QueryParser qParser = new QueryParser(query);
            IObjectSet objSet = qParser.ExecuteOMQueryList();
            
			return objSet != null ? objSet.Ext().GetIDs() : null;
        }
Beispiel #5
0
		private void LoadData()
		{
			masterView.Rows.Clear();
			detailsTabs.Items.Clear();
			detailsTabs.SelectedItem = null;

			Hashtable hAttributes = new Hashtable();
			try
			{
				omQuery = (OMQuery) Helper.OMResultedQuery[ClassName];
				if (omQuery != null)
				{
					hAttributes = omQuery.AttributeList;
				}
				PagingData pagingData = new PagingData(m_pagingStartIndex);

				if (objectid != null)
				{
					lstObjIdLong = new List<long>(objectid);
					pagingData.ObjectId = lstObjIdLong;

					const int pageNumber = m_pagingStartIndex + 1;
					lblPageCount.Text = pagingData.GetPageCount().ToString();
					txtCurrentPage.Text = pageNumber.ToString();
					labelNoOfObjects.Text = pagingData.ObjectId.Count.ToString();
					if (lstObjIdLong.Count > 0)
					{
						List<Hashtable> hashListResult = AssemblyInspectorObject.DataPopulation.ReturnQueryResults(pagingData, true,
						                                                                                              omQuery.BaseClass,
						                                                                                              omQuery.
						                                                                                              	AttributeList);
						masterView.SetDataGridColumnHeader(hashListResult, ClassName, omQuery.AttributeList);
						masterView.SetDatagridRows(hashListResult, ClassName, hAttributes, 1);
						ListofModifiedObjects.AddDatagrid(ClassName, masterView);
					}

					if (pagingData.ObjectId.Count <= PagingData.PAGE_SIZE)
					{
						btnPrevious.Enabled = false;
						btnFirst.Enabled = false;
						btnNext.Enabled = false;
						btnLast.Enabled = false;
					}
					else
					{
						btnPrevious.Enabled = false;
						btnFirst.Enabled = false;
						btnNext.Enabled = true;
						btnLast.Enabled = true;
					}

				}
				ApplyReadonlyCondition(OMEInteraction.GetCurrentConnParams().ConnectionReadOnly);
			}
			catch (Exception oEx)
			{
				LoggingHelper.ShowMessage(oEx);
			}
		}
        private static void DeleteQuery(OMQuery query)
        {
            List <OMQuery> queries = (from OMQuery q in Db4oClient.OMNConnection where q.QueryString == query.QueryString select q).ToList();

            if (queries.Count <= 0)
            {
                return;
            }
            Db4oClient.OMNConnection.Delete(queries[0]);
            Db4oClient.OMNConnection.Commit();
        }
Beispiel #7
0
		private void SaveIndex()
		{
			try
			{
				SaveIndexClass saveIndexInstance = new SaveIndexClass(Helper.ClassName);
				
				foreach (DataGridViewRow row in dbGridViewProperties.Rows)
				{
					bool boolValue = Convert.ToBoolean(row.Cells[2].Value);
					saveIndexInstance.Fieldname.Add(row.Cells[0].Value.ToString());
					saveIndexInstance.Indexed.Add(boolValue);
				}

				CloseQueryResultToolWindows();
				
				ConnParams conparam = dbInteraction.GetCurrentRecentConnection().ConnParam;
				dbInteraction.CloseCurrDb();
				saveIndexInstance.SaveIndex();

				RecentQueries currRecentConnection = new RecentQueries(conparam);
				Db4oClient.conn = conparam;  
				RecentQueries tempRc = currRecentConnection.ChkIfRecentConnIsInDb();
				if (tempRc != null)
					currRecentConnection = tempRc;
				currRecentConnection.Timestamp = DateTime.Now;
				dbInteraction.ConnectoToDB(currRecentConnection);
				dbInteraction.SetCurrentRecentConnection(currRecentConnection);

				//Only if following line is added the index is saved.
				OMQuery omQuery = new OMQuery(saveIndexInstance.Classname , DateTime.Now);
				long[] objectid = dbInteraction.ExecuteQueryResults(omQuery);

				if (ObjectBrowser.Instance.ToolStripButtonAssemblyView.Checked)
					ObjectBrowser.Instance.DbtreeviewObject.FindNSelectNode(ObjectBrowser.Instance.DbAssemblyTreeView.Nodes[0], saveIndexInstance.Classname, ObjectBrowser.Instance.DbAssemblyTreeView);
				else
					ObjectBrowser.Instance.DbtreeviewObject.FindNSelectNode(ObjectBrowser.Instance.DbtreeviewObject.Nodes[0], saveIndexInstance.Classname, ObjectBrowser.Instance.DbtreeviewObject);

				tabStripProperties.SelectedItem = tabItemClassProperties;
				MessageBox.Show("Index Saved Successfully!", Helper.GetResourceString(Constants.PRODUCT_CAPTION), MessageBoxButtons.OK);
			}
			catch (Exception oEx)
			{
				LoggingHelper.ShowMessage(oEx);
			}
		}
        private void MaintainCountofTwentyforQueries(ConnectionDetails connection)
        {
            List <OMQuery> qList = FetchAllQueries();

            if (qList.Count < 20)
            {
                return;
            }
            OMQuery q = qList[qList.Count - 1];

            qList.RemoveAt(qList.Count - 1);
            foreach (OMQuery qry1 in connection.QueryList.Where(qry1 => q.QueryString.Equals(qry1.QueryString)))
            {
                connection.QueryList.Remove(qry1);
                DeleteQuery(qry1);
                break;
            }
        }
Beispiel #9
0
        public void deleteRecentQueriesForAConnection()
        {
            List <OMQuery> qList  = new List <OMQuery>();
            IObjectSet     objSet = null;

            try
            {
                container = Db4oClient.RecentConn;
                IQuery query = container.Query();
                query.Constrain(typeof(RecentQueries));
                query.Descend("m_connParam").Descend("m_connection").Constrain(m_connParam.Connection);
                objSet = query.Execute();
                if (objSet != null)
                {
                    RecentQueries recQueries = (RecentQueries)objSet.Next();

                    for (int i = 0; i < recQueries.QueryList.Count; i++)
                    {
                        OMQuery q = recQueries.m_queryList[0];
                        if (q != null)
                        {
                            // m_queryList.Remove(q);
                            container.Delete(q);
                        }
                    }
                    recQueries.m_queryList.Clear();
                    recQueries.m_TimeOfCreation = Sharpen.Runtime.CurrentTimeMillis();
                    container.Ext().Store(recQueries, 5);
                    container.Commit();
                }
            }
            catch (Exception oEx)
            {
                LoggingHelper.HandleException(oEx);
            }
        }
 public long[] ExecuteQueryResults(OMQuery omQuery)
 {
     return(RunQuery.ExecuteQuery(omQuery));
 }
Beispiel #11
0
		public static List<Hashtable> ExecuteQueryResults(OMQuery omQuery, PagingData pgData, bool refresh, Hashtable attributeList)
		{
			RunQuery.ExecuteQuery(omQuery);
			return ReturnQueryResults(pgData, refresh, omQuery.BaseClass, attributeList);
		}
Beispiel #12
0
		/// <summary>
		/// Set the query to current connection
		/// </summary>
		/// <param name="query"></param>
		private static void AddQueryToCurrentConnection(OMQuery query)
		{
            try
            {
                if (!string.IsNullOrEmpty(query.QueryString))
                    OMEInteraction.AddQueriesToList(query);
            }
            catch (Exception oEx)
            {
                LoggingHelper.ShowMessage(oEx);
            }
		}
Beispiel #13
0
		/// <summary>
		/// Poulates Query in Query Result pane/recent query selected
		/// </summary>
		/// <param name="omQry"></param>
		public void PopulateQueryBuilderGroup(OMQuery omQry)
		{
			List<OMQueryGroup> listOMQueryGroup;
			Hashtable listQueryAttributes;
			OMQueryGroup omGroup;
			DataGridViewGroup group;
			OMQuery omQuery;

			try
			{
				OMETrace.WriteFunctionStart();

				//Set the omQuery 
				if (omQry != null)
				{
					omQuery = omQry;

					//query is not available then dont do anything
					if (omQuery == null)
						return;

					listOMQueryGroup = omQuery.ListQueryGroup;
					Helper.HashTableBaseClass.Clear();
					Helper.BaseClass = Helper.ClassName = omQuery.BaseClass;

					//Only Add when recent query is populated 
					if (omQuery.ListQueryGroup.Count > 0)
					{
						Helper.HashTableBaseClass.Add(omQuery.BaseClass, string.Empty);
					}

					for (int i = 0; i < listOMQueryGroup.Count; i++)
					{
						//Add DataGridViewGrop
						omGroup = listOMQueryGroup[i];
						group = i != 0 ? AddDataGridViewToPanel() : defaultGroup;

						for (int j = 0; j < omGroup.ListQueryClauses.Count; j++)
						{
							//Get the clauses from the group
							OMQueryClause omQueryClause = omGroup.ListQueryClauses[j];
							dbDataGridView gridQuery = group.DataGridViewQuery;
							gridQuery.Rows.Add(1);

							ProxyType fieldType = AssemblyInspectorObject.DataType.ResolveType(omQueryClause.FieldType);
						
                            
                            //Fill the Conditions depending upon the field name
                            gridQuery.FillConditionsCombobox(fieldType, j);
							gridQuery.FillOperatorComboBox();

							gridQuery.Rows[j].Cells[Helper.GetResourceString(Constants.QUERY_GRID_FIELD)].Value = omQueryClause.Fieldname;
							gridQuery.Rows[j].Cells[Helper.GetResourceString(Constants.QUERY_GRID_CONDITION)].Value = omQueryClause.Operator;
							gridQuery.Rows[j].Cells[Helper.GetResourceString(Constants.QUERY_GRID_VALUE)].Value = omQueryClause.Value;
							gridQuery.Rows[j].Cells[Helper.GetResourceString(Constants.QUERY_GRID_OPERATOR)].Value = omQueryClause.ClauseLogicalOperator.ToString();

							//Make the operator cell readonly for other than 1st Rows
							if (j > 0)
								gridQuery.Rows[j].Cells[Helper.GetResourceString(Constants.QUERY_GRID_OPERATOR)].ReadOnly = true;

							gridQuery.Rows[j].Cells[Constants.QUERY_GRID_CALSSNAME_HIDDEN].Value = omQueryClause.Classname;
                            gridQuery.Rows[j].Cells[Constants.QUERY_GRID_FIELDTYPE_HIDDEN].Value = fieldType.DisplayName;
                            gridQuery.Rows[j].Cells[Constants.QUERY_GRID_FIELDTYPE_DISPLAY_HIDDEN].Value = fieldType;
                            
						}

						//Set the logical operator for Query Group
						group.OperatorComboBox.SelectedItem = omGroup.GroupLogicalOperator.ToString();

						if (group.DataGridViewQuery.Rows.Count > 0)
							buttonRunQuery.Enabled = true;
					}

					listQueryAttributes = omQuery.AttributeList;

					int count = 0;
					if (listQueryAttributes != null)
					{
						IDictionaryEnumerator enumerator = listQueryAttributes.GetEnumerator();
						while (enumerator.MoveNext())
						{
							dbDataGridAttributes.Rows.Add(1);
							dbDataGridAttributes.Rows[count].Cells[0].Value = enumerator.Key.ToString();
							dbDataGridAttributes.Rows[count].Cells[0].Tag = enumerator.Value.ToString();
							count++;
						}
					}

					OMETrace.WriteFunctionEnd();
				}
			}
			catch (Exception oEx)
			{
				LoggingHelper.ShowMessage(oEx);
			}
		}
Beispiel #14
0
 public static List <Hashtable> ExecuteQueryResults(OMQuery omQuery, PagingData pgData, bool refresh, Hashtable attributeList)
 {
     RunQuery.ExecuteQuery(omQuery);
     return(ReturnQueryResults(pgData, refresh, omQuery.BaseClass, attributeList));
 }
Beispiel #15
0
 public static void AddQueriesToList(OMQuery query)
 {
    
     ManageConnectionDetails manage = new ManageConnectionDetails(GetCurrentConnParams());
     manage.AddQueryToList(query);
 }
Beispiel #16
0
		/// <summary>
		/// Sets the OMQuery to the cached list
		/// </summary>
		/// <param name="omQuery"></param>
		private static void SetOMQuery(OMQuery omQuery)
		{
			try
			{
				if (Helper.OMResultedQuery.ContainsKey(omQuery.BaseClass))
				{
					Helper.OMResultedQuery[omQuery.BaseClass] = omQuery;
				}
				else
				{
					Helper.OMResultedQuery.Add(omQuery.BaseClass, omQuery);
				}
			}
			catch (Exception oEx)
			{
				LoggingHelper.ShowMessage(oEx);
			}
		}
Beispiel #17
0
 public QueryParser(OMQuery OmQuery)
 {
     objectContainer = Db4oClient.Client;
     m_OmQuery       = OmQuery;
 }
Beispiel #18
0
		private void ExecuteQuery()
		{
			omQuery = new OMQuery(Helper.BaseClass, DateTime.Now);
			try
			{
				string errorMessage;

				//Check the for valid query. user must specifies the values for each query expression
				bool isValidQuery = IsValidQuery(out errorMessage);
				if (!isValidQuery)
				{
					MessageBox.Show(errorMessage,
					                Helper.GetResourceString(Constants.PRODUCT_CAPTION),
					                MessageBoxButtons.OK, MessageBoxIcon.Information);
					return;
				}

				omQuery = PrepareOMQuery();

				AddQueryToCurrentConnection(omQuery);
				
				ObjectBrowser.Instance.Enabled = false;
				PropertiesTab.Instance.Enabled = false;
				Instance.Enabled = false;

				EnableDisableDatabaseConnection(false);

				bw = new BackgroundWorker();
				
				bw.WorkerReportsProgress = true;
				bw.WorkerSupportsCancellation = true;
				bw.ProgressChanged += bw_ProgressChanged;
				bw.DoWork += bw_DoWork;
				bw.RunWorkerCompleted += bw_RunWorkerCompleted;
				

				bw.RunWorkerAsync();
				ApplicationObject.StatusBar.Animate(true, vsStatusAnimation.vsStatusAnimationBuild);
				isrunning = true;
			
			}
			catch (Exception oEx)
			{
				LoggingHelper.ShowMessage(oEx);
				ClearStatusBar();
			}
		}
        /// <summary>
        /// Show the result for selected class in both case Run Query/View Objects
        /// </summary>
        private void ShowObjectsForAClass()
        {
            try
            {
                queryBuilder = ((ViewBase.GetWindow(Constants.QUERYBUILDER)).Object) as QueryBuilder;

                listQueryAttributes = queryBuilder.GetSelectedAttributes();

                //Only Set BaseClass with current class
                if (toolStripButtonAssemblyView.Checked)
                {
                    Helper.BaseClass = dbAssemblyTreeView.SelectedNode.Parent != null
                                                                ? dbAssemblyTreeView.SelectedNode.Text
                                                                : Helper.ClassName;
                }
                else
                {
                    Helper.BaseClass = dbtreeviewObject.SelectedNode.Parent != null
                                                                ? dbtreeviewObject.SelectedNode.Text
                                                                : Helper.ClassName;
                }


                //Prepare query for View Objects
                omQuery = new OMQuery(Helper.BaseClass, DateTime.Now);

                if (Helper.HashTableBaseClass.Contains(Helper.BaseClass))
                {
                    omQuery.AttributeList = listQueryAttributes;
                }

                //Need to fectch attribute list in query result for same OMQuery
                if (Helper.OMResultedQuery.Contains(omQuery.BaseClass))
                {
                    Helper.OMResultedQuery[omQuery.BaseClass] = omQuery;
                }
                else
                {
                    Helper.OMResultedQuery.Add(omQuery.BaseClass, omQuery);
                }

                dbtreeviewObject.UpdateTreeNodeSelection(dbtreeviewObject.SelectedNode, toolStripButtonAssemblyView.Checked);



                ApplicationObject.StatusBar.Animate(true, vsStatusAnimation.vsStatusAnimationBuild);
                if (backgroundWorkerToRunQuery.IsBusy)
                {
                    backgroundWorkerToRunQuery.CancelAsync();
                }
                else
                {
                    backgroundWorkerToRunQuery.RunWorkerAsync();
                }

                isrunning = true;
            }
            catch (Exception oEx)
            {
                LoggingHelper.ShowMessage(oEx);
            }
        }
        public static void AddQueriesToList(OMQuery query)
        {
            ManageConnectionDetails manage = new ManageConnectionDetails(GetCurrentConnParams());

            manage.AddQueryToList(query);
        }
Beispiel #21
0
 public QueryParser(OMQuery OmQuery)
 {
     objectContainer = Db4oClient.Client;
     m_OmQuery = OmQuery;
 }
Beispiel #22
0
        //public RecentQueries PopulateParameters(DateTime date)
        //{
        //    this.Timestamp = date;
        //    this.ConnParam = m_connParam;
        //    return this;
        //}



        public void AddQueryToList(OMQuery query)
        {
            try
            {
                container = Db4oClient.RecentConn;
                if (QueryList != null)
                {
                    CompareQueryTimestamps comp = new CompareQueryTimestamps();

                    List <OMQuery> qList = FetchAllQueries();
                    //  qList.Sort(comp);


                    if (qList.Count >= 20)
                    {
                        bool check = false;
                        foreach (OMQuery qry in qList)
                        {
                            if (qry.QueryString == query.QueryString)
                            {
                                //check if the query string is among 5
                                check = true;
                            }
                        }
                        //if it is not among five then remove the last item from the list
                        if (check == false)
                        {
                            OMQuery q = qList[qList.Count - 1];
                            qList.RemoveAt(qList.Count - 1);
                            foreach (OMQuery qry1 in this.QueryList)
                            {
                                if (q.QueryString.Equals(qry1.QueryString))
                                {
                                    this.QueryList.Remove(qry1);
                                    break;
                                }
                            }
                            container.Delete(q);
                            container.Commit();
                        }
                    }

                    List <OMQuery> qListForClass = FetchQueriesForAClass(query.BaseClass);
                    if (qListForClass != null)
                    {
                        qListForClass.Sort(comp);
                        if (qListForClass.Count >= 5)
                        {
                            bool check = false;
                            foreach (OMQuery qry in qListForClass)
                            {
                                if (qry.QueryString == query.QueryString)
                                {
                                    //check if the query string is among 5
                                    check = true;
                                }
                            }
                            //if it is not among five then remove the last item from the list
                            if (check == false)
                            {
                                OMQuery q = qListForClass[qListForClass.Count - 1];
                                qListForClass.RemoveAt(qListForClass.Count - 1);
                                foreach (OMQuery qry1 in this.QueryList)
                                {
                                    if (q.QueryString.Equals(qry1.QueryString))
                                    {
                                        this.QueryList.Remove(qry1);
                                        break;
                                    }
                                }
                                container.Delete(q);
                                container.Commit();
                            }
                        }


                        // recent queries should always be 5 for a class therefore its checked
                        //against qListForClass.
                        foreach (OMQuery q in qListForClass)
                        {
                            if (q != null)
                            {
                                if (q.QueryString != null)
                                {
                                    if (q.QueryString.Equals(query.QueryString))
                                    {
                                        //if query string is same as already in the list then remove from the list
                                        //so that same string can be added again with updated timestamp

                                        foreach (OMQuery qry1 in this.QueryList)
                                        {
                                            if (q.QueryString.Equals(qry1.QueryString))
                                            {
                                                this.QueryList.Remove(qry1);
                                                break;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    //add query with latest timestamp.
                    this.QueryList.Add(query);
                    RecentQueries temprc = this.ChkIfRecentConnIsInDb();
                    if (temprc != null)
                    {
                        temprc.Timestamp = DateTime.Now;
                        temprc.QueryList = this.QueryList;
                    }
                    else
                    {
                        temprc = this;
                        temprc.m_TimeOfCreation = Sharpen.Runtime.CurrentTimeMillis();
                    }
                    container.Ext().Store(temprc, 5);
                    container.Commit();
                    container = null;
                    Db4oClient.CloseRecentConnectionFile();
                }
            }
            catch (Exception oEx)
            {
                LoggingHelper.HandleException(oEx);
                container = null;
                Db4oClient.CloseRecentConnectionFile();
            }
        }
Beispiel #23
0
		public static long[] ExecuteQueryResults(OMQuery omQuery)
		{
			return RunQuery.ExecuteQuery(omQuery);
		}