Esempio n. 1
0
        public ViewModels.CoinIMPMinerConfigurationViewModel GetDefaultMinerConfig()
        {
            var dbconf = minerContext.GetDefaultMinerConfig();

            return(dbconf.ToCoinIMPMinerConfigurationViewModel());
        }
Esempio n. 2
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));
            }
        }