private async void Page_Loaded(object sender, RoutedEventArgs e) { var divisions = await Proxy.GetAllDivisions(); DivisionCollection.Load(divisions); DataGridElementView.ItemsSource = ElementCollection.Elements; var sessionExists = await ElementViewSession.FileExistsAsync(); if (!sessionExists) { await ShowProjectDialog(); } else { LoadingText.Text = "Die letzte Sitzung wird wieder hergestellt"; var session = await ElementViewSession.LoadAsync(); if (session == null || session.Divison == null || session.PlantOder == null) { await ShowProjectDialog(); } else { await GetElements(session.PlantOder, session.Divison); } } LoadingControl.IsLoading = false; }
private async Task GetElements(PlantOrderModel plantOrder, DivisionModel division) { PlantOrder = plantOrder; List <ElementModel> elements; var filters = await Proxy.GetFiltersAsync(plantOrder.Id, CurrentEmployee.EmployeeId); FilterCollection.Load(filters); if (division.DivisionType.DivisionType == Contracts.Domain.Core.Enums.DivisionType.Profile) { elements = await Proxy.GetElementProfiles(plantOrder.Id, division.DivisionId); DataGridElementView.Columns[2].Header = "Profil"; } else { elements = await Proxy.GetElements(); DataGridElementView.Columns[2].Header = "Position"; foreach (var element in elements) { element.Contraction = (element.Count % 2 == 0) ? "Bl" : "Fl"; Random rnd = new Random(); element.Amount = Math.Round(rnd.NextDouble() * element.Count); } } for (int i = 0; i < DivisionComboBox.Items.Count; i++) { if (DivisionComboBox.Items[i] is DivisionModel item) { if (item.DivisionId == division.DivisionId) { DivisionComboBox.SelectedIndex = i; break; } } } PlantOrderHeaderText.Text = string.Format("{0:s} - {1:s} - {2:s} - {3:s}", plantOrder.Number, plantOrder.Name, plantOrder.Section, plantOrder.Description); LastRefreshText.Text = DateTime.Now.ToString("hh:mm:ss - ddd d MMM", CultureInfo.CreateSpecificCulture("de-DE")); var session = new ElementViewSession() { Divison = division, PlantOder = plantOrder }; if (await ElementViewSession.SaveAsync(session) == false) { NotificationControl.Show("Die aktuelle Sitzung konnte nicht gespeichert werden", 4000); } ElementCollection.Load(elements); }