Ejemplo n.º 1
0
        public ListViewModel(INavigationService navigationService, IPageDialogService pageDialog,
                             IRzeszowiak RzeszowiakRepository, ISetting setting)
        {
            Debug.Write("ListViewModel Contructor");
            _setting = setting ?? throw new NullReferenceException("ISetting setting == null !");
            _rzeszowiakRepository = RzeszowiakRepository ?? throw new NullReferenceException("ListViewModel => IRzeszowiakRepository RzeszowiakRepository == null !");
            _navigationService    = navigationService ?? throw new NullReferenceException("INavigationService navigationService == null !");
            _pageDialog           = pageDialog ?? throw new NullReferenceException("IPageDialogService pageDialog == null !");

            LoadNextAdvert            = new Command(LoadNextItem);
            ListViewItemTapped        = new Command <AdvertShort>(ListViewTappedAsync);
            CategorySelectButtonTaped = new Command(async() =>
            {
                var parameters = new NavigationParameters()
                {
                    { "SelectedCategory", _lastAdvertSearch?.CategorySearch }
                };
                await _navigationService.NavigateAsync("CategorySelectPopup", parameters);
            });

            SearchButtonTapped = new Command(async() =>
            {
                var parameters = new NavigationParameters()
                {
                    { "SearchRecord", _lastAdvertSearch }
                };
                await _navigationService.NavigateAsync("SearchPopup", parameters);
            });

            RefreshAdverList = new Command(async() => await SearchExecute(_lastAdvertSearch, false));
        }
Ejemplo n.º 2
0
        public CategorySelectViewModel(INavigationService navigationService, IRzeszowiak RzeszowiakRepository)
        {
            _rzeszowiakRepository = RzeszowiakRepository ?? throw new NullReferenceException("ListViewModel => IRzeszowiakRepository RzeszowiakRepository == null !");
            _navigationService    = navigationService ?? throw new NullReferenceException("INavigationService navigationService == null !");

            for (int i = 1; i < 4; i++)
            {
                ButtonList.Add(new CatButtonDisplay((byte)i)
                {
                    Title = "", IsVisible = false, Image = CatSelectImage.none
                });
            }
            CategoryTappet     = new Command <CatDisplay>(ItemTapedAsync);
            ButtonTappped      = new Command <CatButtonDisplay>(ButtonTappedAsync);
            ButtonCloseTappped = new Command(async() => { await _navigationService.GoBackAsync(); });
        }
Ejemplo n.º 3
0
        public FavAdvertViewModel(INavigationService navigationService, IPageDialogService pageDialog,
                                  IRzeszowiak RzeszowiakRepository, ISetting setting, IDependencyService dependencyService, IEventAggregator eventAggregator)
        {
            Debug.Write("FavAdvertViewModel Contructor");
            _setting = setting ?? throw new NullReferenceException("ISetting setting == null !");
            _rzeszowiakRepository = RzeszowiakRepository ?? throw new NullReferenceException("ListViewModel => IRzeszowiakRepository RzeszowiakRepository == null !");
            _navigationService    = navigationService ?? throw new NullReferenceException("INavigationService navigationService == null !");
            _pageDialog           = pageDialog ?? throw new NullReferenceException("IPageDialogService pageDialog == null !");
            _dependencyService    = dependencyService ?? throw new NullReferenceException("IDependencyService setting == null !");
            _eventAggregator      = eventAggregator ?? throw new NullReferenceException("IEventAggregator eventAggregator == null !");

            ListViewItemTapped    = new Command <AdvertShort>(ListViewTappedAsync);
            DeleteAllButtonTapped = new Command(DeleteAllAdverFromDb);
            _eventAggregator.GetEvent <AdvertDeleteFavEvent>().Subscribe(DeleteFromList);
            _eventAggregator.GetEvent <AdvertAddFavEvent>().Subscribe(AddToList);
        }
