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); }
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()); }
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); }
/// <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; } }