public GeneralHubResponseObject ProcessIncoming(System.Security.Principal.IPrincipal User, GeneralHubRequestObject Request) { GeneralHubResponseObject result = new GeneralHubResponseObject(); if (!User.Identity.IsAuthenticated) { result.Success = false; result.ErrorMessage = SignalRService.Localization.BaseResource.Get("MsgLoginFirst"); return(result); } return(result); }
public DTOs.GeneralHubResponseObject ProcessIncoming(DTOs.GeneralHubRequestObject Request) { GeneralHubResponseObject result = new GeneralHubResponseObject(); var jconf = JsonConvert.SerializeObject(Request.RequestData); var osRequest = JsonConvert.DeserializeObject <OrderServiceRequesObject>(jconf); var signalRGroup = serviceRepository.GetSignalRGroup(Request.ServiceId); switch (osRequest.Command) { case "StageProduct": var spconf = JsonConvert.SerializeObject(osRequest.CommandData); var spdata = JsonConvert.DeserializeObject <Hubs.ProductDataWrap>(spconf); var res = StageProduct(spdata.Product, Request.ServiceId.ToString(), Request.ConnectionId); result.ResponseData = res; if (res.ErrorNumber == 0) { result.Success = true; } else { result.Success = false; result.ErrorMessage = res.ErrorMessage; } break; case "LoadProducts": var sconf = JsonConvert.SerializeObject(osRequest.CommandData); var searchConfig = JsonConvert.DeserializeObject <Hubs.SearchConfigWrap>(sconf); var user = userRepository.GetUser(Request.User.Identity.Name); var pres = getProducts(user.Id, signalRGroup, searchConfig.SearchConfig); result.ResponseData = pres; break; case "RemoveProduct": var rmspconf = JsonConvert.SerializeObject(osRequest.CommandData); var rmspdata = JsonConvert.DeserializeObject <Hubs.ProductRemoveCommand>(rmspconf); RemoveProduct(rmspdata.Id, signalRGroup, Request.ConnectionId); break; default: result.Success = false; result.ErrorMessage = "Unknown/invalid Command"; break; } return(result); }
public GeneralHubResponseObject CreateMiningRoom(System.Security.Principal.IPrincipal User, MiningRoomRequesObject mrRequest) { GeneralHubResponseObject result = new GeneralHubResponseObject(); if (!User.Identity.IsAuthenticated) { result.Success = false; result.ErrorMessage = SignalRService.Localization.BaseResource.Get("MsgLoginFirst"); return(result); } string toParse = ((dynamic)mrRequest.CommandData).CoinType; if (!Enum.TryParse(toParse, out Enums.EnumMiningRoomType coinType)) { result.ErrorMessage = "Invalid type given"; result.Success = false; return(result); } //if it's not this implementation, use coinimp switch (coinType) { case Enums.EnumMiningRoomType.CoinIMP: var roomImplementation = Factories.MiningRoomFactory.GetImplementation(Enums.EnumMiningRoomType.CoinIMP); return(roomImplementation.CreateMiningRoom(User, mrRequest)); case Enums.EnumMiningRoomType.JSECoin: break; default: break; } string roomName = ((dynamic)mrRequest.CommandData).RoomName; string clientId = ((dynamic)mrRequest.CommandData).ClientId; string siteId = ((dynamic)mrRequest.CommandData).SiteId; string subId = ((dynamic)mrRequest.CommandData).SubId; var mrMinLength = (int)Utils.GeneralSettingsUtils.GetSettingValue(Enums.EnumGeneralSetting.MiningRoomNameMinLength); var MrMaxLength = (int)Utils.GeneralSettingsUtils.GetSettingValue(Enums.EnumGeneralSetting.MiningRoomNameMaxLength); if (roomName.Length > MrMaxLength || roomName.Length < mrMinLength) { result.ErrorMessage = "Name has to be from " + mrMinLength + " to " + MrMaxLength + " characters."; result.Success = false; return(result); } bool isDangerous = Utils.ValidationUtils.IsDangerousString(roomName, out int badIdx); if (isDangerous) { result.ErrorMessage = "Invalid character in Name"; result.Success = false; return(result); } var clIdMinLength = (int)Utils.GeneralSettingsUtils.GetSettingValue(Enums.EnumGeneralSetting.JSECoinClientIdMinLength); var clIdMaxLength = (int)Utils.GeneralSettingsUtils.GetSettingValue(Enums.EnumGeneralSetting.JSECoinClientIdMaxLength); if (clientId.Length > clIdMaxLength || clientId.Length < clIdMinLength) { result.ErrorMessage = "ClientId has to be from " + clIdMinLength + " to " + clIdMaxLength + " characters."; result.Success = false; return(result); } var user = userRepo.GetDbUser(User.Identity.Name); var newService = serviceRepo.GetNewService(Enums.EnumServiceType.CrowdMinerCoinIMP, user, roomName); var defaultMinerConf = minerRepo.GetDefaultMinerConfig(); var newMinerConf = minerRepo.GetNewMinerConfig(clientId, siteId, subId); newService.JSECoinMinerConfiguration = newMinerConf; var theRoom = miningRoomRepo.CreateRoom(newService); // db.PredefinedMinerClients.Remove(predefClient); db.SaveChanges(); result.Success = true; result.ResponseData = theRoom.ServiceSetting.ServiceUrl; return(result); }
public DTOs.GeneralHubResponseObject ProcessIncoming(DTOs.GeneralHubRequestObject Request) { GeneralHubResponseObject result = new GeneralHubResponseObject(); var jconf = JsonConvert.SerializeObject(Request.RequestData); var mrRequest = JsonConvert.DeserializeObject <MiningRoomRequesObject>(jconf); switch (mrRequest.Command) { case "GetRoomOverview": var overviewData = GetOverview(mrRequest.MiningRoomId); result.Success = true; result.ResponseData = overviewData; break; case "ToggleControls": var dbMiningRoomx = db.MiningRooms.FirstOrDefault(ln => ln.Id == mrRequest.MiningRoomId); if (dbMiningRoomx.ServiceSetting.Owner == Request.User || Request.User.IsInRole("Admin")) { bool isOn = bool.Parse(mrRequest.CommandData.ToString()); dbMiningRoomx.ShowControls = isOn; db.SaveChanges(); var vm = GetOverview(mrRequest.MiningRoomId); SendRoomInfoUpdateToClients(vm, dbMiningRoomx.ServiceSetting.ServiceUrl.ToLower()); } break; case "CreateRoom": result = CreateMiningRoom(Request.User, mrRequest); break; case "UpdateDescription": if (!Request.User.Identity.IsAuthenticated) { result.Success = false; result.ErrorMessage = SignalRService.Localization.BaseResource.Get("MsgLoginFirst"); break; } var dbRoom = db.MiningRooms.FirstOrDefault(ln => ln.Id == mrRequest.MiningRoomId); if (dbRoom == null) { result.Success = false; result.ErrorMessage = "Invalid RoomId"; } if (!Utils.ServiceUtils.IsServiceOwner(dbRoom.ServiceSetting.ID, Request.User.Identity.Name)) { if (!Request.User.IsInRole("Admin")) { result.Success = false; result.ErrorMessage = "No Permission"; break; } } string contentData = ((dynamic)mrRequest.CommandData).Content; string cultureName = ((dynamic)mrRequest.CommandData).Culture; var localizationKey = GetDescriptionKeyForRoom(dbRoom.Id); Repositories.LocalizationRepository localizationRepo = new Repositories.LocalizationRepository(db); if (localizationRepo.Exists(localizationKey, cultureName)) { var dbItem = localizationRepo.Get(localizationKey, cultureName); dbItem.Value = contentData; localizationRepo.Update(dbItem, Request.User.Identity.Name); Localization.UiResources.Instance.removeFromCache(localizationKey, cultureName); result.Success = true; result.Message = "description updated successfuly"; } else { localizationRepo.Create(new Models.LocalizationModel() { CreationDate = DateTime.Now, Archived = false, Culture = cultureName, Key = localizationKey, LastModDate = DateTime.Now, ModUser = Request.User.Identity.Name, TranslationStatus = Enums.EnumTranslationStatus.Undefined, Value = contentData, WasHit = false }, Request.User.Identity.Name); result.Success = true; result.Message = "creating localizationItem success."; } break; default: break; } return(result); }
public GeneralHubResponseObject CreateMiningRoom(System.Security.Principal.IPrincipal User, MiningRoomRequesObject mrRequest) { GeneralHubResponseObject result = new GeneralHubResponseObject(); if (!User.Identity.IsAuthenticated) { result.Success = false; result.ErrorMessage = SignalRService.Localization.BaseResource.Get("MsgLoginFirst"); return(result); } string roomName = ((dynamic)mrRequest.CommandData).RoomName; string clientId = ((dynamic)mrRequest.CommandData).ClientId; var mrMinLength = (int)Utils.GeneralSettingsUtils.GetSettingValue(Enums.EnumGeneralSetting.MiningRoomNameMinLength); var MrMaxLength = (int)Utils.GeneralSettingsUtils.GetSettingValue(Enums.EnumGeneralSetting.MiningRoomNameMaxLength); if (roomName.Length > MrMaxLength || roomName.Length < mrMinLength) { result.ErrorMessage = "Name has to be from " + mrMinLength + " to " + MrMaxLength + " characters."; result.Success = false; return(result); } bool isDangerous = Utils.ValidationUtils.IsDangerousString(roomName, out int badIdx); if (isDangerous) { result.ErrorMessage = "Invalid character in Name"; result.Success = false; return(result); } var clIdMinLength = (int)Utils.GeneralSettingsUtils.GetSettingValue(Enums.EnumGeneralSetting.CoinImpClientIdMinLength); var clIdMaxLength = (int)Utils.GeneralSettingsUtils.GetSettingValue(Enums.EnumGeneralSetting.CoinImpClientIdMaxLength); if (clientId.Length > clIdMaxLength || clientId.Length < clIdMinLength) { result.ErrorMessage = "Name has to be from " + clIdMinLength + " to " + clIdMaxLength + " characters."; result.Success = false; return(result); } if (db.PredefinedMinerClients.Count() == 0) { result.ErrorMessage = "No more slots open, please come back later."; result.Success = false; return(result); } var predefClient = db.PredefinedMinerClients.FirstOrDefault(); var user = userRepo.GetDbUser(User.Identity.Name); var newService = serviceRepo.GetNewService(Enums.EnumServiceType.CrowdMinerCoinIMP, user, roomName); var defaultMinerConf = minerRepo.GetDefaultMinerConfig(); var newMinerConf = minerRepo.GetNewMinerConfig(clientId, predefClient.ScriptUrl, float.Parse(defaultMinerConf.Throttle), defaultMinerConf.StartDelayMs, defaultMinerConf.ReportStatusIntervalMs); newService.CoinIMPMinerConfiguration = newMinerConf; var theRoom = miningRoomRepo.CreateRoom(newService); // db.PredefinedMinerClients.Remove(predefClient); db.SaveChanges(); result.Success = true; result.ResponseData = theRoom.ServiceSetting.ServiceUrl; return(result); }
public DTOs.GeneralHubResponseObject ProcessIncoming(DTOs.GeneralHubRequestObject Request) { GeneralHubResponseObject result = new GeneralHubResponseObject(); return(result); }