public void AddExperience(Experience experience)
        {
            MongoCollection<ShortExperience> links = db.GetCollection<ShortExperience>("Experiences");

            List<AudioLink> savedSounds = new List<AudioLink>();
            foreach (AudioLink sound in experience.Sounds ?? new List<AudioLink>())
            {
                savedSounds.Add(AddAudioLink(sound.LinkUrl, experience.Creator, sound.Description));
            }
            experience.Sounds = savedSounds;
            experience.Visuals = AddImageLink(experience.Visuals.LinkUrl, experience.Creator, experience.Visuals.Description);

            ShortExperience dehydratedExperience = new ShortExperience(experience);
            links.Insert(dehydratedExperience);
        }
        public void CreateNewExperience(Experience experience)
        {
            string currentClientId = System.Configuration.ConfigurationManager.AppSettings["SoundCloudClientID"];

            try
            {
                experience.Creator = CurrentUser;
                foreach (var sound in experience.Sounds)
                {
                    sound.LinkUrl = EnsureStringIsTrackID(sound.LinkUrl, currentClientId);
                }

                dal.AddExperience(experience);
            }
            catch (Exception ex)
            {
                //todo:  do something with this exception
                Response.Redirect("Error");
            }
        }
 public void AddExperience(Experience experience)
 {
     experienceList.Add(experience);
 }
 public void AddExperience(List<AudioLink> audioLinks, ImageLink imageLink, User builtBy, string description, bool share)
 {
     Experience newExp = new Experience(audioLinks, imageLink, builtBy, description, share);
     experienceList.Add(newExp);
 }
 public ShortExperience(Experience toDehydrate)
 {
     Creator = toDehydrate.Creator.id;
     Sounds = toDehydrate.Sounds.Select(x => x.id).ToList();
     Visuals = toDehydrate.Visuals.id;
     Description = toDehydrate.Description;
     Share = toDehydrate.Share;
     id = toDehydrate.id;
 }
        private Experience rehydrateExperience(ShortExperience dehydrated)
        {
            User user = GetUserByID(dehydrated.Creator);
            List<AudioLink> sounds = new List<AudioLink>();

            if (dehydrated.Sounds != null)
            {
                sounds = dehydrated.Sounds.Select(x => GetAudioLinkById(x)).ToList();
            }

            ImageLink visuals = GetImageLinkById(dehydrated.Visuals);

            Experience rehydrated = new Experience(sounds, visuals, user, dehydrated.Description, dehydrated.Share);
            rehydrated.id = dehydrated.id;
            return rehydrated;
        }
 public void AddExperience(Experience experience)
 {
     internalDal.AddExperience(experience);
 }