Exemplo n.º 1
0
        public void Initialize()
        {
            #region Initialize parameters

            ParamServerList.AddRange(Args.GetValue(PARAM_SERVER_FILTER, Environment.MachineName).Split(';').Where(x => x != ""));

            ParamDbList.AddRange(Args.GetValue(PARAM_DB_FILTER, "").Split(';').Where(x => x != ""));

            ParamTableList.AddRange(Args.GetValue(PARAM_TABLE_FILTER, "").Split(';').Where(x => x != ""));

            ParamWithConfig = Args.IsDefined("config");
            ParamConfigType = (EDocumentConfigType)Enum.Parse(typeof(EDocumentConfigType), Args.GetValue("config", "list"), true);

            ParamUserOnly = !Args.IsDefined("system");

            ParamWithDatabases = Args.IsDefined("databases");

            ParamDatabaseType = (EDocumentDatabasesType)Enum.Parse(typeof(EDocumentDatabasesType), Args.GetValue("databases", "list"), true);

            WithSP    = Args.IsDefined("sp");
            SpDetails = Args.GetValue("sp", "list");

            WithTables      = Args.IsDefined("tables");
            ParamTablesType = (EDocumentTablesType)Enum.Parse(typeof(EDocumentTablesType), Args.GetValue("tables", "list"), true);

            WithViews   = Args.IsDefined("views");
            ViewDetails = Args.GetValue("views", "list");

            WithUsers      = Args.IsDefined("users");
            ParamUsersType = (EDocumentUsersType)Enum.Parse(typeof(EDocumentUsersType), Args.GetValue("users", "list"), true);

            WithTriggers   = Args.IsDefined("triggers");
            TriggerDetails = Args.GetValue("triggers", "list");

            WithJobs   = Args.IsDefined("jobs");
            JobDetails = Args.GetValue("jobs", "list");

            foreach (string JobItem in Args.GetValue("jobstatus", "").Split(';').Where(x => x != ""))
            {
                JobStatusList.Add(JobItem.ToLower());
            }

            WithJobHistory    = Args.IsDefined("jobhistory");
            JobHistoryDetails = Args.GetValue("jobhistory", "list");
            if (JobHistoryDetails.IndexOf(":") != -1)
            {
                JobHistoryDays    = Int32.Parse(JobHistoryDetails.Split(':')[1]);
                JobHistoryDetails = JobHistoryDetails.Split(':')[0];
            }
            else
            {
                JobHistoryDays = 0;
            }

            Verbose   = Args.IsDefined("verbose");
            SmartList = Args.IsDefined("smart");

            WithFunctions   = Args.IsDefined("udf");
            FunctionDetails = Args.GetValue("udf", "list");

            WithUDT    = Args.IsDefined("udt");
            UDTDetails = Args.GetValue("udt", "list");

            WithDTS    = Args.IsDefined("dts");
            DtsDetails = Args.GetValue("dts", "list");

            XmlOutputPath = Args.GetValue("xmloutputpath", "");
            XmlOutputFile = Args.GetValue("xmloutputfile", "");

            WithDebug = Args.IsDefined("debug");
            DebugFile = Args.GetValue("debugfile", "");

            JobRegEx   = Args.GetValue("jobsregex", "");
            DtsRegEx   = Args.GetValue("dtsregex", "");
            SpRegEx    = Args.GetValue("spregex", "");
            ViewRegEx  = Args.GetValue("viewsregex", "");
            TableRegEx = Args.GetValue("tablesregex", "");

            ParamUserId   = Args.GetValue("userid", "");
            ParamPassword = Args.GetValue("password", "");

            #endregion

            #region Xml init
            if (XmlOutputFile.Length != 0)
            {
                if (XmlOutputPath.Length != 0)
                {
                    XmlOutputPath = XmlOutputPath.TrimEnd(' ', '\\');
                    if (!Directory.Exists(XmlOutputPath))
                    {
                        Directory.CreateDirectory(XmlOutputPath);
                    }
                }

                // generate the xsl style sheet from the embedded resource
                Stream    XsltStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("listdb.report.xslt");
                XDocument Xslt       = XDocument.Load(XsltStream);
                Xslt.Save(Path.Combine(XmlOutputPath, "report.xslt"));

                XDocument XmlOutput = new XDocument();
                XmlOutput.Add(new XProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"report.xslt\""));
            }

            #endregion
        }