using PartSource.Data.Nexpart; using PartSource.Services; using Ratermania.Automation.Interfaces; using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Threading.Tasks; namespace PartSource.Automation.Jobs { public class GetNexpartMenuItems : IAutomationJob { private readonly NexpartService _nexpartService; public GetNexpartMenuItems(NexpartService nexpartService) { _nexpartService = nexpartService; } public async Task Run() { IList rows = new List { "\"Level 1\", \"Level 2\", \"Level 3\", \"Menu ID\"" }; MenuNodesLookup menuNodesLookup = new MenuNodesLookup { MenuId = 1, NumberOfLevels = 1 }; MenuNodesLookupResponse categoryResponse = await _nexpartService.SendRequest(menuNodesLookup); foreach (MenuNode categoryNode in categoryResponse.ResponseBody.MenuNode) { rows.Add($"\"{categoryNode.Description}\",\"\",\"\",{categoryNode.Id}"); MenuNodesLookup subgroupLookup = new MenuNodesLookup { MenuId = 1, NumberOfLevels = 1, ParentMenuNodeId = categoryNode.Id }; MenuNodesLookupResponse subgroupResponse = await _nexpartService.SendRequest(subgroupLookup); foreach (MenuNode subgroupNode in subgroupResponse.ResponseBody.MenuNode) { rows.Add($"\"{categoryNode.Description}\",\"{subgroupNode.Description}\",\"\",{subgroupNode.Id}"); MenuNodesLookup thirdLookup = new MenuNodesLookup { MenuId = 1, NumberOfLevels = 1, ParentMenuNodeId = subgroupNode.Id }; MenuNodesLookupResponse thirdResponse = await _nexpartService.SendRequest(thirdLookup); foreach (MenuNode thirdNode in thirdResponse.ResponseBody.MenuNode) { rows.Add($"\"{categoryNode.Description}\",\"{subgroupNode.Description}\",\"{thirdNode.Description}\",{thirdNode.Id}"); } } } await File.WriteAllLinesAsync("C:\\users\\Tommy\\desktop\\Partsource Menu Items.csv", rows); ; } } }