/// <summary>
        /// Saves specified settin's new value into database
        /// </summary>
        /// <param name="setting">The setting that value got changed</param>
        public void SaveSetting(SettingsPropertyInfo setting)
        {
            // Get the setting based on its name
            var entity = DbSet.Where(x => x.Name == setting.Name).FirstOrDefault();

            // If none was found
            if (entity == null)
            {
                // Create new one
                entity = new Setting
                {
                    Name = setting.Name,
                    Type = setting.Type.ToString()
                };

                // And add it to the database
                DbSet.Add(entity);
            }

            // Do nothing if Value already set
            if (entity.Value == setting.Value.ToString())
            {
                return;
            }

            // Change its value
            entity.Value = setting.Value.ToString();

            // Save changes we made
            SaveChanges();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets all currently saved settings in the database
        /// </summary>
        /// <returns>List of every setting as <see cref="SettingsPropertyInfo"/></returns>
        public List <SettingsPropertyInfo> GetAllSettings()
        {
            // Prepare a list of property infos to return
            var propertyList = new List <SettingsPropertyInfo>();

            // Get all the settings from database
            var entities = DbSet.ToList();

            // For each one...
            foreach (var entity in entities)
            {
                // Create new property info
                var propertyInfo = new SettingsPropertyInfo
                {
                    Name  = entity.Name,
                    Type  = Type.GetType(entity.Type),
                    Value = entity.Value
                };

                // Add it to the list
                propertyList.Add(propertyInfo);
            }

            // Return every collected setting
            return(propertyList);
        }
        /// <summary>
        /// Gets all currently saved settings in the database
        /// </summary>
        /// <returns>List of every setting as <see cref="SettingsPropertyInfo"/></returns>
        public IEnumerable <SettingsPropertyInfo> GetAllSettings()
        {
            // Get all the settings from database
            var entities = GetAll();

            // For each one...
            foreach (var entity in entities)
            {
                // Create new property info
                var propertyInfo = new SettingsPropertyInfo
                {
                    Name  = entity.Name,
                    Type  = Type.GetType(entity.Type),
                    Value = entity.Value
                };

                // Return current one as an element of the whole list
                yield return(propertyInfo);
            }
        }