public JsonResult GetPhoto() { DisplayPhoto panelPhoto = new DisplayPhoto(); Photo photo = _photoRepository.FindRecent(30).First(); panelPhoto.DisplayWidth = 100; panelPhoto.DisplayHeight = 100; panelPhoto.X = 0; panelPhoto.Y = 0; panelPhoto.Id = photo.PhotoId; return Json(panelPhoto, JsonRequestBehavior.AllowGet); }
/// <summary> /// This method takes the list of original photos and creates a parallel copy of it for sending to view. /// It also comes up with a display size based on prefernce and some random jitter. /// </summary> private void CreateDisplayPhotosAndJitter(IQueryable<Photo> originalPhotos, List<DisplayPhoto> photosForDisplay) { Random jitter = new Random(); foreach (Photo originalPhoto in originalPhotos) { DisplayPhoto displayPhoto = new DisplayPhoto(); displayPhoto.TranslatePhotoToDisplayPhoto(originalPhoto); float maxEdge = (float)Settings.Default.SmallEdge / (float)(originalPhoto.Preference + jitter.NextDouble()); displayPhoto.DisplayWidth = originalPhoto.Aspect > 1 ? (int)maxEdge : (int) (maxEdge * originalPhoto.Aspect); displayPhoto.DisplayHeight = originalPhoto.Aspect > 1 ? (int)(maxEdge / originalPhoto.Aspect) : (int)maxEdge; displayPhoto.PathToThumb = originalPhoto.PathToSmallThumb; photosForDisplay.Add(displayPhoto); // X and Y will be calculated by Layout method. } }