Esempio n. 1
0
        internal async Task <Models.Image> AddImageAsync(string userId, Models.Album album, string sourceFile)
        {
            var image = new Models.Image {
                UserId       = userId,
                AlbumId      = album.AlbumId,
                UploadFormat = "Mobile Image"
            };

            await imageTableSync.InsertAsync(image); // create a new image record

            // add image to the record
            string copiedFilePath = await FileHelper.CopyFileAsync(image.Id, sourceFile, DataFilesPath);

            string copiedFileName = Path.GetFileName(copiedFilePath);

            // add an object representing a resize request for the blob
            // it will be synced after all images have been uploaded
            await resizeRequestSync.InsertAsync(new ResizeRequest { BlobName = copiedFileName });

            var file = await imageTableSync.AddFileAsync(image, copiedFileName);

            image.File = file;

            return(image);
        }
        public ImagesList(App app, Album album)
        {
            InitializeComponent();

            this.album = album;

            // allow image upload to the public album with the default service only if logged in with AAD
            bool showImageUpload =
                !album.IsDefault ||
                (!Settings.IsDefaultServiceUrl() ||
                 Settings.Current.AuthenticationType == Settings.AuthOption.ActiveDirectory);

            imgUpload.IsVisible = showImageUpload;

            viewModel = new ImagesListViewModel(App.Instance.MobileService, App.Instance);
            BindingContext = viewModel;
            viewModel.PropertyChanged += ViewModel_PropertyChanged;
            viewModel.DeleteImageViewAction = OnDelete;           
        }
Esempio n. 3
0
        internal async Task <Models.Image> AddImageAsync(Models.Album album, string sourceFile)
        {
            var image = new Models.Image {
                UserId       = Settings.Current.CurrentUserId,
                AlbumId      = album.AlbumId,
                UploadFormat = "Mobile Image",
                UpdatedAt    = DateTime.Now
            };

            await imageTableSync.InsertAsync(image); // create a new image record

            // add image to the record
            string copiedFilePath = await FileHelper.CopyFileAsync(image.Id, sourceFile, DataFilesPath);

            string copiedFileName = Path.GetFileName(copiedFilePath);

            var file = await imageTableSync.AddFileAsync(image, copiedFileName);

            image.File = file;

            return(image);
        }
        private async Task CreateAlbumAsync()
        {
            var album = new Album() 
            {
                AlbumName = EditedAlbumName,
                IsDefault = false,
                UserId = Settings.Current.CurrentUserId
            };

            await app.albumTableSync.InsertAsync(album);

            DependencyService.Get<IPlatform>().LogEvent("CreateAlbum");
        }
        public async Task DeleteAlbumAsync(Album selectedAlbum)
        {
            await app.albumTableSync.DeleteAsync(selectedAlbum);

            DependencyService.Get<IPlatform>().LogEvent("DeleteAlbum");
        }
        private void OnStartAlbumRename(object obj)
        {
            var selectedAlbum = obj as Album;
            Debug.WriteLine($"Selected album: {selectedAlbum?.AlbumName}");

            if (selectedAlbum != null) {
                currentAlbumEdit = selectedAlbum;
                IsRename = true;
                EditedAlbumName = selectedAlbum.AlbumName;
                ShowInputControl = true;
                ShowCancelButton = true;
            }
        }
        private async void OnDeleteAlbum(Album album)
        {
            var result = await DisplayAlert("Delete album?", "Delete album and all associated images?", "Yes", "No");

            if (result) {
                await viewModel.DeleteAlbumAsync(album);
                await RefreshAsync(true);
            }
        }
        public async Task<bool> UpdateAlbumAsync(Album selectedAlbum)
        {
            bool bRes = true; //Assume success

            try
            {
                //await albumTable.UpdateAsync(selectedAlbum);
                await (App.Current as App).albumTableSync.UpdateAsync(selectedAlbum);
            }
            catch (Exception ex)
            {
                bRes = false;
            }

            return bRes;
        }