private async Task InitiateAsync() { IsMainViewerInitiating = true; await PowerCompany.LoadFromApplicationUriAsync(); foreach (var company in Enumerable.Range(0, PowerCompany.Companies.Count).Select(index => new PowerCompanyViewModel(index))) { CompanyCollection.Add(company); } await Site.LoadFromApplicationUriAsync(); CheckAreaCoordinates(Site.Sites, MainViewerSize); RaisePropertyChanged(nameof(MainViewerZoomFactor)); RaisePropertyChanged(nameof(MainCanvasCenterPosition)); foreach (var site in Site.Sites.Select((x, index) => new SiteViewModel(index) { Location = ConvertPositionFromReal(x.Longitude, x.Latitude) })) { SiteCollection.Add(site); } // Wait for all site members being loaded. Otherwise, subsequent restoring position // may not work correctly. while (SiteCollection.Any(x => !x.IsLoaded)) { await Task.Delay(TimeSpan.FromMilliseconds(50)); } IsMainViewerInitiating = false; }
static void Main(string[] args) { Debug.WriteLine(PowerCompany.ExportList(true)); if (File.Exists(PowerCompany.CompanyFileName)) { var source = File.ReadAllText(PowerCompany.CompanyFileName); if (PowerCompany.ImportList(source)) { Debug.WriteLine("Loaded company list."); } } if (PowerCompany.UpdateListAsnyc().Result) { File.WriteAllText(PowerCompany.CompanyFileName, PowerCompany.ExportList()); Debug.WriteLine("Saved company list."); } foreach (var company in PowerCompany.Companies) { Debug.WriteLine(company.Name); } Task.WhenAll(PowerCompany.Companies.Select(async x => await x.CheckAsync())).Wait(); foreach (var company in PowerCompany.Companies.Where(x => x.Data.IsLoaded)) { Debug.WriteLine($"{company.Name}: {company.Data.UsageAmount} ({company.Data.DataTime:HH:mm}) / {company.Data.PeakSupply} -> {company.Data.UsagePercentage:f1}%"); } }
public CompanyViewModel(PowerCompany company) { this._company = company; }