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); }
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); }