public async Task <IActionResult> ImageDetails(int id) { var image = await _dataAccess.GetImage(id); if (image == null) { return(NotFound("Image not found")); } var claims = User.Claims.ToList(); string subId = claims.FirstOrDefault(x => x.Type == Consts.Claims.Sub)?.Value; bool isAdmin = await _aadHelper.IsAdminBySub(subId); var vm = new ImageDetailsViewModel() { Id = image.ImageId ?? 0, IsAdmin = isAdmin, ThumbnailUrl = string.IsNullOrWhiteSpace(image.ThumbnailRelativePath) ? null : _storageAccess.GetUrlForRelativePath(image.ThumbnailRelativePath), Url = _storageAccess.GetUrlForRelativePath(image.RelativePath), Allowed = image.Allowed }; return(View(vm)); }
// GET: /Store/Browse public ActionResult Details(int albumId, int?imageId = null, int?processedImageId = null, int?conditionId = null, int?featureId = null) { string message = HttpUtility.HtmlEncode("Store.Browse, Album = " + albumId); tblAlbum selectedAlbum = null; tblImage selectedMasterImage = null; tblProcessedImage selectedProcessedImage = null; selectedAlbum = imageDB.tblAlbums.SingleOrDefault(a => a.ALB_IDPkey == albumId); var query = imageDB.tblImages.Where(i => i.ALB_IDFkey == albumId); List <tblImage> images = query.ToList(); if (imageId != null) { selectedMasterImage = images.SingleOrDefault(i => i.IMG_IDPkey == imageId); } else { selectedMasterImage = images.FirstOrDefault(); } int selectedIndex = images.IndexOf(selectedMasterImage); int nextIndex = images.Count() - 1; int previousIndex = 0; if (images.Count() - 1 > selectedIndex) { nextIndex = selectedIndex + 1; } if (selectedIndex - 1 >= 0) { previousIndex = selectedIndex - 1; } if (processedImageId != null) { selectedProcessedImage = selectedMasterImage.tblProcessedImages.SingleOrDefault(p => p.PIM_IDPkey == processedImageId.Value); } else { selectedProcessedImage = selectedMasterImage.tblProcessedImages.SingleOrDefault(p => p.tblFilter.FLT_Name == "JPEG"); } var viewModel = new ImageDetailsViewModel { Image = selectedMasterImage, NextImage = images.ElementAt(nextIndex), PreviousImage = images.ElementAt(previousIndex), ProcessedImage = selectedProcessedImage, AvailableConditions = selectedAlbum.tblImages.Select(i => i.tblEnvironmentalCondition).Distinct().ToList(), AvailableFeatures = selectedAlbum.tblImages.Select(i => i.tblFeature).Distinct().ToList() }; return(this.View(viewModel)); }
public async void OnLike(object sender, EventArgs e) { ImageDetailsViewModel vm = this.BindingContext as ImageDetailsViewModel; try { await vm.LikeImageAsync(); await DisplayAlert("Like sent!", "Like was sent to the image author", "OK"); } catch (Exception) { await DisplayAlert("Error", "'Like' functionality is not available at the moment. Please try again later", "OK"); } }
public async void OnLike(object sender, EventArgs e) { ImageDetailsViewModel vm = this.BindingContext as ImageDetailsViewModel; if (await vm.LikeImageAsync()) { await DisplayAlert("Success", "Your like sent to image author.", "OK"); } else { await DisplayAlert("Error", "'Like' functionality is not available at the moment. Please try again later", "OK"); } }
public async void OnSelected(object sender, SelectedItemChangedEventArgs e) { var selectedImage = e.SelectedItem as ContosoMoments.Models.Image; if (selectedImage != null) { var detailsVM = new ImageDetailsViewModel(App.MobileService, selectedImage); var detailsView = new ImageDetailsView(); detailsVM.Album = viewModel.Album; detailsView.BindingContext = detailsVM; await Navigation.PushAsync(detailsView); } // prevents background getting highlighted imagesList.SelectedItem = null; }
// GET: Imagems/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Imagem imagem = db.Imagens.Find(id); if (imagem == null) { return(HttpNotFound()); } ImageDetailsViewModel model = new ImageDetailsViewModel(); model.Imagem = imagem; model.Ponto = imagem.PontoInteresse; return(View(imagem)); }
public string ImportImage(ImageDetailsViewModel viewModel, IFormFile ImageForm) { Rectangle rectangle = new Rectangle( Convert.ToInt32(viewModel.X), Convert.ToInt32(viewModel.Y), Convert.ToInt32(viewModel.Width), Convert.ToInt32(viewModel.Height)); Bitmap bitmapSrc = Image.FromStream(ImageForm.OpenReadStream()) as Bitmap; Bitmap Bitmaptarget = new Bitmap(Convert.ToInt32(viewModel.Width), Convert.ToInt32(viewModel.Height)); using (Graphics g = Graphics.FromImage(Bitmaptarget)) { g.DrawImage(bitmapSrc, new Rectangle(0, 0, Convert.ToInt32(viewModel.Width), Convert.ToInt32(viewModel.Height)), rectangle, GraphicsUnit.Pixel); string NewFileName = Guid.NewGuid().ToString() + Path.GetExtension(ImageForm.FileName); Bitmaptarget.Save(Path.Combine(this.hostEnvironment.WebRootPath, "images", NewFileName)); return(NewFileName); } }
public async Task <ActionResult <OkObjectViewModel <ImageDetailsViewModel> > > Upload(IFormFile image) { if (image == null) { ModelState.AddModelError(string.Empty, "No image sent to server!"); return(new BadRequestObjectResult(new BadRequestViewModel <ModelStateError>(ModelState.GetErrors()))); } try { var entity = await this.manager.SaveImageAsync(image); var vm = new ImageDetailsViewModel(entity); vm.Url = $"{base.AppSettings.URLS.BaseURL}{vm.Url}"; return(new OkObjectViewModel <ImageDetailsViewModel>("Image uploaded!", vm)); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); return(new BadRequestObjectResult(new BadRequestViewModel <ModelStateError>(ModelState.GetErrors()))); } }
public async void OnSettings(object sender, EventArgs e) { ImageDetailsViewModel vm = this.BindingContext as ImageDetailsViewModel; await Navigation.PushModalAsync(new SettingView()); }