private async Task LoadCategories(IOutcomeReportCategoryServiceProvider categoryServiceProvider) { if (IsBusy) { return; } IsBusy = true; using (var categoryService = categoryServiceProvider.GetService()) { var response = await categoryService.GetAllAsync(new GetAllCategoriesRequest()); if (ReferenceEquals(response.Exception, null)) { foreach (var ct in response.Categories) { Categories.Add(ct); } } else { Debug.WriteLine(response.Exception.Message); } } IsBusy = false; }
public PeriodLinesViewModel(IOutcomeReportServiceProvider provider, IOutcomeReportCategoryServiceProvider categoryServiceProvider) { Lines = new ObservableCollection <LineViewModel>(); Categories = new ObservableCollection <CategoryViewModel>(); Task.Run(async() => await LoadCategories(categoryServiceProvider)); Task.Run(async() => await LoadData(provider)); AddLine = new Command(async() => { MessagingCenter.Subscribe <NewPeriodLinesViewModel, NewPeriodLinesViewModel>(this, "AddPeriodLine", async(obj, item) => { await AddPeriodLine(provider, item); }); var page = new NewPeriodLinePage(); page.Disappearing += (obj, arg) => { MessagingCenter.Instance.Unsubscribe <NewPeriodLinesViewModel, NewPeriodLinesViewModel>(this, "AddPeriodLine"); }; await Navigation.PushModalAsync(page); }); ScanQr = new Command(async() => { MessagingCenter.Subscribe <NewPeriodLinesViewModel, NewPeriodLinesViewModel>(this, "AddPeriodLine", async(obj, item) => { await AddPeriodLine(provider, item); }); var page = new NewPeriodLinePage(); page.Disappearing += (obj, arg) => { MessagingCenter.Instance.Unsubscribe <NewPeriodLinesViewModel, NewPeriodLinesViewModel>(this, "AddPeriodLine"); }; var scanner = DependencyService.Get <OutcomeReport.QRService.IQrScanningService>(); var result = await scanner.ScanAsync(); if (result != null) { ((NewPeriodLinesViewModel)page.BindingContext).Amount = result.Amount; ((NewPeriodLinesViewModel)page.BindingContext).Date = result.Date; } else { ((NewPeriodLinesViewModel)page.BindingContext).Description = "An error occurred while getting info from QR code!"; } await Navigation.PushModalAsync(page); }); }
private async Task AddCategoryInternl(IOutcomeReportCategoryServiceProvider provider, string item) { using (var service = provider.GetService()) { var categoriesResponse = await service.CreateCategoryAsync(new CreateCategoriesRequest(item)); if (ReferenceEquals(categoriesResponse.Exception, null) == false) { Debug.WriteLine(categoriesResponse.Exception); } } await LoadDate(provider); }
public CategoriesViewModel(IOutcomeReportCategoryServiceProvider provider) { Categories = new ObservableCollection <CategoryViewModel>(); Task.Run(async() => await LoadDate(provider)); AddCategory = new Command(async() => { MessagingCenter.Subscribe <NewCategoryViewModel, string>(this, "AddCategory", async(obj, item) => { await AddCategoryInternl(provider, item); }); var page = new NewCategoryModalView(); page.Disappearing += (obj, args) => { MessagingCenter.Unsubscribe <NewCategoryViewModel, string>(this, "AddCategory"); }; await Navigation.PushModalAsync(page); }); }
private async Task LoadCategories(IOutcomeReportCategoryServiceProvider categoryServiceProvider) { using (var categoryService = categoryServiceProvider.GetService()) { var response = await categoryService.GetAllAsync(new GetAllCategoriesRequest()); if (ReferenceEquals(response.Exception, null)) { foreach (var c in response.Categories) { Categories.Add(c); } } else { Debug.WriteLine(response.Exception); } } }
private async Task LoadDate(IOutcomeReportCategoryServiceProvider provider) { using (var service = provider.GetService()) { var categoriesResponse = await service.GetAllAsync(new ApplicationService.GetAllCategoriesRequest()); if (ReferenceEquals(categoriesResponse.Exception, null)) { Categories.Clear(); foreach (var cat in categoriesResponse.Categories) { Categories.Add(cat); } } else { Debug.WriteLine(categoriesResponse.Exception); } } }
public NewPeriodLinesViewModel(IOutcomeReportCategoryServiceProvider categoryServiceProvider) { Title = "Period New Line"; Date = DateTime.Now; Categories = new ObservableCollection <CategoryViewModel>(); Task.Run(async() => await LoadCategories(categoryServiceProvider)); AddNewPeriodLine = new Command(async() => { if (IsBusy) { return; } IsBusy = true; var message = string.Empty; if (ValidateDates(ref message) == false) { ErrorMessage = message; } else { MessagingCenter.Send(this, "AddPeriodLine", this); await Navigation.PopModalAsync(); } IsBusy = false; }); Cancel = new Command(async() => { await Navigation.PopModalAsync(); }); }
public PeriodsViewModel(IOutcomeReportServiceProvider outcomeReportServiceProvider, IOutcomeReportCategoryServiceProvider w) { ActivePeriods = new ObservableCollection <PeriodViewModel>(); LoadData(outcomeReportServiceProvider); CreateNewPeriod = new Command(async() => { MessagingCenter.Subscribe <NewPeriodViewModel, NewPeriod>(this, "AddPeriod", async(obj, item) => { await AddPeriod(outcomeReportServiceProvider, item); }); var page = new NewPeriodPage(); page.Disappearing += (obj, arg) => { MessagingCenter.Unsubscribe <NewPeriodViewModel, NewPeriod>(this, "AddPeriod"); }; await Navigation.PushModalAsync(page); }); OpenPeriod = new Command(async(item) => { await Navigation.PushAsync(new PeriodLinesPage((PeriodViewModel)item)); }); }