/// <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();
            }
        }
Пример #2
0
        /// <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();
            }
        }