/// <summary>
        /// Check if all required monitors exists in monitis API
        /// </summary>
        /// <returns></returns>
        public Boolean CheckCustomMonitors()
        {
            CustomMonitorAPI      customMonitorAPI = new CustomMonitorAPI(this.APIKey, this.APIType);
            IEnumerable <Monitor> monitorList      = customMonitorAPI.GetMonitorList();

            foreach (String monitorName in CustomMonitorList.Singleton.MonitorNames)
            {
                String  name    = monitorName;
                Monitor monitor = monitorList.FirstOrDefault(f => f.Name.Equals(name));
                if (monitor == null)
                {
                    return(false);
                }

                CustomMonitorList.Singleton.GetConfigByMonitorName(monitor.Name).MonitorID = monitor.ID;
            }
            return(true);
        }
        /// <summary>
        /// Create monitors for Azure metrics and counters in Monitis service
        /// </summary>
        public List <string> CreateAzureMonitors()
        {
            CustomMonitorAPI customMonitorAPI = new CustomMonitorAPI(this.APIKey, this.APIType);

            List <String>         notAddedMonitors = new List <String>();
            IEnumerable <Monitor> monitorList      = customMonitorAPI.GetMonitorList();

            foreach (var monitorName in CustomMonitorList.Singleton.MonitorNames.Except(monitorList.Select(f => f.Name)))
            {
                AddMonitorResponse addMonitorResponse = customMonitorAPI.AddMonitor(CurrentAuthToken,
                                                                                    CustomMonitorList.Singleton.GetConfigByMonitorName(monitorName).Descriptor);

                if (!addMonitorResponse.IsOk)
                {
                    notAddedMonitors.Add(monitorName);
                }
            }
            return(notAddedMonitors);
        }