/// <summary>
        /// Mass rent media
        /// </summary>
        /// <param name="listMediaIds">List with media IDs that are being rented</param>
        /// <param name="userId">The ID of the user who is the owner of the lendings</param>
        /// <returns>Number of created entries</returns>
        public int CreateLending(List<int> listMediaIds, int userId)
        {
            using (MediathekEntities context = new MediathekEntities())
            {
                int createCount = 0;

                foreach (int mediaId in listMediaIds)
                {
                    if (IsMediaAvailableForRenting(mediaId, userId))
                    {
                        MediaRenting mr = new MediaRenting();
                        mr.CheckOutDate = DateTime.Now;
                        mr.Media = context.MediaSet.FirstOrDefault(m => m.MediaId == mediaId);
                        mr.LeasingUser = context.Users.FirstOrDefault(u => u.UserId == userId);

                        // set the media state to "unavaiable"
                        mr.Media.MediaState = context.MediaStates.FirstOrDefault(ms => ms.MediaSateId == 2);

                        context.AddToMediaRentings(mr);
                        createCount++;

                        // if user had open reservation for the current media, we close the reservation
                        var res = from r in context.Reservations
                                  where r.User.UserId == userId &&
                                    r.Media.MediaId == mediaId &&
                                    r.EndDate == null
                                  select r;

                        foreach (Reservation reservation in res)
                        {
                            reservation.EndDate = DateTime.Now;
                        }
                    }
                }

                // save to DB
                context.SaveChanges();

                return createCount;
            }
        }