private async Task LoadLayout(ProcessorModel model, WorkItemTypeModel wit, AzureDevOpsEndpoint endpoint, string processId)
 {
     wit.Layout = (await endpoint.GetApiDefinitionAsync <WorkItemLayout>(new object[] { processId, wit.WorkItemType.ReferenceName }, queryForDetails: false));
     foreach (var page in wit.Layout.Pages)
     {
         var pageKey = $"{wit.WorkItemType.ReferenceName}::{page.Label}";
         if (model.WorkItemPages.ContainsKey(pageKey))
         {
             model.WorkItemPages[pageKey] = page;
         }
         else
         {
             model.WorkItemPages.Add(pageKey, page);
         }
         foreach (var section in page.Sections)
         {
             foreach (var group in section.Groups)
             {
                 var groupKey = $"{wit.WorkItemType.ReferenceName}::{page.Label}::{section.Id}::{group.Label}";
                 if (model.WorkItemGroups.ContainsKey(groupKey))
                 {
                     model.WorkItemGroups[groupKey] = group;
                 }
                 else
                 {
                     model.WorkItemGroups.Add(groupKey, group);
                 }
                 foreach (var control in group.Controls)
                 {
                     var controlKey = $"{wit.WorkItemType.ReferenceName}::{page.Label}::{section.Id}::{group.Label}::{control.Id}";
                     if (model.WorkItemControls.ContainsKey(controlKey))
                     {
                         model.WorkItemControls[controlKey] = control;
                     }
                     else
                     {
                         model.WorkItemControls.Add(controlKey, control);
                     }
                 }
             }
         }
     }
 }