public double GetRating(Photo photo)
 {
     int rating = 0, count = 0;
     foreach(var r in photo.Raitings)
     {
         rating += r.Value;
         count++;
     }
     return count == 0 ? 0 : (double)rating / count;
 }
 public void UpdateOrAdd(Rating rating, Photo photo)
 {
     Rating r = photo.Raitings.FirstOrDefault(rt=>rt.User == rating.User);
     if (r != null)
     {
         r.Value = rating.Value;
         db.Entry(r).State = EntityState.Modified;
     }
     else
         photo.Raitings.Add(rating);
 }
        public void CreateNewPhoto(IEnumerable<byte[]> photos, string albumName, string login)
        {
            User user = unitOfWork.Users.GetByLogin(login);
            Album album = user.Albums.FirstOrDefault(a => a.Name == albumName);
            Tag tag = unitOfWork.Tags.GetDefoultTag();

            if (album != null)
            {
                foreach (var photoByte in photos)
                {
                    Photo p = new Photo { Image = photoByte, Album = album };
                    unitOfWork.Photos.Create(p);
                    tag.Photos.Add(p);
                }
            }

            unitOfWork.Save();
        }
 public int GetRatingPhotoUsers(Photo photo, User user)
 {
     Rating r = photo.Raitings.FirstOrDefault(re => re.User == user);
     return r == null ? 0 : r.Value;
 }