public async Task <IActionResult> Index([FromForm] GalleryViewModel model)
        {
            var user = GetUser();

            if (model == null)
            {
                model = new GalleryViewModel()
                {
                    User = user, RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier
                };
            }

            if (!string.IsNullOrEmpty(user))
            {
                var client = new ImageGalleryClient(new HttpClient(), ImageGalleryServiceUrl);
                var list   = await client.GetNextImageListAsync(user, model.Continuation);

                if (list != null)
                {
                    model.Images       = list.Names;
                    model.Continuation = list.ContinuationId;
                }
            }

            var result = View(model);

            result.ViewData["User"] = user;
            return(result);
        }
        public async Task <IActionResult> DeleteAll()
        {
            var user   = GetUser();
            var client = new ImageGalleryClient(new HttpClient(), ImageGalleryServiceUrl);
            await client.DeleteAllImagesAsync(user);

            return(RedirectToAction("Index"));
        }
Пример #3
0
        private async Task <bool> ValidateLoginAsync(string userName, string password)
        {
            var client  = new ImageGalleryClient(new HttpClient(), ImageGalleryServiceUrl);
            var account = await client.GetAccountAsync(userName);

            if (account != null)
            {
                return(account.Password == password);
            }
            return(await client.CreateAccountAsync(new Account()
            {
                Id = userName, Name = userName, Password = password, Email = "*****@*****.**"
            }));
        }
        public async Task <IActionResult> GetImage(string id)
        {
            var user   = GetUser();
            var client = new ImageGalleryClient(new HttpClient(), ImageGalleryServiceUrl);
            var image  = await client.GetImageAsync(user, id);

            if (image == null)
            {
                return(this.NotFound());
            }

            string ext = Path.GetExtension(image.Name).Trim('.');

            if (ext == null)
            {
                ext = "png";
            }

            // System.IO.File.WriteAllBytes($"c:\\temp\\test.{ext}", image.Contents);

            return(this.File(image.Contents, $"image/{ext}"));
        }
        public async Task <ActionResult> Upload()
        {
            try
            {
                var files     = Request.Form.Files;
                int fileCount = files.Count;

                if (fileCount > 0)
                {
                    for (int i = 0; i < fileCount; i++)
                    {
                        var          file   = files[i];
                        MemoryStream buffer = new MemoryStream();
                        file.CopyTo(buffer);
                        Image img = new Image()
                        {
                            Name      = file.FileName,
                            AccountId = GetUser(),
                            Contents  = buffer.ToArray()
                        };

                        var client = new ImageGalleryClient(new HttpClient(), ImageGalleryServiceUrl);
                        await client.CreateOrUpdateImageAsync(img);
                    }
                }

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                return(View("Error", new ErrorViewModel()
                {
                    RequestId = this.HttpContext.TraceIdentifier, Message = ex.Message, Trace = ex.StackTrace
                }));
            }
        }