public ViewModels.CoinIMPMinerConfigurationViewModel GetDefaultMinerConfig() { var dbconf = minerContext.GetDefaultMinerConfig(); return(dbconf.ToCoinIMPMinerConfigurationViewModel()); }
public JsonResult Create(ServiceSettingViewModel model) { if (!ModelState.IsValid) { return(Json(new { Result = "ERROR", Message = BaseResource.Get("InvalidData") })); } if (!User.IsInRole("Admin")) { return(Json(new { Result = "ERROR", Message = BaseResource.Get("NoPermission") })); } if (string.IsNullOrEmpty(model.ServiceUrl)) { return(Json(new { Result = "ERROR", Message = BaseResource.Get("URLCannotBeEmpty") })); } try { if (!Utils.ValidationUtils.IsNumbersAndLettersOnly(model.ServiceName) || !Utils.ValidationUtils.IsNumbersAndLettersOnly(model.ServiceUrl)) { return(Json(new { Result = "ERROR", Message = BaseResource.Get("InvalidDataOnlyNumbersAndLetters") })); } if (Utils.ValidationUtils.IsDangerousString(model.StripePublishableKey, out int dint) || Utils.ValidationUtils.IsDangerousString(model.StripeSecretKey, out dint)) { return(Json(new { Result = "ERROR", Message = BaseResource.Get("InvalidDataDangerousCharacters") })); } if (db.ServiceSettings.Any(ln => ln.ServiceUrl == model.ServiceUrl)) { return(Json(new { Result = "ERROR", Message = BaseResource.Get("ServiceUrlAlreadyTaken") })); } var userdata = db.UserData.FirstOrDefault(ln => ln.IdentityName == User.Identity.Name); if (userdata == null) { userdata = db.UserData.Add(new Models.UserDataModel() { IdentityName = User.Identity.Name }); } var dbobj = db.ServiceSettings.Add(new Models.ServiceSettingModel() { Owner = userdata, ServiceName = model.ServiceName, ServiceUrl = model.ServiceUrl, ServiceType = (Enums.EnumServiceType)model.ServiceType, }); switch (dbobj.ServiceType) { case Enums.EnumServiceType.OrderService: if (!string.IsNullOrEmpty(model.StripePublishableKey) && !string.IsNullOrEmpty(model.StripeSecretKey)) { dbobj.StripeSettings = new List <Models.StripeSettingsModel>(); dbobj.StripeSettings.Add(new Models.StripeSettingsModel() { PublishableKey = model.StripePublishableKey, SecretKey = model.StripeSecretKey }); } break; case Enums.EnumServiceType.TaxiService: break; case Enums.EnumServiceType.SecurityService: break; case Enums.EnumServiceType.OrderServiceDrone: break; case Enums.EnumServiceType.LuckyGameDefault: var defRule1 = new Models.LuckyGameWinningRule() { AmountMatchingCards = 3, WinFactor = 1.6f }; var defRule2 = new Models.LuckyGameWinningRule() { AmountMatchingCards = 4, WinFactor = 4 }; var defRule3 = new Models.LuckyGameWinningRule() { AmountMatchingCards = 5, WinFactor = 5 }; var defRule4 = new Models.LuckyGameWinningRule() { AmountMatchingCards = 6, WinFactor = 10 }; var gsmodel = new Models.LuckyGameSettingsModel() { MoneyAvailable = 0, WinningRules = new List <Models.LuckyGameWinningRule>() }; // gsmodel.WinningRules.Add(defRule0); gsmodel.WinningRules.Add(defRule1); gsmodel.WinningRules.Add(defRule2); gsmodel.WinningRules.Add(defRule3); gsmodel.WinningRules.Add(defRule4); dbobj.LuckyGameSettings = new List <Models.LuckyGameSettingsModel>(); dbobj.LuckyGameSettings.Add(gsmodel); break; case Enums.EnumServiceType.BaseTracking: break; case Enums.EnumServiceType.CrowdMinerCoinIMP: if (!string.IsNullOrEmpty(model.MinerClientId) && !string.IsNullOrEmpty(model.MinerScriptUrl)) { var defaultConfig = coinIMPMinerContext.GetDefaultMinerConfig(); dbobj.CoinIMPMinerConfiguration = new Models.CoinIMPMinerConfigurationModel() { ClientId = model.MinerClientId, ScriptUrl = model.MinerScriptUrl, Throttle = defaultConfig.Throttle, StartDelayMs = defaultConfig.StartDelayMs, ReportStatusIntervalMs = defaultConfig.ReportStatusIntervalMs }; } else { dbobj.CoinIMPMinerConfiguration = coinIMPMinerContext.GetDefaultMinerConfig(); } if (dbobj.MiningRooms == null) { dbobj.MiningRooms = new List <Models.MiningRoomModel>(); } dbobj.MiningRooms.Add(new Models.MiningRoomModel() { Name = model.ServiceName, Description = "-- -- --", ShowControls = true }); break; case Enums.EnumServiceType.DJRoom: if (dbobj.MiningRooms == null) { dbobj.MiningRooms = new List <Models.MiningRoomModel>(); } dbobj.MiningRooms.Add(new Models.MiningRoomModel() { Name = model.ServiceName, Description = "-- -- --", ShowControls = true }); break; case Enums.EnumServiceType.CrowdMinerJSECoin: var roomImplementation = Factories.MiningRoomFactory.GetImplementation(Enums.EnumMiningRoomType.JSECoin); /* todo: move following code in a CreateRoom interface-method */ if (!string.IsNullOrEmpty(model.MinerClientId) && !string.IsNullOrEmpty(model.MinerScriptUrl)) { var defaultConfig = jseCoinMinerContext.GetDefaultMinerConfig(); dbobj.JSECoinMinerConfiguration = new Models.JSECoinMinerConfigurationModel() { ClientId = defaultConfig.ClientId, SiteId = defaultConfig.SiteId, SubId = defaultConfig.SubId }; } else { dbobj.JSECoinMinerConfiguration = jseCoinMinerContext.GetDefaultMinerConfig(); } if (dbobj.MiningRooms == null) { dbobj.MiningRooms = new List <Models.MiningRoomModel>(); } dbobj.MiningRooms.Add(new Models.MiningRoomModel() { Name = model.ServiceName, Description = "-- -- --", ShowControls = true }); break; default: break; } db.SaveChanges(); return(Json(new { Result = "OK", Record = dbobj.ToServiceSettingViewModel() }, JsonRequestBehavior.AllowGet)); } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { string msg = ""; foreach (var ve in ex.EntityValidationErrors) { msg += ve.ValidationErrors.FirstOrDefault().ErrorMessage; } return(Json(new { Result = "ERROR", Message = msg }, JsonRequestBehavior.AllowGet)); } }