Files
Partsource/PartSource.Automation/Jobs/GetNexpartMenuItems.cs

77 lines
2.2 KiB
C#

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;
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(CancellationToken token, params string[] arguments)
{
IList<string> rows = new List<string>
{
"\"Level 1\", \"Level 2\", \"Level 3\", \"Menu ID\""
};
MenuNodesLookup menuNodesLookup = new MenuNodesLookup
{
MenuId = 2,
NumberOfLevels = 1
};
MenuNodesLookupResponse categoryResponse = await _nexpartService.SendRequest<MenuNodesLookup, MenuNodesLookupResponse>(menuNodesLookup);
foreach (MenuNode categoryNode in categoryResponse.ResponseBody.MenuNode)
{
rows.Add($"\"{categoryNode.Description}\",\"\",\"\",{categoryNode.Id}");
MenuNodesLookup subgroupLookup = new MenuNodesLookup
{
MenuId = 2,
NumberOfLevels = 1,
ParentMenuNodeId = categoryNode.Id
};
MenuNodesLookupResponse subgroupResponse = await _nexpartService.SendRequest<MenuNodesLookup, MenuNodesLookupResponse>(subgroupLookup);
foreach (MenuNode subgroupNode in subgroupResponse.ResponseBody.MenuNode)
{
rows.Add($"\"{categoryNode.Description}\",\"{subgroupNode.Description}\",\"\",{subgroupNode.Id}");
MenuNodesLookup thirdLookup = new MenuNodesLookup
{
MenuId = 2,
NumberOfLevels = 1,
ParentMenuNodeId = subgroupNode.Id
};
MenuNodesLookupResponse thirdResponse = await _nexpartService.SendRequest<MenuNodesLookup, MenuNodesLookupResponse>(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);
;
}
}
}