private void CreateOrUpdateKeyValue(SettingsKeys key, SettingsInDetailViewModel viewModel) { string value = null; switch (key) { case SettingsKeys.WebServerUrl: value = viewModel.WebServerUrl ?? ""; break; case SettingsKeys.PaymentGatewayWSUrl: value = viewModel.PaymentGatewayWSUrl ?? ""; break; case SettingsKeys.AllowBarcodeInput: value = viewModel.AllowBarcodeInput ?? "0"; break; case SettingsKeys.RecordsPerPage: value = viewModel.RecordsPerPage.ToString() ?? "10"; break; case SettingsKeys.ApproveAndDispatch: value = viewModel.ApproveAndDispatch ?? "0"; break; case SettingsKeys.AllowDecimal: value = viewModel.AllowDecimal.ToString(); break; case SettingsKeys.EnForceStockTake: value = viewModel.EnForceStockTake.ToString(); break; case SettingsKeys.EnableGps: value = viewModel.EnableGps.ToString(); break; case SettingsKeys.NumberOfDecimalPlaces: value = viewModel.NumberOfDecimalPlaces.ToString(); break; } if (_settingsViewModelBuilder.HasKey(key)) { var setting = _settingsViewModelBuilder.GetIdFromKey(key); if (setting.Value != value) { var id = setting.Id; _settingsViewModelBuilder.SaveSetting(id, key, value); } } else { var id = Guid.NewGuid(); _settingsViewModelBuilder.SaveSetting(id, key, value); } }
public ActionResult SettingsDetails() { if (TempData["msg"] != null) { ViewBag.msg = TempData["msg"].ToString(); TempData["msg"] = null; } var settings = _settingsViewModelBuilder.GetAll(true); var settingViewModel = new SettingsInDetailViewModel(); foreach (var setting in settings) { if (setting.Key == SettingsKeys.WebServerUrl) { settingViewModel.WebServerUrl = setting.Value; } if (setting.Key == SettingsKeys.PaymentGatewayWSUrl) { settingViewModel.PaymentGatewayWSUrl = setting.Value; } if (setting.Key == SettingsKeys.AllowBarcodeInput) { settingViewModel.AllowBarcodeInput = setting.Value == "0" ? "0" : "1"; } if (setting.Key == SettingsKeys.ApproveAndDispatch) { settingViewModel.ApproveAndDispatch = setting.Value == "0" ? "0" : "1"; } if (setting.Key == SettingsKeys.RecordsPerPage) { int recordsPerPage = 10; int.TryParse(setting.Value, out recordsPerPage); settingViewModel.RecordsPerPage = recordsPerPage; } if (setting.Key == SettingsKeys.AllowDecimal) { bool allowDecimal = false; bool.TryParse(setting.Value, out allowDecimal); settingViewModel.AllowDecimal = allowDecimal; } if (setting.Key == SettingsKeys.NumberOfDecimalPlaces) { int numberOfDecimalPlaces = 0; int.TryParse(setting.Value, out numberOfDecimalPlaces); settingViewModel.NumberOfDecimalPlaces = numberOfDecimalPlaces; } if (setting.Key == SettingsKeys.EnForceStockTake) { bool enforceStocktake = false; bool.TryParse(setting.Value, out enforceStocktake); settingViewModel.EnForceStockTake = enforceStocktake; } if (setting.Key == SettingsKeys.EnableGps) { bool enableGps = false; bool.TryParse(setting.Value, out enableGps); settingViewModel.EnableGps = enableGps; } } var allowBarCodeInput = settingViewModel.AllowBarcodeInput ?? "0"; ViewData["AllowBarCodeInput"] = new SelectList(settingViewModel.bools, "Id", "Name", allowBarCodeInput); var approveAndDispatch = settingViewModel.ApproveAndDispatch ?? "0"; ViewData["approveAndDispatch"] = new SelectList(settingViewModel.bools, "Id", "Name", approveAndDispatch); ViewData["NumberOfDecimals"] = settingViewModel.NumberOfDecimalPlaces>0; ViewBag.numberofDecimals = settingViewModel.NumberOfDecimalPlaces > 0; return View(settingViewModel); }
public ActionResult SettingsDetails(SettingsInDetailViewModel viewModel) { try { var distributorAppSettings = new List<SettingsKeys>() { SettingsKeys.AllowBarcodeInput, SettingsKeys.WebServerUrl, SettingsKeys.PaymentGatewayWSUrl, SettingsKeys.RecordsPerPage, SettingsKeys.ApproveAndDispatch, SettingsKeys.AllowDecimal, SettingsKeys.EnForceStockTake, SettingsKeys.EnableGps, SettingsKeys.NumberOfDecimalPlaces }; var keys = from Enum sk in Enum.GetValues(typeof (SettingsKeys)) where (SettingsKeys) sk != SettingsKeys.None && distributorAppSettings.Contains((SettingsKeys) sk) select sk; foreach (var e in keys) { CreateOrUpdateKeyValue((SettingsKeys) e, viewModel); } var allowBarCodeInput = viewModel.AllowBarcodeInput ?? "0"; ViewData["AllowBarCodeInput"] = new SelectList(viewModel.bools, "Id", "Name", allowBarCodeInput); var approveAndDispatch = viewModel.ApproveAndDispatch ?? "0"; ViewBag.ApproveAndDispatch = new SelectList(viewModel.bools, "Id", "Name", approveAndDispatch); TempData["msg"] = "Setting Successfully Updated"; } catch (Exception ex) { TempData["msg"] = ex.Message; } return RedirectToAction("SettingsDetails"); }