Пример #1
0
        private List<ThumbnailModel> GetSiteYearSummary(long siteID)
        {
            List<ThumbnailModel> Years = new List<ThumbnailModel>();

            string siteName = CollectionRepository.Find(c => c.Site.ID == siteID).FirstOrDefault().Site.Name;

            List<int> yearStrings = PhotoRepository.Find(p => p.Site.ID == siteID).Select(p => p.Captured.Year).Distinct().ToList<int>();

            foreach (int y in yearStrings)
            {
                ThumbnailModel model = new ThumbnailModel();

                model.Name = Convert.ToString(y);

                Photo[] photos = PhotoRepository.Find(p => p.Site.ID == siteID && p.Captured.Year == y)
                                                            .ToArray();
                model.PhotoCount = photos.Count();
                model.First = photos[0].Captured;
                model.Last = photos[photos.Count() - 1].Captured;

                photos = photos.Where(p => p.Captured.Hour > 12 && p.Captured.Hour < 16).ToArray();

                Random rand = new Random();
                model.CoverPhotoID = photos[rand.Next(photos.Length)].ID;

                model.Link = "/Search/Index?site=" + siteName + "&year=" + model.Name;

                Years.Add(model);
            }

            return Years;
        }
Пример #2
0
        public ActionResult UserCollections(int e = 0)
        {
            UserCollectionList model = new UserCollectionList();

            Phocalstream_Shared.Data.Model.Photo.User User = UserRepository.First(u => u.ProviderID == this.User.Identity.Name);
            model.User = User;

            model.SiteThumbnails = new List<ThumbnailModel>();
            model.TimelapseThumbnails = new List<ThumbnailModel>();
            model.CollectionThumbnails = new List<ThumbnailModel>();

            model.Collections = CollectionRepository.Find(c => c.Owner.ID == User.ID, c => c.Photos).ToList<Collection>();
            foreach (var col in model.Collections)
            {
                if (col.CoverPhoto == null)
                {
                    col.CoverPhoto = col.Photos.LastOrDefault();
                }

                var thumb = new ThumbnailModel()
                {
                    ID = col.ID,
                    Name = col.Name,
                    PhotoCount = col.Photos.Count,
                    Link = "/search/index?collectionId=" + col.ID.ToString(),

                    CanEdit = true,
                    EditLink = "/Account/EditUserCollection?collectionID=" + col.ID.ToString(),
                    CanDelete = true,
                    DeleteLink = "/Account/DeleteUserCollection?collectionID=" + col.ID.ToString()
                };

                if (thumb.PhotoCount > 0)
                {
                    thumb.First = col.Photos.First().Captured;
                    thumb.Last = col.Photos.Last().Captured;
                    thumb.CoverPhotoID = col.CoverPhoto.ID;
                }

                switch (col.Type)
                {
                    case CollectionType.TIMELAPSE:
                        model.TimelapseThumbnails.Add(thumb);
                        break;
                    case CollectionType.USER:
                        if (col.Site == null)
                        {
                            model.CollectionThumbnails.Add(thumb);
                        }
                        else
                        {
                            model.SiteThumbnails.Add(thumb);
                        }
                        break;
                }
            }

            if (e == 1)
            {
                ViewBag.Message = "That collection doesn't contain any photos.";
            }
            else if (e == 2)
            {
                ViewBag.Message = "Successfully deleted collection.";
            }
            else if (e == 3)
            {
                ViewBag.Message = "Error deleting collection.";
            }

            return View(model);
        }