public ICustomActivityResult Execute()
        {
            var restClient = new AppDynamicsRESTClient(UserName, Password);
            var parameters = restClient.GetParams(new Dictionary <string, string> {
                { "output", "JSON" }
            });
            string url      = BaseURL + "/controller/rest/applications/" + ApplicationName + "/nodes/" + NodeName + "?" + parameters;
            var    response = restClient.ApiCall(url, "GET");

            if (response.StatusCode == HttpStatusCode.OK && !string.IsNullOrEmpty(response.Response))
            {
                DataTable dt = new DataTable("resultSet");
                dt.Columns.Add("Id");
                dt.Columns.Add("Tier Name");
                dt.Columns.Add("Agent Type");
                dt.Columns.Add("Machine Name");
                dt.Columns.Add("OS Type");

                var jRes = JArray.Parse(response.Response);
                foreach (var j in jRes)
                {
                    dt.Rows.Add(j.Value <string>("id"),
                                j.Value <string>("tierName"),
                                j.Value <string>("agentType"),
                                j.Value <string>("machineName"),
                                j.Value <string>("machineOSType"));
                }

                return(this.GenerateActivityResult(dt));
            }

            throw new Exception("Error retrieving Node Info. " + response.Response);
        }
        public ICustomActivityResult Execute()
        {
            var restClient = new AppDynamicsRESTClient(UserName, Password);
            var parameters = restClient.GetParams(new Dictionary <string, string> {
                { "time-range-type", "BEFORE_NOW" },
                { "duration-in-mins", DurationInMin },
                { "event-types", "ACTIVITY_TRACE,ADJUDICATION_CANCELLED,AGENT_ADD_BLACKLIST_REG_LIMIT_REACHED,AGENT_ASYNC_ADD_REG_LIMIT_REACHED,AGENT_DIAGNOSTICS,AGENT_ERROR_ADD_REG_LIMIT_REACHED,AGENT_EVENT," +
                  "AGENT_METRIC_BLACKLIST_REG_LIMIT_REACHED,AGENT_METRIC_REG_LIMIT_REACHED,AGENT_STATUS,ALREADY_ADJUDICATED,APPDYNAMICS_DATA,APPDYNAMICS_INTERNAL_DIAGNOSTICS,AZURE_AUTO_SCALING," +
                  "CONTROLLER_ASYNC_ADD_REG_LIMIT_REACHED,CONTROLLER_COLLECTIONS_ADD_REG_LIMIT_REACHED,CONTROLLER_ERROR_ADD_REG_LIMIT_REACHED,CONTROLLER_EVENT_UPLOAD_LIMIT_REACHED," +
                  "CONTROLLER_MEMORY_ADD_REG_LIMIT_REACHED,CONTROLLER_METADATA_REGISTRATION_LIMIT_REACHED,CONTROLLER_METRIC_DATA_BUFFER_OVERFLOW,CONTROLLER_METRIC_REG_LIMIT_REACHED," +
                  "CONTROLLER_PSD_UPLOAD_LIMIT_REACHED,CONTROLLER_RSD_UPLOAD_LIMIT_REACHED,CONTROLLER_SEP_ADD_REG_LIMIT_REACHED,CONTROLLER_STACKTRACE_ADD_REG_LIMIT_REACHED," +
                  "CONTROLLER_TRACKED_OBJECT_ADD_REG_LIMIT_REACHED,CUSTOM,CUSTOM_ACTION_END,CUSTOM_ACTION_FAILED,CUSTOM_ACTION_STARTED,CUSTOM_EMAIL_ACTION_END,CUSTOM_EMAIL_ACTION_FAILED," +
                  "CUSTOM_EMAIL_ACTION_STARTED,DEV_MODE_CONFIG_UPDATE,DIAGNOSTIC_SESSION,EMAIL_ACTION_FAILED,EMAIL_SENT,EUM_CLOUD_BROWSER_EVENT," +
                  "EUM_CLOUD_SYNTHETIC_BROWSER_EVENT,EUM_INTERNAL_ERROR,HTTP_REQUEST_ACTION_END,HTTP_REQUEST_ACTION_FAILED,HTTP_REQUEST_ACTION_STARTED,INFO_INSTRUMENTATION_VISIBILITY," +
                  "INTERNAL_UI_EVENT,MEMORY,MEMORY_LEAK_DIAGNOSTICS,MOBILE_CRASH_IOS_EVENT,MOBILE_CRASH_ANDROID_EVENT,NORMAL,OBJECT_CONTENT_SUMMARY,POLICY_CANCELED_CRITICAL,POLICY_CANCELED_WARNING," +
                  "POLICY_CLOSE_CRITICAL,POLICY_CLOSE_WARNING,POLICY_CONTINUES_CRITICAL,POLICY_CONTINUES_WARNING,POLICY_DOWNGRADED,POLICY_OPEN_CRITICAL,POLICY_OPEN_WARNING,POLICY_UPGRADED," +
                  "RESOURCE_POOL_LIMIT,RUN_LOCAL_SCRIPT_ACTION_END,RUN_LOCAL_SCRIPT_ACTION_FAILED,RUN_LOCAL_SCRIPT_ACTION_STARTED,SERVICE_ENDPOINT_DISCOVERED,SLOW,SMS_SENT,STALL," +
                  "SYSTEM_LOG,THREAD_DUMP_ACTION_END,THREAD_DUMP_ACTION_FAILED,THREAD_DUMP_ACTION_STARTED,TIER_DISCOVERED,VERY_SLOW,WARROOM_NOTE" },
                { "severities", "INFO,WARN,ERROR" },
                { "output", "JSON" }
            });

            string url      = BaseURL + "/controller/rest/applications/" + ApplicationName + "/events?" + parameters;
            var    response = restClient.ApiCall(url, "GET");

            if (response.StatusCode == HttpStatusCode.OK && !string.IsNullOrEmpty(response.Response))
            {
                DataTable dt = new DataTable("resultSet");
                dt.Columns.Add("Id");
                dt.Columns.Add("Severity");
                dt.Columns.Add("Summary");
                dt.Columns.Add("Type");
                dt.Columns.Add("EventTime");

                var jRes = JArray.Parse(response.Response);
                foreach (var j in jRes)
                {
                    dt.Rows.Add(j.Value <string>("id"),
                                j.Value <string>("severity"),
                                j.Value <string>("summary"),
                                j.Value <string>("type"),
                                new DateTime(1970, 1, 1).AddMilliseconds(j.Value <long>("eventTime")).ToString()); // convert from epoch time
                }

                return(this.GenerateActivityResult(dt));
            }

            throw new Exception("Error retrieving Event Data. " + response.Response);
        }
        public ICustomActivityResult Execute()
        {
            var restClient = new AppDynamicsRESTClient(UserName, Password);
            var parameters = restClient.GetParams(new Dictionary <string, string> {
                { "summary", Summary },
                { "comment", Comment },
                { "severity", Severity },
                { "eventtype", "CUSTOM" },
                { "output", "JSON" }
            });
            string url      = BaseURL + "/controller/rest/applications/" + ApplicationName + "/events?" + parameters;
            var    response = restClient.ApiCall(url, "POST");

            if (response.StatusCode == HttpStatusCode.OK && !string.IsNullOrEmpty(response.Response))
            {
                return(this.GenerateActivityResult(GetActivityResult("Success")));
            }

            throw new Exception("Error creating event. " + response.Response);
        }