Ejemplo n.º 4
0
        public PreviewViewModel(INavigationService navigationService, IRzeszowiak RzeszowiakRepository,
                                IRzeszowiakImageContainer rzeszowiakImageContainer, IPageDialogService pageDialog,
                                ISetting setting, IDependencyService dependencyService, IEventAggregator eventAggregator)
        {
            _rzeszowiakRepository = RzeszowiakRepository ?? throw new NullReferenceException("IRzeszowiakRepository RzeszowiakRepository == null !");
            _navigationService    = navigationService ?? throw new NullReferenceException("INavigationService navigationService == null !");
            _pageDialog           = pageDialog ?? throw new NullReferenceException("IPageDialogService pageDialog == null !");
            _imageContainer       = rzeszowiakImageContainer ?? throw new NullReferenceException("IRzeszowiakImageContainer rzeszowiakImageContainer == null !");
            _setting           = setting ?? throw new NullReferenceException("ISetting setting == null !");
            _dependencyService = dependencyService ?? throw new NullReferenceException("IDependencyService dependencyService == null !");
            _eventAggregator   = eventAggregator ?? throw new NullReferenceException("IEventAggregator eventAggregator == null !");
            _imageContainer.OnDownloadFinish += ImageDownloadFinish;

            ImageURLsList.CollectionChanged  += (s, e) => { OnPropertyChanged("ImageVisible"); };
            AdditionalData.CollectionChanged += (s, e) => { OnPropertyChanged("AdditionalData"); };

            OpenAdvertPage = new Command(() =>
            {
                if (_lastAdvert?.URL?.Length > 0)
                {
                    _dependencyService.Get <IToast>().Show("Otwieram strone ogłoszenia");
                    Device.OpenUri(new Uri(_lastAdvert?.URL));
                }
            });

            RefreshAdvert = new Command(() =>
            {
                if (_lastAdvertShort != null)
                {
                    _dependencyService.Get <IToast>().Show("Odświeżam ogłoszenie");
                    LoadAdvertMessage(_lastAdvertShort);
                }
            });

            MailAdvert = new Command(async() =>
            {
                Debug.Write("MailAdvert");
                if (MailStatus == MailStatusEnum.email_creating)
                {
                    if (LastSendMailDate.IsSend())
                    {
                        MailStatus = MailStatusEnum.email_send;
                    }
                    else
                    {
                        MailStatus = MailStatusEnum.email_default;
                    }
                    return;
                }

                if (!_setting.IsUserMailCorrect)
                {
                    await _pageDialog.DisplayAlertAsync(_setting.GetAppNameAndVersion, "Nie można wysłać wiadomości.\nUzupełnij w ustawieniach aplikacji swój adres email.", "OK");
                    return;
                }

                if (!CanSendMail())
                {
                    await _pageDialog.DisplayAlertAsync(_setting.GetAppNameAndVersion, "Nie można narazie wysłać wiadomości.", "OK");
                    return;
                }

                if (_lastAdvert?.EmailToken.Length != 10)
                {
                    await _pageDialog.DisplayAlertAsync(_setting.GetAppNameAndVersion, "Problem z wysłaniem wiadomości. Odśwież ogłoszenie.", "OK");
                    return;
                }

                MailStatus = MailStatusEnum.email_creating;
                ScrollToButtom?.Invoke();
            });

            FavoriteAdvert = new Command(async() =>
            {
                if (_lastAdvert == null)
                {
                    return;
                }

                if (IsFavorite)
                {
                    if (await _setting.DeleteAdvertDBAsync(_lastAdvert))
                    {
                        _dependencyService.Get <IToast>().Show("Usunięto ogłoszenie z ulubionych");
                        _eventAggregator.GetEvent <AdvertDeleteFavEvent>().Publish(_lastAdvertShort);
                        IsFavorite = !IsFavorite;
                    }
                    else
                    {
                        _dependencyService.Get <IToast>().Show("Wystąpił błąd podczas usuwania ogłoszenia z ulubionych");
                    }
                }
                else
                {
                    if (await _setting.InsertOrUpdateAdvertDBAsync(_lastAdvert))
                    {
                        _eventAggregator.GetEvent <AdvertAddFavEvent>().Publish(_lastAdvert);
                        _dependencyService.Get <IToast>().Show("Dodano ogłoszenie do ulubionych");
                        IsFavorite = !IsFavorite;
                    }
                    else
                    {
                        _dependencyService.Get <IToast>().Show("Wystąpił błąd podczas dodawania ogłoszenia do ulubionych");
                    }
                }
            });

            ImageTapped = new Command <int>(async(selecteIndex) =>
            {
                if (ImageURLsList.Count == 0)
                {
                    return;
                }

                var navigationParams = new NavigationParameters();
                navigationParams.Add("ImageSelectedIndex", selecteIndex);
                navigationParams.Add("ImageList", ImageURLsList);
                await _navigationService.NavigateAsync("PreviewImagePage", navigationParams, useModalNavigation: false, animated: false);
            });

            BackButtonTapped = new Command(async() =>
            {
                await _navigationService.GoBackAsync(null, false, false);
            });


            MailSendButtonTapped = new Command <string>(async(message) =>
            {
                Debug.Write("MailSendButtonTapped");
                if (!_setting.IsUserMailCorrect)
                {
                    await _pageDialog.DisplayAlertAsync(_setting.GetAppNameAndVersion, "Nie można wysłać wiadomości.\nUzupełnij w ustawieniach aplikacji swój adres email.", "OK");
                    return;
                }

                if ((message?.Length ?? 0) == 0)
                {
                    await _pageDialog.DisplayAlertAsync(_setting.GetAppNameAndVersion, "Nie można wysłać pustej wiadomości. Weź coś napisz.", "OK");
                    return;
                }

                if (!CanSendMail())
                {
                    await _pageDialog.DisplayAlertAsync(_setting.GetAppNameAndVersion, "Nie można narazie wysłać wiadomości.", "OK");
                    return;
                }

                if (_lastAdvert?.EmailToken.Length != 10)
                {
                    await _pageDialog.DisplayAlertAsync(_setting.GetAppNameAndVersion, "Problem z wysłaniem wiadomości. Odśwież ogłoszenie.", "OK");
                    return;
                }

                MailStatus = MailStatusEnum.email_sending;

                var status = await _rzeszowiakRepository.SendUserMessage(_lastAdvert, message, _setting.UserEmail);
                if (status)
                {
                    await _setting.UpdateSendMailNoticeAsync(_lastAdvert);
                    LastSendMailDate = DateTime.Now;
                    MailStatus       = MailStatusEnum.email_send;
                    await _pageDialog.DisplayAlertAsync(_setting.GetAppNameAndVersion, "Twoja wiadomość została wysłana.", "OK");
                }
                else
                {
                    MailStatus = MailStatusEnum.email_default;
                    await _pageDialog.DisplayAlertAsync(_setting.GetAppNameAndVersion, "Twoja wiadomość nie została wysłana. Wystąpił nieoczekiwany błąd.", "OK");
                }
            });
        }