コード例 #1
0
ファイル: cObjectList.cs プロジェクト: orrwell/aaExport
        private string GetObjectListFromCustomSQL(string SQL, ETemplateOrInstance ItemTypeSelection = ETemplateOrInstance.Both, string ObjectList = "")
        {
            DataTable dt;
            string    returnList;

            // First get the datatable by a SQL query
            dt = GetSQLData(SQL);

            // If we have more than one row then fix up the string format
            if (dt.Rows.Count > 0)
            {
                returnList = dt.Rows[0][0].ToString();
                returnList = "\"" + returnList.Substring(1, returnList.Length - 1) + "\"";
            }
            else
            {
                returnList = "";
            }

            log.Debug(returnList);
            return(returnList);
        }
コード例 #2
0
ファイル: cObjectList.cs プロジェクト: orrwell/aaExport
        private string GetSQLForChangeLogAllObjectsAfterTimestampAsCSV(DateTime TargetTimestamp, ETemplateOrInstance ItemTypeSelection = ETemplateOrInstance.Both, string ObjectList = "")
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("SELECT DISTINCT ',' + Tag_Name ");
            sb.Append(" ");
            sb.Append("FROM         dbo.gobject INNER JOIN");
            sb.Append(" ");
            sb.Append("dbo.gobject_change_log ON dbo.gobject.gobject_id = dbo.gobject_change_log.gobject_id INNER JOIN");
            sb.Append(" ");
            sb.Append("dbo.lookup_operation ON dbo.gobject_change_log.operation_id = dbo.lookup_operation.operation_id");
            sb.Append(" ");
            sb.Append(" Where");
            sb.Append(" ");
            sb.Append("Change_Date >='" + TargetTimestamp.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'");
            sb.Append(" ");
            sb.Append("and Operation_Name in ('CheckInSuccess','CreateInstance')");
            sb.Append(" ");

            // Add the clauses to limit by template or isntance
            switch (ItemTypeSelection)
            {
            case ETemplateOrInstance.Instance:
                sb.Append("and is_Template=0");
                sb.Append(" ");
                break;

            case ETemplateOrInstance.Template:
                sb.Append("and is_Template=1");
                sb.Append(" ");
                break;

            default:
                //Do Nothing
                break;
            }

            // Consider if the user passed an object list. If so, then use that to filter the results before return
            if (ObjectList != "")
            {
                // Fix up the passed CSV to make SQL like it a little better

                // Add ' at beginning and end
                ObjectList = "'" + ObjectList + "'";
                // Add ' around each ,
                ObjectList = ObjectList.Replace(",", "','");
                // Remove rogue spaces.  Tagnames will never have spaces
                ObjectList = ObjectList.Replace(" ", "");
                sb.Append("and Tag_Name in (" + ObjectList + ")");
                sb.Append(" ");
            }

            sb.Append("FOR XML PATH('')");

            return(sb.ToString());
        }
コード例 #3
0
ファイル: cObjectList.cs プロジェクト: orrwell/aaExport
        private string GetObjectListForChangeLogAllObjectsAfterTimestampAsCSV(DateTime TargetTimestamp, ETemplateOrInstance ItemTypeSelection = ETemplateOrInstance.Both, string ObjectList = "")
        {
            DataTable dt;
            string    returnList;

            // First get the datatable by a SQL query
            dt = GetSQLData(GetSQLForChangeLogAllObjectsAfterTimestampAsCSV(TargetTimestamp, ItemTypeSelection, ObjectList));

            // If we have more than one row then fix up the string format
            if (dt.Rows.Count > 0)
            {
                returnList = dt.Rows[0][0].ToString();
                returnList = "\"" + returnList.Substring(1, returnList.Length - 1) + "\"";
            }
            else
            {
                returnList = "";
            }

            return(returnList);
        }
コード例 #4
0
ファイル: cObjectList.cs プロジェクト: orrwell/aaExport
        /// <summary>
        /// Get list of objects using galaxy filters
        /// </summary>
        /// <param name="ObjectList"></param>
        /// <param name="ApplyFilters"></param>
        /// <returns></returns>
        public IgObjects GetObjectsFromSingleFilter(String FilterType, String Filter, ETemplateOrInstance TemplateOrInstance, bool ApplyFilters = false)
        {
            IgObjects returnGalaxyObjects;

            try
            {
                // Get an empty set of objects to start working with
                returnGalaxyObjects = GetEmptyIgObjects();

                // Do we need to include templates?
                if ((TemplateOrInstance == ETemplateOrInstance.Template) || (TemplateOrInstance == ETemplateOrInstance.Both))
                {
                    // Now get the template Objects into a GObjects set
                    returnGalaxyObjects.AddFromCollection(_galaxy.QueryObjects(EgObjectIsTemplateOrInstance.gObjectIsTemplate, ConditionType(FilterType), (object)Filter, EMatch.MatchCondition));
                }

                // Do we need to include instances?
                if ((TemplateOrInstance == ETemplateOrInstance.Instance) || (TemplateOrInstance == ETemplateOrInstance.Both))
                {
                    // Now get the template Objects into a GObjects set
                    returnGalaxyObjects.AddFromCollection(_galaxy.QueryObjects(EgObjectIsTemplateOrInstance.gObjectIsInstance, ConditionType(FilterType), (object)Filter, EMatch.MatchCondition));
                }

                if ((returnGalaxyObjects == null) || (_galaxy.CommandResult.Successful != true) || returnGalaxyObjects.count == 0)
                {
                    // Failed to retrieve any objects from the query
                    throw new Exception("Failed to retrieve objects to export.");
                }

                // Apply the filters if the switch it turned on
                if (ApplyFilters)
                {
                    returnGalaxyObjects = ApplyCustomFilters(returnGalaxyObjects);
                }

                // REturn the Results
                return(returnGalaxyObjects);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }