/// <summary> /// Persist the specified <paramref name="profile"/> to the data store. /// </summary> /// <param name="profile">The profile to persist to the data store.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="profile" /> is null.</exception> public override void Profile_Save(IUserProfile profile) { if (profile == null) throw new ArgumentNullException("profile"); using (GspContext ctx = new GspContext()) { foreach (IUserGalleryProfile userGalleryProfile in profile.GalleryProfiles) { IUserGalleryProfile ugp = userGalleryProfile; // ShowMediaObjectMetadata UserGalleryProfileDto pDto = (from p in ctx.UserGalleryProfiles where p.UserName == ugp.UserName && p.FKGalleryId == ugp.GalleryId && p.SettingName == "ShowMediaObjectMetadata" select p).FirstOrDefault(); if (pDto == null) { pDto = new UserGalleryProfileDto { UserName = ugp.UserName, FKGalleryId = ugp.GalleryId, SettingName = "ShowMediaObjectMetadata", SettingValue = ugp.ShowMediaObjectMetadata.ToString(CultureInfo.InvariantCulture) }; ctx.UserGalleryProfiles.Add(pDto); } else { pDto.SettingValue = ugp.ShowMediaObjectMetadata.ToString(CultureInfo.InvariantCulture); } // EnableUserAlbum pDto = (from p in ctx.UserGalleryProfiles where p.UserName == ugp.UserName && p.FKGalleryId == ugp.GalleryId && p.SettingName == "EnableUserAlbum" select p).FirstOrDefault(); if (pDto == null) { pDto = new UserGalleryProfileDto { UserName = ugp.UserName, FKGalleryId = ugp.GalleryId, SettingName = "EnableUserAlbum", SettingValue = ugp.EnableUserAlbum.ToString(CultureInfo.InvariantCulture) }; ctx.UserGalleryProfiles.Add(pDto); } else { pDto.SettingValue = ugp.EnableUserAlbum.ToString(CultureInfo.InvariantCulture); } // UserAlbumId pDto = (from p in ctx.UserGalleryProfiles where p.UserName == ugp.UserName && p.FKGalleryId == ugp.GalleryId && p.SettingName == "UserAlbumId" select p).FirstOrDefault(); if (pDto == null) { pDto = new UserGalleryProfileDto { UserName = ugp.UserName, FKGalleryId = ugp.GalleryId, SettingName = "UserAlbumId", SettingValue = ugp.UserAlbumId.ToString(CultureInfo.InvariantCulture) }; ctx.UserGalleryProfiles.Add(pDto); } else { pDto.SettingValue = ugp.UserAlbumId.ToString(CultureInfo.InvariantCulture); } } ctx.SaveChanges(); } }
/// <summary> /// Persist the specified <paramref name="profile"/> to the data store. /// </summary> /// <param name="profile">The profile to persist to the data store.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="profile" /> is null.</exception> public static void Save(IUserProfile profile) { if (profile == null) { throw new ArgumentNullException("profile"); } using (var repo = new ProfileRepository()) { // AlbumProfiles var pDto = (repo.Where(p => p.UserName == profile.UserName && p.SettingName == ProfileNameAlbumProfiles)).FirstOrDefault(); var templateGalleryId = GetTemplateGalleryId(); if (pDto == null) { pDto = new UserGalleryProfileDto { UserName = profile.UserName, FKGalleryId = templateGalleryId, SettingName = ProfileNameAlbumProfiles, SettingValue = profile.AlbumProfiles.Serialize() }; repo.Add(pDto); } else { pDto.SettingValue = profile.AlbumProfiles.Serialize(); } // Media Object Profiles pDto = (repo.Where(p => p.UserName == profile.UserName && p.SettingName == ProfileNameMediaObjectProfiles)).FirstOrDefault(); if (pDto == null) { pDto = new UserGalleryProfileDto { UserName = profile.UserName, FKGalleryId = templateGalleryId, SettingName = ProfileNameMediaObjectProfiles, SettingValue = profile.MediaObjectProfiles.Serialize() }; repo.Add(pDto); } else { pDto.SettingValue = profile.MediaObjectProfiles.Serialize(); } // User Gallery Profiles foreach (IUserGalleryProfile userGalleryProfile in profile.GalleryProfiles) { IUserGalleryProfile ugp = userGalleryProfile; // EnableUserAlbum pDto = (repo.Where(p => p.UserName == profile.UserName && p.FKGalleryId == ugp.GalleryId && p.SettingName == ProfileNameEnableUserAlbum)).FirstOrDefault(); if (pDto == null) { pDto = new UserGalleryProfileDto { UserName = profile.UserName, FKGalleryId = ugp.GalleryId, SettingName = ProfileNameEnableUserAlbum, SettingValue = ugp.EnableUserAlbum.ToString(CultureInfo.InvariantCulture) }; repo.Add(pDto); } else { pDto.SettingValue = ugp.EnableUserAlbum.ToString(CultureInfo.InvariantCulture); } // UserAlbumId pDto = (repo.Where(p => p.UserName == profile.UserName && p.FKGalleryId == ugp.GalleryId && p.SettingName == ProfileNameUserAlbumId)).FirstOrDefault(); if (pDto == null) { pDto = new UserGalleryProfileDto { UserName = profile.UserName, FKGalleryId = ugp.GalleryId, SettingName = ProfileNameUserAlbumId, SettingValue = ugp.UserAlbumId.ToString(CultureInfo.InvariantCulture) }; repo.Add(pDto); } else { pDto.SettingValue = ugp.UserAlbumId.ToString(CultureInfo.InvariantCulture); } } repo.Save(); } }