예제 #1
0
        public InstantGalleryViewModel(TLMessage message, TLWebPage webPage)
            : base(null, null, null)
        {
            _shouldGroup = true;

            Items        = new MvxObservableCollection <GalleryItem>(GetWebPagePhotos(message, webPage));
            FirstItem    = Items.FirstOrDefault();
            SelectedItem = Items.FirstOrDefault();
            TotalItems   = Items.Count;
        }
예제 #2
0
        private async void SearchExecute(string query)
        {
            Query = query;

            var response = await ProtoService.SearchAsync(_dialog.Peer, _query, _from?.ToInputUser(), null, 0, 0, 0, 0, 100);

            if (response.IsSucceeded && response.Result is ITLMessages result)
            {
                if (response.Result is TLMessagesMessagesSlice slice)
                {
                    TotalItems = slice.Count;
                }
                else if (response.Result is TLMessagesChannelMessages channelMessages)
                {
                    TotalItems = channelMessages.Count;
                }
                else
                {
                    TotalItems = result.Messages.Count;
                }

                Items        = new MvxObservableCollection <TLMessageBase>(result.Messages);
                SelectedItem = Items.FirstOrDefault();

                if (_selectedItem != null)
                {
                    await Dialog.LoadMessageSliceAsync(null, _selectedItem.Id);
                }
            }
            else
            {
                // TODO
            }
        }
        public async Task AddTask()
        {
            await Task.Delay(10);

            var result = await _navSvc.Navigate <ArtistAddViewModel, Artist>();

            if (null != result)
            {
                var foundArtist = _items.FirstOrDefault(x => x.Name == result.Name);
                if (null == foundArtist)
                {
                    Items.Insert(0, result);
                    //await RaisePropertyChanged(() => Items);
                    // add this to the observarble list
                    //_items.Insert(0, result);
                }
            }
        }
예제 #4
0
        public async Task <bool> ValidateAndSaveDeliveryAddressFields(string deliveryId, MvxObservableCollection <IOrderFieldItemVM> fields)
        {
            var result = false;

            try
            {
                var validation = await DeliveryService.ConfirmDeliveryAddress(deliveryId, fields.ToDictionary(x => x.Id, x => x.Value));

                if (validation == null || (validation.NotValidFields.IsNullOrEmpty() && validation.Error.IsNullOrEmtpy()))
                {
                    result = true;
                }
                else
                {
                    foreach (var notValidField in validation.NotValidFields)
                    {
                        var field = fields.FirstOrDefault(x => x.Id.Equals(notValidField.Id));
                        field.IsValid = false;
                    }

                    if (!validation.Error.IsNullOrEmpty())
                    {
                        UserDialogs.Error(validation.Error);
                    }
                }
            }
            catch (ConnectionException ex)
            {
                OnConnectionException(ex);
            }
            catch (Exception ex)
            {
                OnException(ex);
            }
            return(result);
        }