예제 #1
0
        internal static IEnumerable <PhotoTDO> GetPublishAuthorizedPhotos(Event ev, FotoShoutDbContext db)
        {
            IEnumerable <Photo> photos           = ev.Photos.Where(p => (p.Status == (byte)PhotoStatus.Submitted));
            HashSet <PhotoTDO>  authorizedPhotos = new HashSet <PhotoTDO>();

            foreach (Photo photo in photos)
            {
                GuestPhoto gp = photo.GuestPhotos.Where(g => g.AuthorizePublish == false).FirstOrDefault();
                if (gp == null)
                {
                    authorizedPhotos.Add(EventPhotosService.GenerateTDO(ev, photo));
                }
            }

            return(authorizedPhotos);
        }
예제 #2
0
        internal static bool AnnotatePhoto(Photo photo, PhotoAnnotation photoAnnotation, FotoShoutDbContext db)
        {
            // Updating photo rating
            photo.Rating = photoAnnotation.Rating;

            // Adding the list of guests to the photo
            Event ev = photo.Event;
            ICollection <GuestPhoto> gps  = photo.GuestPhotos;
            ICollection <GuestTDO>   tdos = photoAnnotation.Guests;

            foreach (GuestTDO tdo in tdos)
            {
                Guest guest = !string.IsNullOrEmpty(tdo.Email) ? GetGuestByEmail(ev.EventId, tdo.Email, db) : GetGuestById(ev.EventId, tdo.GuestId, db);
                if (guest == null)
                {
                    guest = PhotoAnnotationService.GenerateGuest(tdo, photo.Event.EventOption);
                    ev.Guests.Add(guest);
                }
                else
                {
                    PhotoAnnotationService.UpdateGuest(guest, tdo, photo.Event.EventOption);
                }
                GuestPhoto guestPhoto = gps.Where(gp => gp.Guest.GuestId == guest.GuestId).SingleOrDefault();
                if (guestPhoto == null)
                {
                    guestPhoto = new GuestPhoto {
                        Id = Guid.NewGuid(), Event_EventId = photo.Event.EventId, Photo = photo, Guest = guest, AuthorizePublish = tdo.AuthorizePublish
                    };
                    gps.Add(guestPhoto);
                }
                else
                {
                    guestPhoto.AuthorizePublish = tdo.AuthorizePublish;
                }
            }
            photo.Error  = "";
            photo.Status = (byte)PhotoStatus.Submitted;

            return(true);
        }