public static GanttDataModel GenerateGanttDataModel(TaskGroupSummary taskGroupSummary)
        {
            var ganttDataModel = new GanttDataModel();

            var ganttData = new List <GanttData>();
            var ganttList = new List <GanttLink>();

            AddToGanttDataList(ganttData, taskGroupSummary, null);

            ganttDataModel.Data  = ganttData.ToArray();
            ganttDataModel.Links = ganttList.ToArray();

            return(ganttDataModel);
        }
        public async Task <IActionResult> OnGetAsync()
        {
            var accessToken = await HttpContext.GetTokenAsync("access_token");

            await PageConstructor(SaveStates.IGNORE, accessToken);

            if (!await _apiHelper.AuthCheck(accessToken, User.FindFirst("sub").Value))
            {
                return(RedirectToPage("/Logout"));
            }

            taskGroupSummary = new TaskGroupSummary();
            clientSummary    = new ClientSummary();

            if (!string.IsNullOrWhiteSpace(Id))
            {
                var response = await _apiHelper.MakeAPICallAsync(accessToken, HttpMethod.Get, APITypes.TASK, $"TaskGroup/GetTaskGroupSummary/{Id}");

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    taskGroupSummary = response.ContentAsType <TaskGroupSummary>();
                }
                else
                {
                    return(RedirectToPage("/TaskGroup/TaskGroups"));
                }
            }
            else
            {
                return(RedirectToPage("/TaskGroup/TaskGroups"));
            }

            if (taskGroupSummary != null)
            {
                await GetFileLinks(accessToken);

                var response = await _apiHelper.MakeAPICallAsync(accessToken, HttpMethod.Get, APITypes.CLIENT, $"Client/GetClientSummary/{taskGroupSummary.ClientHeaderId}");

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    clientSummary = response.ContentAsType <ClientSummary>();
                }

                GanttDataModel = GanttHelper.GenerateGanttDataModel(taskGroupSummary);
            }
            else
            {
                GanttDataModel = new GanttDataModel()
                {
                    Data  = new GanttData[0],
                    Links = new GanttLink[0]
                };
            }

            var userList = await GetUsernames(accessToken);

            //Temporary fix for adding language code data to partial pages.
            taskGroupSummary.langQueryList = taskGroupSummarylangQueryList;
            taskGroupSummary.MainUserName  = userList.Users.Where(u => u.Id == taskGroupSummary.MainUserId).FirstOrDefault().FullName;

            foreach (var childTaskGroupSummary in taskGroupSummary.ChildTaskGroups)
            {
                childTaskGroupSummary.langQueryList = taskGroupSummarylangQueryList;
                childTaskGroupSummary.MainUserName  = userList.Users.Where(u => u.Id == childTaskGroupSummary.MainUserId).FirstOrDefault().FullName;

                foreach (var childTaskSummary in childTaskGroupSummary.ChildTasks)
                {
                    childTaskSummary.langQueryList = taskSummarylangQueryList;
                    childTaskSummary.MainUserName  = userList.Users.Where(u => u.Id == childTaskSummary.MainUserId).FirstOrDefault().FullName;
                }
            }

            foreach (var childTaskSummary in taskGroupSummary.ChildTasks)
            {
                childTaskSummary.langQueryList = taskGroupSummarylangQueryList;
                childTaskSummary.MainUserName  = userList.Users.Where(u => u.Id == childTaskSummary.MainUserId).FirstOrDefault().FullName;
            }

            GanttJSON = JsonSerializer.Serialize(GanttDataModel);

            SaveMessageModel = await _apiHelper.GenerateSaveMessageModel(accessToken);

            return(Page());
        }