public async Task SubmitForm() { InvalidHours = false; ExceptionMessage = ""; try { Entity.Hours = DateTimeHelpers.GetHoursFromString(WorkedDateHelper, true); try { Entity.ProviderType = CodeHubMode ? StaticWorkProviderTypes.CodeHub : SelectedTask.ProviderType; Entity.OrganizationId = CodeHubMode ? SelectedOrganization.Id : SelectedTask.OrganizationId; Entity.TaskId = CodeHubMode ? 0 : SelectedTask.Id; // TODO CodeHub Tasks Entity = await WorkLogsService.CreateOrEditWorkLog(Entity); Done(); } catch (Exception e) { ExceptionMessage = e.Message; } } catch { InvalidHours = true; Entity.Hours = 0; } StateHasChanged(); }
public async Task BuildTree() { TreeNodes = new List <CodeHubWorkItemTree>(); var features = WorkItems.Select(s => s.Parent).Distinct().ToList(); foreach (var feature in features.OrderBy(s => s.ProviderOrganization).ThenBy(s => s.Project).ThenBy(s => s.Parent.Id)) { var childIds = WorkItems.Where(s => s.Parent.Id == feature.Id).Select(s => (long)s.Id).ToList(); childIds.Add(feature.Id); var hoursWorked = await WorkLogsService.GetHoursWorked(childIds); var featureNode = new CodeHubWorkItemTree { Children = new List <CodeHubWorkItemTree>(), Id = feature.Id, Title = feature.Title, ProviderOrganization = feature.ProviderOrganization, Project = feature.Project, NodeLevel = feature.WorkItemType, ChildCount = childIds.Count(), Parent = feature.Parent, HoursWorked = hoursWorked }; TreeNodes.Add(featureNode); } StateHasChanged(); }
public async Task LoadWorkLog(int id) { DisableCodeHubMode(); var found = await WorkLogsService.GetWorkLogForEdit(id); if (found.TaskId > 0 && found.ProviderType == StaticWorkProviderTypes.DevOps || found.ProviderType == StaticWorkProviderTypes.Zammad) { SelectedTask = WorkItems.FirstOrDefault(s => s.Id == found.TaskId); } else if (found.Id > 0 && found.ProviderType == StaticWorkProviderTypes.CodeHub) { await EnableCodeHubMode(); if (found.Epic != null) { await OrganizationChanged(found.Epic.Project.OrganizationId); ProjectChanged(found.Epic.ProjectId); } } Entity = found; WorkedDateHelper = DateTimeHelpers.GetFormattedTime(Entity.Hours); StateHasChanged(); }
private async Task PreLoadWorkItems() { var items = await WorkLogsService.GetAllAvailableWorkItemsFromWorkProviders(false); WorkItems = items.WorkItems; RefreshingFromProviders = false; }
private async Task FixDevOpsIds() { if (ProcessingDevOpsFix) { return; } ProcessingDevOpsFix = true; var message = await WorkLogsService.FixDevOpsIds(); ToastService.ShowToast(message, ToastLevel.Info); ProcessingDevOpsFix = false; }
private async Task RefreshFromProviders() { if (RefreshingFromProviders) { return; } RefreshingFromProviders = true; var loadedItems = await WorkLogsService.GetAllAvailableWorkItemsFromWorkProviders(true); WorkItems = loadedItems.WorkItems; RefreshingFromProviders = false; }
private async void DeleteInternal(ModalResult modalResult) { if (!modalResult.Cancelled) { await WorkLogsService.DeleteWorkLog((int)modalResult.Data); await RefreshWorkLogs(); StateHasChanged(); } Modal.OnClose -= DeleteInternal; }
public async Task RefreshWorkLogs() { WorkLogs = await WorkLogsService.GetWorkLogs(WorkLogsInput); TotalTime = DateTimeHelpers.GetFormattedTime(WorkLogs.Sum(s => s.Hours)); TotalTimeMonth = DateTimeHelpers.GetFormattedTime(GetWorkLogsFromPeriod(WorkLogs, TimePeriodEnum.Month).Sum(s => s.Hours)); TotalTimeWeek = DateTimeHelpers.GetFormattedTime(GetWorkLogsFromPeriod(WorkLogs, TimePeriodEnum.Week).Sum(s => s.Hours)); TotalTimeDay = DateTimeHelpers.GetFormattedTime(GetWorkLogsFromPeriod(WorkLogs, TimePeriodEnum.Day).Sum(s => s.Hours)); StateHasChanged(); await PreLoadWorkItems(); }