Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
 public static ViewModels.LuckyGameWinningRuleViewModel ToWinningRuleViewModel(this Models.LuckyGameWinningRule model)
 {
     return(new LuckyGameWinningRuleViewModel()
     {
         Id = model.ID,
         AmountMatchingCards = model.AmountMatchingCards,
         WinFactor = model.WinFactor
     });
 }
Ejemplo n.º 3
0
        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();
        }