Example #1
0
        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);
            });
        }
Example #3
0
        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);
        }
Example #4
0
        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);
                }
            }
        }
Example #6
0
        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);
                }
            }
        }
Example #7
0
        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();
            });
        }
Example #8
0
        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));
            });
        }