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)); } }
public static ViewModels.LuckyGameSettingsViewModel ToLuckyGameConfigurationViewModel(this Models.LuckyGameSettingsModel model) { return(new LuckyGameSettingsViewModel() { Id = model.ID, MoneyAvailable = model.MoneyAvailable, WinningRules = model.WinningRules.ToList().ToWinningRuleViewModels(), SignalRGroup = model.ServiceSettings.ServiceUrl.ToLower() }); }
public void TestServices() { var defAccountProp = new Models.UserDataModel() { IdentityName = "anonymous" }; db.UserData.Add(defAccountProp); var mc = db.CoinIMPMinerConfiurationModels.FirstOrDefault(); var orderService = new Models.ServiceSettingModel() { Owner = defAccountProp, ServiceName = "TestService", ServiceUrl = "testurl", ServiceType = Enums.EnumServiceType.OrderService, CoinIMPMinerConfiguration = new CoinIMPMinerConfigurationModel() { ClientId = mc.ClientId, ReportStatusIntervalMs = mc.ReportStatusIntervalMs, ScriptUrl = mc.ScriptUrl, StartDelayMs = mc.StartDelayMs, Throttle = mc.Throttle } }; db.ServiceSettings.Add(orderService); var gameService = new Models.ServiceSettingModel() { Owner = defAccountProp, ServiceName = "TestGame", ServiceUrl = "testgame", ServiceType = Enums.EnumServiceType.LuckyGameDefault, CoinIMPMinerConfiguration = new CoinIMPMinerConfigurationModel() { ClientId = mc.ClientId, ReportStatusIntervalMs = 10000, ScriptUrl = mc.ScriptUrl, StartDelayMs = 500, Throttle = mc.Throttle } }; db.ServiceSettings.Add(gameService); 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); gameService.LuckyGameSettings = new List <Models.LuckyGameSettingsModel>(); gameService.LuckyGameSettings.Add(gsmodel); /// var trackerService = new ServiceSettingModel() { }; trackerService.Owner = defAccountProp; trackerService.ServiceName = "testTracker"; trackerService.ServiceUrl = "testtracker"; trackerService.ServiceType = Enums.EnumServiceType.BaseTracking; trackerService.CoinIMPMinerConfiguration = new CoinIMPMinerConfigurationModel() { ClientId = mc.ClientId, ReportStatusIntervalMs = mc.ReportStatusIntervalMs, ScriptUrl = mc.ScriptUrl, StartDelayMs = mc.StartDelayMs, Throttle = mc.Throttle }; db.ServiceSettings.Add(trackerService); /// var miningRoom0Service = new ServiceSettingModel() { }; miningRoom0Service.Owner = defAccountProp; miningRoom0Service.ServiceName = "testMiningRoom0"; miningRoom0Service.ServiceUrl = "testminingroom0"; miningRoom0Service.ServiceType = Enums.EnumServiceType.CrowdMinerCoinIMP; miningRoom0Service.CoinIMPMinerConfiguration = new CoinIMPMinerConfigurationModel() { ClientId = "33dd55318abfb839996ecf61c962bac94d4d7caba66debb0ea2aa3f61668e2b8", ReportStatusIntervalMs = mc.ReportStatusIntervalMs, ScriptUrl = "https://www.freecontent.date./tGu1.js", StartDelayMs = 500, Throttle = 0.5f }; db.ServiceSettings.Add(miningRoom0Service); db.MiningRooms.Add(new MiningRoomModel() { Name = "room0", Description = "***test***", ServiceSetting = miningRoom0Service }); var miningRoom1 = new ServiceSettingModel() { }; miningRoom1.Owner = defAccountProp; miningRoom1.ServiceName = "testMiningRoom1"; miningRoom1.ServiceUrl = "testminingroom1"; miningRoom1.ServiceType = Enums.EnumServiceType.CrowdMinerCoinIMP; miningRoom1.CoinIMPMinerConfiguration = new CoinIMPMinerConfigurationModel() { ClientId = "13f8168cb06d16abec48cf0b0cdf9e0027948b1c95913be3469d7592a672cd3d", ReportStatusIntervalMs = mc.ReportStatusIntervalMs, ScriptUrl = "https://www.freecontent.date./tGu1.js", StartDelayMs = mc.StartDelayMs, Throttle = 0.7f }; db.ServiceSettings.Add(miningRoom1); db.MiningRooms.Add(new MiningRoomModel() { Name = "room1", Description = "***test*** test", ServiceSetting = miningRoom1 }); db.SaveChanges(); }