Beispiel #1
0
        public async Task Run(string apiKey)
        {
            if (string.IsNullOrWhiteSpace(apiKey))
            {
                throw new ArgumentException("Cannot be null, empty or whitespace", nameof(apiKey));
            }

            using (MerakiDashboardClient merakiDashboardClient =
                       MerakiDashboardClientFactory.Create(mcs => mcs.ApiKey = apiKey))
            {
                System.Console.WriteLine("By organization by network:");
                foreach (Organization organization in await merakiDashboardClient.GetOrganizationsAsync())
                {
                    System.Console.WriteLine($"{organization.Name} ({organization.Id}):");
                    foreach (Network network in await merakiDashboardClient.GetOrganizationNetworksAsync(organization))
                    {
                        System.Console.WriteLine($"  {network.Name} ({network.Id}):");
                        foreach (Device device in await merakiDashboardClient.GetNetworkDevicesAsync(network))
                        {
                            System.Console.WriteLine($"    {device.Serial} ({device.Model}, {device.Mac})");
                        }
                    }
                }

                System.Console.WriteLine();
                System.Console.WriteLine("By organization inventory:");
                foreach (Organization organization in await merakiDashboardClient.GetOrganizationsAsync())
                {
                    System.Console.WriteLine($"{organization.Name} ({organization.Id}):");
                    foreach (InventoryEntry inventory in await merakiDashboardClient.GetOrganizationInventoryAsync(
                                 organization))
                    {
                        System.Console.WriteLine(
                            $"    {inventory.Serial} ({inventory.Model}) claimed at {inventory.ClaimedAt}");
                    }
                }
            }
        }
        /// <summary>
        /// Get the devices in all networks in all organizations the current API key can access.
        /// </summary>
        /// <param name="merakiDashboardClient">
        /// The <see cref="MerakiDashboardClient"/> to access the device swith.
        /// </param>
        /// <returns>
        /// The <see cref="Device"/>s discovered.
        /// </returns>
        private async Task <IEnumerable <Device> > GetDevicesInAnOrganization(MerakiDashboardClient merakiDashboardClient)
        {
            List <Device> result = new List <Device>();

            foreach (Organization organization in await merakiDashboardClient.GetOrganizationsAsync())
            {
                foreach (Network network in await merakiDashboardClient.GetOrganizationNetworksAsync(organization))
                {
                    foreach (Device device in await merakiDashboardClient.GetNetworkDevicesAsync(network))
                    {
                        result.Add(device);
                    }
                }
            }
            return(result);
        }
Beispiel #3
0
        public async Task Run(string apiKey)
        {
            if (string.IsNullOrWhiteSpace(apiKey))
            {
                throw new ArgumentException("Cannot be null, empty or whitespace", nameof(apiKey));
            }

            using (MerakiDashboardClient merakiDashboardClient =
                       MerakiDashboardClientFactory.Create(mcs => mcs.ApiKey = apiKey))
                using (new MerakiHttpApiDebugContext())
                {
                    string organizationId = merakiDashboardClient.GetOrganizationsAsync().Result.First().Id;
                    await GetSnmpSettings(organizationId, merakiDashboardClient);
                    await PutSnmpSettings(organizationId, merakiDashboardClient);
                }
        }
        public static async Task <string> GetOrganizationId(MerakiDashboardClient merakiDashboardClient, string organizationName)
        {
            Organization[] organizations = await merakiDashboardClient.GetOrganizationsAsync();

            return(organizations.First(o => o.Name == organizationName).Id);
        }