public static string Date(string minDate, string maxDate, string format) { return(Rand.Date(System.DateTime.Parse(minDate), System.DateTime.Parse(maxDate)).ToString(format)); }
public ExitCode GetReports(string pPath, bool pWithPrompts, string pAssociatedInstance, out Report[] pReports) { _cancel = false; _sessionmanager.ResetSessionTimeOut(); int reportid = 5000; pReports = new Report[] { }; ExitCode exitcode = ExitCode.SUCCEED; List <Report> reports = new List <Report>(); List <string[]> queries = new List <string[]>(); string select = "SI_ID,SI_KIND,SI_NAME,SI_PARENT_CUID,SI_CHILDREN,SI_CREATION_TIME,SI_UPDATE_TS,SI_LAST_SUCCESSFUL_INSTANCE_ID,SI_PROCESSINFO,SI_PROCESSINFO.SI_HAS_PROMPTS,SI_PROCESSINFO.SI_PROMPTS,SI_PROCESSINFO.SI_WEBI_PROMPTS,SI_PROCESSINFO.SI_FULLCLIENT_PROMPTS"; string where = "SI_KIND IN('Webi','Publication','CrystalReport','ObjectPackage') AND SI_INSTANCE=0"; if (System.Text.RegularExpressions.Regex.Match(pPath, @"^[\d, ]+$").Success) { queries.Add(new string[2] { pPath, "query://{SELECT " + select + " FROM CI_INFOOBJECTS WHERE " + where + " AND SI_ID IN(" + pPath + ")}" }); } else { foreach (string query in pPath.Split(',')) { queries.Add(new string[2] { query, "path://InfoObjects/*/" + query.TrimStart(new char[] { '/' }) + "[" + where + "]@" + select }); } } _sessionmanager.InitProgress(3, 100, queries.Count); #region Loop through queries foreach (string[] query in queries) { switch (pAssociatedInstance) { case "LAST_SUCCEED": _sessionmanager.Log("Get reports with last succeed instances for " + query[0]); break; case "LAST_FAILED": _sessionmanager.Log("Get reports with last failed instances for " + query[0]); break; case "LAST_CREATED": _sessionmanager.Log("Get reports with last created instances for " + query[0]); break; default: _sessionmanager.Log("Get reports without instance in " + query[0]); break; } object[] pages = new object[Rand.Number(0, 10)]; object[] objects = new object[Rand.Number(0, 100)]; _sessionmanager.Log("Nb Pages: " + pages.Length.ToString()); _sessionmanager.Log("Nb objects: " + objects.Length.ToString()); if (objects.Length == 0) { throw new Exception("Query didn't return any objects ! "); } _sessionmanager.InitSubProgress(pages.Length * objects.Length); if (_cancel) { return(ExitCode.CANCELED); } int nbPages = pages.Length; int nbReports = 0; #region Loop through pages for (int p = 0; p < nbPages; p++) { nbReports = objects.Length; if (nbReports != 0) { if (_tstPageingException) { throw new Exception("Web service paging failed !"); } } #region Loop through reports #region Loop through reports for (int r = 0; r < nbReports; r++) { string loginfo = string.Empty; _sessionmanager.Log("Get report " + Rand.String(10)); Instance instance = new Instance(); Prompt[] prompts = new Prompt[Rand.Number(0, 8)]; try { instance.Cuid = Rand.String(10); instance.Id = Rand.Number(1, 10000); instance.Date = Rand.Date("2010/01/01", "2012/12/30", "yyyy/MM/dd HH:mm"); instance.Status = Rand.List("FAILURE", "COMPLETE", "OTHER"); instance.Time = Rand.Time("00:00:00", "00:10:00"); for (int i = 0; i < prompts.Length; i++) { prompts[i] = new Prompt { Name = "Prompt" + i.ToString(), Value = Rand.String(10) }; } Rand.Exception(5, "Failed to get object!"); } catch (Exception ex) { loginfo = _sessionmanager.ParseException(ex); _sessionmanager.Log(" Error: " + _sessionmanager.ParseException(ex)); exitcode = ExitCode.HASERROR; } reports.Add(new Report { LOG = loginfo, Instance = instance, Cuid = Rand.String(10), Id = reportid++, Type = Rand.List("Webi", "Publication", "CrystalReport", "ObjectPackage"), Name = "Name" + Rand.String(5), Folder = "//" + Rand.String(9) + "/" + Rand.String(4), NbChild = Rand.Number(0, 4), Prompts = prompts }); _sessionmanager.IncSubProgress(); if (_cancel) { return(ExitCode.CANCELED); } } #endregion } #endregion Loop through pages _sessionmanager.IncProgress(); } #endregion Loop through queries pReports = reports.ToArray(); return(exitcode); }