public void Save(AgrimanagrSettingsViewModel model) { var settings = ConstructAppSettings(model); foreach (var setting in settings) { _settingsRepository.Save(setting); } }
public ActionResult Settings(AgrimanagrSettingsViewModel model) { try { _settingsViewModelBuilder.Save(model); TempData["msg"] = "Settings Successfully Saved"; return RedirectToAction("Settings"); } catch (DomainValidationException ve) { ValidationSummary.DomainValidationErrors(ve, ModelState); TempData["msg"] = "Validation Errors, Unable to save settings\n"+ve.Message; } catch (Exception ex) { TempData["msg"] = "Error saving Agrimanagr Settings\nDetails:" + ex.Message; } return View(model); }
private IEnumerable<AppSettings> ConstructAppSettings(AgrimanagrSettingsViewModel model) { var settingenums = new List<SettingsKeys>(); settingenums.Add(SettingsKeys.CompanyName); settingenums.Add(SettingsKeys.CompanyDetails); settingenums.Add(SettingsKeys.ShowDispatchPage); settingenums.Add(SettingsKeys.ShowServiceProvderOnPurchase); settingenums.Add(SettingsKeys.ShowDeliveryDetails); settingenums.Add(SettingsKeys.ShowLoadingDetails); settingenums.Add(SettingsKeys.Traceable); settingenums.Add(SettingsKeys.ShowDeliveredBy); settingenums.Add(SettingsKeys.WeighingContainerForStorage); settingenums.Add(SettingsKeys.EnforceNoOfContainers); settingenums.Add(SettingsKeys.EnforceWeighingOnReception); settingenums.Add(SettingsKeys.NotificationOnWeighing); settingenums.Add(SettingsKeys.LoadBatches); settingenums.Add(SettingsKeys.SetPurchasingClerkAsDriver); settingenums.Add(SettingsKeys.AllowManualEntryOfWeight); settingenums.Add(SettingsKeys.ShowCumulativeWeightOnReceipts); settingenums.Add(SettingsKeys.EnforceVehicleMileageAndTime); settingenums.Add(SettingsKeys.RestrictPurchaseFromSubsequentCentres); settingenums.Add(SettingsKeys.EnforcePasswordChange); settingenums.Add(SettingsKeys.EnforceGps); settingenums.Add(SettingsKeys.EnforceTransactionalWeightLimit); settingenums.Add(SettingsKeys.HideContainerNumber); settingenums.Add(SettingsKeys.ShowWarehouseReceipt); settingenums.Add(SettingsKeys.ShowFarmActivities); settingenums.Add(SettingsKeys.EnforceHideFarmOnPhone); var items = new List<AppSettings>(); foreach (var settingenum in settingenums) { var setting = new AppSettings(Guid.NewGuid()); setting.Key = settingenum; setting.VirtualCityAppName = VirtualCityApp.Agrimanagr.ToString(); switch ((SettingsKeys)Enum.Parse(typeof(SettingsKeys), settingenum.ToString())) { case SettingsKeys.CompanyDetails: setting.Value = model.CompanyDetails ?? ""; break; case SettingsKeys.CompanyName: setting.Value = model.CompanyName ?? ""; break; case SettingsKeys.ShowDeliveredBy: setting.Value = model.ShowDeliveredBy.ToString(); break; case SettingsKeys.ShowDeliveryDetails: setting.Value = model.ShowDeliveryDetails.ToString(); break; case SettingsKeys.ShowServiceProvderOnPurchase: setting.Value = model.ShowServiceProvderOnPurchase.ToString(); break; case SettingsKeys.ShowLoadingDetails: setting.Value = model.ShowLoadingDetails.ToString(); break; case SettingsKeys.ShowDispatchPage: setting.Value = model.ShowDispatchPage.ToString(); break; case SettingsKeys.EnforceNoOfContainers: setting.Value = model.EnforceNoOfContainers.ToString(); break; case SettingsKeys.NotificationOnWeighing: setting.Value = model.NotificationOnWeighing.ToString(); break; case SettingsKeys.WeighingContainerForStorage: setting.Value = model.WeighingContainerForStorage.ToString(); break; case SettingsKeys.EnforceVehicleMileageAndTime: setting.Value = model.EnforceVehicleMileageAndTime.ToString(); break; case SettingsKeys.LoadBatches: setting.Value = model.LoadBatches.ToString(); break; case SettingsKeys.Traceable: setting.Value = model.Traceable.ToString(); break; case SettingsKeys.SetPurchasingClerkAsDriver: setting.Value = model.SetPurchasingClerkAsDriver.ToString(); break; case SettingsKeys.EnforceWeighingOnReception: setting.Value = model.EnforceWeighingOnReception.ToString(); break; case SettingsKeys.AllowManualEntryOfWeight: setting.Value = model.AllowManualEntryOfWeight.ToString(); break; case SettingsKeys.ShowCumulativeWeightOnReceipts: setting.Value = model.ShowCumulativeWeightsOnReceipts.ToString(); break; case SettingsKeys.RestrictPurchaseFromSubsequentCentres: setting.Value = model.RestrictPurchaseFromSubsequentCentres.ToString(); break; case SettingsKeys.EnforcePasswordChange: setting.Value = model.EnforcePasswordChange.ToString(); break; case SettingsKeys.EnforceGps: setting.Value = model.EnforceGps.ToString(); break; case SettingsKeys.EnforceTransactionalWeightLimit: setting.Value = model.EnforceTransactionalWeightLimit + "," + "Min:(" + model.MinimumWeightLimit + ")," + "Max:(" + model.MaximumWeightLimit + ")"; // var val = setting.Value; if (model.EnforceTransactionalWeightLimit ==false) { setting.Value = model.EnforceTransactionalWeightLimit + "," + "Min:(" + 0.0 + ")," + "Max:(" + 0.0 + ")"; } break; case SettingsKeys.HideContainerNumber: setting.Value = model.HideContainerNumber.ToString(); break; case SettingsKeys.ShowFarmActivities: setting.Value = model.ShowFarmActivities.ToString(); break; case SettingsKeys.ShowWarehouseReceipt: setting.Value = model.ShowWarehouseReceipt.ToString(); break; case SettingsKeys.EnforceHideFarmOnPhone: setting.Value = model.EnforceHideFarmOnPhone.ToString(); break; } if (!items.Any(p => p.Key == setting.Key)) items.Add(setting); } return items.AsEnumerable(); }
private AgrimanagrSettingsViewModel CreateViewModel(IEnumerable<AppSettings> settings) { var model = new AgrimanagrSettingsViewModel(); foreach (var appSetting in settings) { switch (appSetting.Key) { case SettingsKeys.CompanyDetails: model.CompanyDetails = appSetting.Value; break; case SettingsKeys.CompanyName: model.CompanyName = appSetting.Value; break; case SettingsKeys.EnforceNoOfContainers: model.EnforceNoOfContainers = bool.Parse(appSetting.Value); break; case SettingsKeys.WeighingContainerForStorage: model.WeighingContainerForStorage = bool.Parse(appSetting.Value); break; case SettingsKeys.ShowDeliveredBy: model.ShowDeliveredBy = bool.Parse(appSetting.Value); break; case SettingsKeys.Traceable: model.Traceable = Boolean.Parse(appSetting.Value); break; case SettingsKeys.ShowLoadingDetails: model.ShowLoadingDetails = Boolean.Parse(appSetting.Value); break; case SettingsKeys.ShowServiceProvderOnPurchase: model.ShowServiceProvderOnPurchase = Boolean.Parse(appSetting.Value); break; case SettingsKeys.ShowDispatchPage: model.ShowDispatchPage = Boolean.Parse(appSetting.Value); break; case SettingsKeys.NotificationOnWeighing: model.NotificationOnWeighing = Boolean.Parse(appSetting.Value); break; case SettingsKeys.SetPurchasingClerkAsDriver: model.SetPurchasingClerkAsDriver = Boolean.Parse(appSetting.Value); break; case SettingsKeys.EnforceWeighingOnReception: model.EnforceWeighingOnReception = Boolean.Parse(appSetting.Value); break; case SettingsKeys.AllowManualEntryOfWeight: model.AllowManualEntryOfWeight = Boolean.Parse(appSetting.Value); break; case SettingsKeys.ShowCumulativeWeightOnReceipts: model.ShowCumulativeWeightsOnReceipts = Boolean.Parse(appSetting.Value); break; case SettingsKeys.EnforceVehicleMileageAndTime: model.EnforceVehicleMileageAndTime = Boolean.Parse(appSetting.Value); break; case SettingsKeys.RestrictPurchaseFromSubsequentCentres: model.RestrictPurchaseFromSubsequentCentres = Boolean.Parse(appSetting.Value); break; case SettingsKeys.EnforcePasswordChange: model.EnforcePasswordChange = Boolean.Parse(appSetting.Value); break; case SettingsKeys.EnforceGps: model.EnforceGps = Boolean.Parse(appSetting.Value); break; case SettingsKeys.EnforceTransactionalWeightLimit: var val = appSetting.Value; string value = val.StartsWith("False") ? "False" : "True"; model.EnforceTransactionalWeightLimit = Boolean.Parse(value); StringCollection information = new StringCollection(); foreach (Match match in Regex.Matches(val, @"\(([^)]*)\)")) { information.Add(match.Value); } var minValue = information[0].Trim(); minValue = minValue.Replace("(", string.Empty).Replace(")", string.Empty); string maxValue = information[1].Trim(); maxValue = maxValue.Replace("(", string.Empty).Replace(")", string.Empty); double mn = double.Parse(minValue); double mx = double.Parse(maxValue); model.MinimumWeightLimit = mn; model.MaximumWeightLimit = mx; break; case SettingsKeys.HideContainerNumber: model.HideContainerNumber = Boolean.Parse(appSetting.Value); break; case SettingsKeys.ShowFarmActivities: model.ShowFarmActivities = Boolean.Parse(appSetting.Value); break; case SettingsKeys.ShowWarehouseReceipt: model.ShowWarehouseReceipt = Boolean.Parse(appSetting.Value); break; case SettingsKeys.EnforceHideFarmOnPhone: model.EnforceHideFarmOnPhone = Boolean.Parse(appSetting.Value); break; } } return model; }