private void Upsert(UserMacro item = null) { var isNew = item == null; if (isNew) { item = new UserMacro(); } item.Name = NameTextBox.Text; item.Text = MacroText.Text; item.MapType = (int)SettingsParser.TryParseValue(MapTypeComboBox.Text, MapType.Button); item.MapIndex = SettingsParser.TryParseValue(MapIndexTextBox.Text, 0); item.MapEventType = (int)SettingsParser.TryParseValue(MapEventTypeComboBox.Text, MapEventType.EnterUpLeaveDown); item.MapRpmType = (int)SettingsParser.TryParseValue(MapRpmTypeComboBox.Text, MapRpmType.DownIncrease); item.MapRangeMin = SettingsParser.TryParseValue(MapRangeMin.Text, 0); item.MapRangeMax = SettingsParser.TryParseValue(MapRangeMin.Text, 0); item.MapRpmMin = SettingsParser.TryParseValue(MapRpmMin.Text, 0); item.MapRpmMax = SettingsParser.TryParseValue(MapRpmMax.Text, 0); // Assing to current controller. item.SettingId = _UserSetting.SettingId; if (isNew) { SettingsManager.UserMacros.Add(item); } }