コード例 #1
0
        public async Task OnPostAsync()
        {
            var user = await userManager.GetUserAsync(User);

            string mydir = Path.Combine(environment.WebRootPath, "imagefolder", user.Id);

            Directory.CreateDirectory(mydir);

            foreach (var file in Upload)
            {
                FileInfo f            = new FileInfo(file.FileName);
                string   originalFile = Path.Combine(mydir, file.FileName);

                using (var fileStream = new FileStream(originalFile, FileMode.Create))
                {
                    await file.CopyToAsync(fileStream);
                }
                using Bitmap b = new Bitmap(originalFile);

                string thumb   = Helper.SaveResizedFile(b, originalFile, 200, 200);
                string resized = Helper.SaveResizedFile(b, originalFile, b.Width / 2, b.Height / 2);

                await AzureStorage.AddFilesAsync(originalFile, user.Id);

                await AzureStorage.AddFilesAsync(Path.Combine(mydir, thumb), user.Id);

                await AzureStorage.AddFilesAsync(Path.Combine(mydir, resized), user.Id);

                var myImages = new MyImages(ijpContext, user.Id);
                myImages.AddImageFromFile(originalFile, resized, thumb, user.Id);

                System.IO.File.Delete(file.FileName);
            }
            Directory.Delete(Path.Combine(environment.WebRootPath, "imagefolder", user.Id), true);
        }
コード例 #2
0
        public GalleryModel(IjpContext _ijpContext, IHttpContextAccessor _httpContextAccessor)
        {
            httpContextAccessor = _httpContextAccessor;
            string userId = httpContextAccessor.HttpContext.User.Claims.FirstOrDefault(c => c.Type.Contains("nameidentifier")).Value;

            myImages = new MyImages(_ijpContext, userId);
        }
コード例 #3
0
        public async Task <bool> GetMyFavorite()
        {
            if (IsBusy)
            {
                return(false);
            }
            IsBusy = true;
            try
            {
                if (IsFavoriteView)
                {
                    var myimages = new List <DerpImage>();
                    var mylist   = await derpibooru.GetDerpFavoriteImages(UserAPIKey);

                    foreach (var image in mylist)
                    {
                        if (!MyImages.Any(i => i.Id == image.Id))
                        {
                            image.IsFavorite = true;
                            myimages.Add(image);
                        }
                    }
                    foreach (var img in myimages)
                    {
                        await DerpImageDb.InsertDerpImageAsync(img);
                    }
                    await ExecuteLoadItemsCommand();
                }
            }
            catch
            {
            }
            IsBusy = false;
            return(true);
        }
コード例 #4
0
 private void PictureSelected(MyImages myImages)
 {
     if (myImages == null)
     {
         return;
     }
     SelectedPicture = null;
 }
コード例 #5
0
        private async void DeletePicture(MyImages myImages)
        {
            bool decision = await pageService.DisplayAlert("Are you sure to delete this picture?", null, "Yes", "No");

            if (decision)
            {
                Pictures.Remove(myImages);
            }
        }
コード例 #6
0
 private void GetPictures()
 {
     for (int i = 0; i < JPGPicture.ImagesString.Count; i++)
     {
         jPGPicture.Parse(JPGPicture.ImagesString[i]);
         MyImages myImages = new MyImages();
         var      stream   = new MemoryStream(jPGPicture.ByteArrayListOfImages[i], 0, jPGPicture.ByteArrayListOfImages[i].Length);
         myImages.Picture = ImageSource.FromStream(() => stream);
         Pictures.Add(myImages);
     }
 }
コード例 #7
0
        public MyImages GetImages(string imagepath)
        {
            var folderPath = System.IO.Path.Combine(_env.WebRootPath, "images\\" + imagepath);

            var model = new MyImages()
            {
                Images = Directory.EnumerateFiles(folderPath, "*.j*").Select(filename => "~/images/" + imagepath + "/" + Path.GetFileName(filename))
            };


            return(model);
        }
コード例 #8
0
        public async Task <bool> GetMyFiles()
        {
            bool res = false;

            if (IsBusy)
            {
                return(false);
            }
            if (IsFavoriteView)
            {
                IsBusy               = true;
                Downloading          = true;
                ProgressBarIsVisible = true;
                ProgressBarHeight    = 8;
                try
                {
                    int    index     = 0;
                    string directory = await fileService.CreateDirectory("");

                    var filelist = (await fileService.GetSubList("")).FindAll(i => i.Name.Contains("__"));
                    var myimages = new List <DerpImage>();
                    foreach (var file in filelist)
                    {
                        var name = file.Name;
                        if (name.Contains("__"))
                        {
                            int    d;
                            string id = name.Substring(0, name.IndexOf('_'));
                            if (int.TryParse(id, out d))
                            {
                                if (!MyImages.Any(i => i.Id == id))
                                {
                                    var image = await derpibooru.GetDerpImage(id);

                                    if (image != null)
                                    {
                                        image.IsFavorite = true;
                                        myimages.Add(image);
                                    }
                                }
                            }
                        }
                        index++;
                        Progress2 = (float)index / filelist.Count;
                    }
                    foreach (var img in myimages)
                    {
                        await DerpImageDb.InsertDerpImageAsync(img);
                    }
                    res = true;
                }
                catch
                {
                    res = false;
                }
                await ExecuteLoadItemsCommand();

                Progress2            = 0;
                ProgressBarHeight    = 0;
                ProgressBarIsVisible = false;
                Downloading          = false;
                IsBusy = false;
            }
            return(res);
        }
コード例 #9
0
 public async Task DeleteFromMyImageListAsync(DerpImage img)
 {
     MyImages.Remove(img);
     await DerpImageDb.DeleteDerpImageAsync(img);
 }
コード例 #10
0
 public async Task AddToMyImageListAsync(DerpImage img)
 {
     MyImages.Insert(0, img);
     await DerpImageDb.InsertDerpImageAsync(img);
 }
コード例 #11
0
        /// <summary>
        /// 마지막 아이템이 나타나면 다음 페이지를 검색한다.
        /// 검색모드가 아니면
        /// </summary>
        /// <param name="item"></param>
        public async void listViewItemAppearing(object item)
        {
            try
            {
                if (ThreadCount == 0 && Images.Count > 0 && !IsFavoriteView)
                {
                    if ((Images.Count >= 49 && Images[Images.Count - 49] == item) || Images.Last() == item)
                    {
                        if (!endPage)
                        {
                            page++;
                            List <DerpImage> tempimages = await derpibooru.GetSearchImage(MyImages.ToList(), fileList, UserAPIKey, searchmode?CurrentKey : "*", page, sortBy, sortOrder);

                            if (tempimages.Count == 0)
                            {
                                endPage = true;
                                page--;
                            }
                            else
                            {
                                foreach (DerpImage image in tempimages)
                                {
                                    lock (lockobject)
                                    {
                                        if (!Images.Any(i => i.Id == image.Id))
                                        {
                                            Images.Add(image);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #12
0
ファイル: MyContainer.cs プロジェクト: skepee/Web-Images-IDP
 public MyContainer(IjpContext _ijpContext, string userId)
 {
     ijpContext  = _ijpContext;
     myGalleries = new MyGalleries(ijpContext, userId);
     myImages    = new MyImages(ijpContext, userId);
 }
コード例 #13
0
 private void SaveToMemory(MyImages myImages)
 {
 }