private void UpdateAttachPhotoItem()
        {
            int number = Enumerable.Count <AlbumPhoto>(this._viewModel.PhotosVM.AlbumPhotos, (Func <AlbumPhoto, bool>)(p => p.IsSelected));

            this._albumPhotosSelected = number > 0;
            AttachmentPickerItemViewModel pickerItemViewModel = (AttachmentPickerItemViewModel)Enumerable.FirstOrDefault <AttachmentPickerItemViewModel>(this._viewModel.AttachmentTypes, (Func <AttachmentPickerItemViewModel, bool>)(at => at.AttachmentType.AttachmentType == AttachmentType.Photo));

            if (pickerItemViewModel == null)
            {
                return;
            }
            if (this._albumPhotosSelected)
            {
                if (this._savedText == "")
                {
                    this._savedText = pickerItemViewModel.Title;
                }
                pickerItemViewModel.Title         = UIStringFormatterHelper.FormatNumberOfSomething(number, CommonResources.AttachOnePhotoFrm, CommonResources.AttachTwoFourPhotosFrm, CommonResources.AttachFivePhotosFrm, true, null, false);
                pickerItemViewModel.IsHighlighted = true;
            }
            else
            {
                pickerItemViewModel.Title         = this._savedText;
                pickerItemViewModel.IsHighlighted = false;
            }
        }
        private void Item_OnClicked(object sender, System.Windows.Input.GestureEventArgs e)
        {
            AttachmentPickerItemViewModel dataContext = (sender as FrameworkElement).DataContext as AttachmentPickerItemViewModel;

            if (dataContext == null)
            {
                return;
            }
            this.HandleAttachmentSelection(dataContext);
        }
        private void Item_OnClicked(object sender, System.Windows.Input.GestureEventArgs e)
        {
            AttachmentPickerItemViewModel dataContext = ((FrameworkElement)sender).DataContext as AttachmentPickerItemViewModel;

            if (dataContext == null)
            {
                return;
            }
            // ISSUE: reference to a compiler-generated field
            AttachmentSubItemSelectedEventHandler itemSelected = this.ItemSelected;

            if (itemSelected == null)
            {
                return;
            }
            AttachmentPickerItemViewModel picketItem = dataContext;

            itemSelected(picketItem);
        }
        private void HandleAttachmentSelection(AttachmentPickerItemViewModel item)
        {
            if (item == null)
            {
                return;
            }
            if (this._subPickerUC != null)
            {
                this._subPickerUC.ItemSelected -= new AttachmentSubItemSelectedEventHandler(this.HandleAttachmentSelection);
            }
            AttachmentType attachmentType = item.AttachmentType.AttachmentType;

            switch (attachmentType)
            {
            case AttachmentType.Photo:
                if (!item.IsHighlighted)
                {
                    List <NamedAttachmentType> attachmentTypes = new List <NamedAttachmentType>((IEnumerable <NamedAttachmentType>)AttachmentTypes.AttachmentPhotoSubtypes);
                    if (this.OwnerId < 0L && this._adminLevel > 1)
                    {
                        attachmentTypes.Add(AttachmentTypes.PhotoCommunityType);
                    }
                    this.ShowAttachmentSubPickerFor(attachmentTypes);
                    break;
                }
                ((UIElement)this.borderLoading).Visibility = Visibility.Visible;
                ThreadPool.QueueUserWorkItem((WaitCallback)(state =>
                {
                    List <Stream> choosedPhotos = new List <Stream>();
                    List <Stream> previewsPhotos = new List <Stream>();
                    List <Size> sizes = new List <Size>();
                    this._viewModel.PhotosVM.SuppressEXIFFetch = true;
                    IEnumerator <AlbumPhoto> enumerator4 = ((IEnumerable <AlbumPhoto>)Enumerable.Where <AlbumPhoto>(this._viewModel.PhotosVM.AlbumPhotos, (Func <AlbumPhoto, bool>)(ap => ap.IsSelected))).GetEnumerator();
                    try
                    {
                        while (enumerator4.MoveNext())
                        {
                            AlbumPhoto current = enumerator4.Current;
                            Stream imageStream = current.ImageStream;
                            if (imageStream != null)
                            {
                                choosedPhotos.Add(imageStream);
                                previewsPhotos.Add(current.ThumbnailStream);
                                Size size = new Size();
                                sizes.Add(size);
                            }
                        }
                    }
                    finally
                    {
                        if (enumerator4 != null)
                        {
                            enumerator4.Dispose();
                        }
                    }
                    Execute.ExecuteOnUIThread((Action)(() =>
                    {
                        ParametersRepository.SetParameterForId("ChoosenPhotos", choosedPhotos);
                        ParametersRepository.SetParameterForId("ChoosenPhotosPreviews", previewsPhotos);
                        ParametersRepository.SetParameterForId("ChoosenPhotosSizes", sizes);
                        this._quickPhotoPickCallback();
                        ((UIElement)this.borderLoading).Visibility = Visibility.Collapsed;
                        this._ds.Hide();
                    }));
                }));
                break;

            case AttachmentType.Video:
                List <NamedAttachmentType> attachmentTypes1 = new List <NamedAttachmentType>((IEnumerable <NamedAttachmentType>)AttachmentTypes.AttachmentVideoSubtypes);
                if (this.OwnerId < 0L && this._adminLevel > 1)
                {
                    attachmentTypes1.Add(AttachmentTypes.VideoCommunityType);
                }
                this.ShowAttachmentSubPickerFor(attachmentTypes1);
                break;

            case AttachmentType.Audio:
                Navigator.Current.NavigateToAudio(1, 0, false, 0, 0, "");
                break;

            case AttachmentType.Document:
                Navigator.Current.NavigateToDocumentsPicker(this._viewModel.MaxCount);
                break;

            case AttachmentType.Location:
                Navigator.Current.NavigateToMap(true, 0.0, 0.0);
                break;

            case AttachmentType.PhotoFromPhone:
                Navigator.Current.NavigateToPhotoPickerPhotos(this._viewModel.MaxCount, false, false);
                break;

            case AttachmentType.VideoFromPhone:
                this._ds.Hide();
                FileOpenPicker fileOpenPicker1 = new FileOpenPicker();
                fileOpenPicker1.ContinuationData["FilePickedType"] = (int)attachmentType;
                List <string> .Enumerator enumerator1 = VKConstants.SupportedVideoExtensions.GetEnumerator();
                try
                {
                    while (enumerator1.MoveNext())
                    {
                        string current = enumerator1.Current;
                        fileOpenPicker1.FileTypeFilter.Add(current);
                    }
                }
                finally
                {
                    enumerator1.Dispose();
                }
                fileOpenPicker1.ContinuationData["Operation"] = "VideoFromPhone";
                fileOpenPicker1.PickSingleFileAndContinue();
                break;

            case AttachmentType.DocumentFromPhone:
                this._ds.Hide();
                FileOpenPicker fileOpenPicker2 = new FileOpenPicker();
                ((IDictionary <string, object>)fileOpenPicker2.ContinuationData)["FilePickedType"] = attachmentType;
                List <string> .Enumerator enumerator2 = VKConstants.SupportedDocExtensions.GetEnumerator();
                try
                {
                    while (enumerator2.MoveNext())
                    {
                        string current = enumerator2.Current;
                        fileOpenPicker2.FileTypeFilter.Add(current);
                    }
                }
                finally
                {
                    enumerator2.Dispose();
                }
                ((IDictionary <string, object>)fileOpenPicker2.ContinuationData)["Operation"] = "DocumentFromPhone";
                fileOpenPicker2.PickSingleFileAndContinue();
                break;

            case AttachmentType.PhotoMy:
                Navigator.Current.NavigateToPhotoAlbums(true, 0, false, 0);
                break;

            case AttachmentType.VideoMy:
                Navigator.Current.NavigateToVideo(true, 0, false, false);
                break;

            case AttachmentType.DocumentMy:
                Navigator.Current.NavigateToDocumentsPicker(this._viewModel.MaxCount);
                break;

            case AttachmentType.DocumentPhoto:
                this._ds.Hide();
                FileOpenPicker fileOpenPicker3 = new FileOpenPicker();
                ((IDictionary <string, object>)fileOpenPicker3.ContinuationData)["FilePickedType"] = attachmentType;
                List <string> .Enumerator enumerator3 = ((List <string>)VKConstants.SupportedDocLibraryExtensions).GetEnumerator();
                try
                {
                    while (enumerator3.MoveNext())
                    {
                        string current = enumerator3.Current;
                        fileOpenPicker3.FileTypeFilter.Add(current);
                    }
                }
                finally
                {
                    enumerator3.Dispose();
                }
                ((IDictionary <string, object>)fileOpenPicker3.ContinuationData)["Operation"] = "DocumentLibraryFromPhone";
                fileOpenPicker3.PickSingleFileAndContinue();
                break;

            case AttachmentType.Poll:
                Navigator.Current.NavigateToCreateEditPoll(this.OwnerId, 0, null);
                break;

            case AttachmentType.Timer:
                Navigator.Current.NavigateToPostSchedule(new DateTime?());
                break;

            case AttachmentType.PhotoCommunity:
                Navigator.Current.NavigateToPhotoAlbums(true, -this.OwnerId, true, this._adminLevel);
                break;

            case AttachmentType.VideoCommunity:
                Navigator.Current.NavigateToVideo(true, -this.OwnerId, true, false);
                break;

            case AttachmentType.Graffiti:
                if (this._conversationInfo == null)
                {
                    break;
                }
                this._ds.Hide();
                ParametersRepository.SetParameterForId("ConversationInfo", this._conversationInfo);
                Navigator.Current.NavigateToGraffitiDrawPage(this._conversationInfo.UserOrChatId, this._conversationInfo.IsChat, this._conversationInfo.Title);
                break;

            case AttachmentType.MoneyTransfer:
                Navigator.Current.NavigateToSendMoneyPage(this._conversationInfo.User.id, this._conversationInfo.User, 0, "");
                break;

            case AttachmentType.Gift:
                Navigator.Current.NavigateToGiftsCatalog(this._conversationInfo.UserOrChatId, this._conversationInfo.IsChat);
                break;
            }
        }
        private static List <AttachmentPickerItemViewModel> Convert(IEnumerable <NamedAttachmentType> attachmentTypes, bool excludeLocation)
        {
            List <AttachmentPickerItemViewModel> pickerItemViewModelList = new List <AttachmentPickerItemViewModel>();
            IEnumerator <NamedAttachmentType>    enumerator = attachmentTypes.GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    NamedAttachmentType current = enumerator.Current;
                    if (!excludeLocation || current.AttachmentType != AttachmentType.Location)
                    {
                        AttachmentPickerItemViewModel pickerItemViewModel = new AttachmentPickerItemViewModel()
                        {
                            Title          = string.Concat(((string)((string)current.Name).Substring(0, 1)).ToUpper(), ((string)current.Name).Substring(1)),
                            AttachmentType = current
                        };
                        switch (current.AttachmentType)
                        {
                        case AttachmentType.Photo:
                            pickerItemViewModel.Icon            = "/Resources/AttachmentPicker/Types/Photo32px.png";
                            pickerItemViewModel.HighlightedIcon = "/Resources/Attach32px.png";
                            break;

                        case AttachmentType.Video:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Types/Video32px.png";
                            break;

                        case AttachmentType.Audio:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Types/Audio32px.png";
                            break;

                        case AttachmentType.Document:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Types/Document32px.png";
                            break;

                        case AttachmentType.Location:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Types/Location32px.png";
                            break;

                        case AttachmentType.PhotoFromPhone:
                        case AttachmentType.VideoFromPhone:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Locations/Gallery32px.png";
                            break;

                        case AttachmentType.PhotoMy:
                        case AttachmentType.VideoMy:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Locations/User32px.png";
                            break;

                        case AttachmentType.Poll:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Types/Poll32px.png";
                            break;

                        case AttachmentType.Timer:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Types/Timer32px.png";
                            break;

                        case AttachmentType.PhotoCommunity:
                        case AttachmentType.VideoCommunity:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Locations/Community32px.png";
                            break;

                        case AttachmentType.Graffiti:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Types/Graffiti32px.png";
                            break;

                        case AttachmentType.MoneyTransfer:
                            pickerItemViewModel.Icon = "/Resources/AttachmentPicker/Types/Money32px.png";
                            break;

                        case AttachmentType.Gift:
                            pickerItemViewModel.Icon = "/Resources/Gift32px.png";
                            break;
                        }
                        pickerItemViewModelList.Add(pickerItemViewModel);
                    }
                }
            }
            finally
            {
                if (enumerator != null)
                {
                    enumerator.Dispose();
                }
            }
            return(pickerItemViewModelList);
        }