public ActionResult Timelapse(long collectionId) { TimelapseModel model = new TimelapseModel(); Collection collection = CollectionRepository.Find(c => c.ID == collectionId, c => c.Photos, c => c.Site).FirstOrDefault(); if (collection != null) { model.CollectionId = collection.ID; model.Name = !String.IsNullOrWhiteSpace(collection.Name) ? collection.Name : "Dynamic Timelapse"; long[] ids; switch (collection.Type) { case CollectionType.SITE: ids = PhotoRepository.Find(p => p.Site.ID == collection.Site.ID).Select(p => p.ID).ToArray <long>(); break; case CollectionType.USER: ids = collection.Photos.Select(p => p.ID).ToArray <long>(); break; case CollectionType.SEARCH: ids = collection.Photos.Select(p => p.ID).ToArray <long>(); break; case CollectionType.TIMELAPSE: ids = collection.Photos.Select(p => p.ID).ToArray <long>(); break; default: ids = new long[0]; break; } if (ids.Length > 0) { model.DmWeeks = DZPhotoRepository.FindDmDatesForPhotos(ids); model.Frames = PhotoService.CreateTimeLapseFramesFromIDs(ids); long id = model.Frames.FirstOrDefault().PhotoID; Photo first = PhotoRepository.Find(p => p.ID == id, p => p.Site).FirstOrDefault(); model.CountyFips = first.Site.CountyFips; model.Latitude = first.Site.Latitude; model.Longitude = first.Site.Longitude; model.Width = first.Width; model.Height = first.Height; return(View(model)); } } return(RedirectToAction("Index", "Search", null)); }