private async Task UploadPicAsync()
        {
            var picker = new FileOpenPicker();

            picker.ViewMode = PickerViewMode.Thumbnail;
            picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;

            picker.FileTypeFilter.Add(".jpg");
            picker.FileTypeFilter.Add(".jpeg");
            picker.FileTypeFilter.Add(".png");
            picker.FileTypeFilter.Add(".gif");

            StorageFile file = await picker.PickSingleFileAsync();

            if (file == null)
            {
                return;
            }

            using (var client = new HttpClient())
                using (var fileStream = await file.OpenReadAsync())
                {
                    var pictureCreation = new PictureCreation
                    {
                        PictureFileName = file.Name,
                        Caption         = string.Empty,
                        SetAsProfilePic = true,
                        OrphanID        = MasterMenuItem.OrphanID
                    };

                    var picRepository = new PictureHttpRepository(client);

                    if (AppSettings.UseWebApi)
                    {
                        MasterMenuItem.ProfilePicUri = await picRepository.UploadImageAsync(pictureCreation, fileStream.AsStreamForRead());

                        //
                        // TODO re-render the view
                        //
                        Uri         uri = new Uri(MasterMenuItem.ProfilePicUri);
                        BitmapImage img = new BitmapImage(uri);
                        imgProfilePic.Source = img;
                    }
                    else // Direct to db
                    {
                        MasterMenuItem.ProfilePicUri = await picRepository.UploadImageDemoAsync(pictureCreation, fileStream.AsStreamForRead());

                        //
                        // TODO re-render the view
                        //
                        Uri         uri = new Uri(MasterMenuItem.ProfilePicUri);
                        BitmapImage img = new BitmapImage(uri);
                        imgProfilePic.Source = img;
                    }
                }
        }
Example #2
0
        private async Task LoadOrphansAsync()
        {
            //SampleItems.Clear();
            OrphanItems.Clear();

            IEnumerable <Orphan> data;

            //
            // Use Web API or db directly
            //
            if (AppSettings.UseWebApi)
            {
                using (HttpClient client = new HttpClient())
                {
                    var orphanRepo = new OrphanHttpRepository(client);
                    var parameters = new OrphanParametes
                    {
                        PageNumber = 1,
                        PageSize   = 1000
                    };
                    var response = await orphanRepo.GetOrphansAsync(parameters);

                    data = response.Orphans.AsEnumerable();
                }
            }
            else
            {
                data = await OrphanDataService.AllOrphans();

                using (HttpClient client = new HttpClient())
                {
                    var orphanRepo = new PictureHttpRepository(client);
                    var picUrls    = await orphanRepo.GetOrphanPicUrls();

                    foreach (var item in picUrls)
                    {
                        var orphan = data.FirstOrDefault(x => x.OrphanID == item.OrphanID);
                        if (orphan != null)
                        {
                            orphan.ProfilePicUri = item.PicUrl;
                        }
                    }
                }
            }

            //var data = await SampleDataService.GetMasterDetailDataAsync();
            //var data = await OrphanDataService.AllOrphans();

            foreach (var item in data)
            {
                //SampleItems.Add(item);
                OrphanItems.Add(item);
            }

            if (MasterDetailsViewControl.ViewState == MasterDetailsViewState.Both)
            {
                Selected = OrphanItems.FirstOrDefault();

                LoadNarrationItems();
            }
        }