Ejemplo n.º 1
0
        public void SaveGallerySettings(Setting setting, IPrincipal user)
        {
            if (!IsAdminUser(user))
             {
            throw new SecurityException("Not authorized.");
             }

             if (setting.EntityState == EntityState.Unchanged)
             {
            return;
             }

             var context = new DatabaseEntities();

             try
             {
            if (setting.EntityState == EntityState.Modified)
            {
               var current = (from settings in context.Settings where settings.Id == setting.Id select settings).SingleOrDefault();
               if (current != null)
               {
                  context.Settings.ApplyCurrentValues(setting);
                  setting = current;
               }
            }
            else
            {
               context.Settings.AddObject(setting);
            }

            context.SaveChanges();
             }
             catch (OptimisticConcurrencyException)
             {
            context.Refresh(RefreshMode.ClientWins, setting);
            context.SaveChanges();
             }

             SetLastChange(GetGalleryDirectory(setting.Gallery));
        }