public async Task <int> SubmitAsync(int id, int userId) { var model = await GetIndexAsync(id); var list = await _storeInoutGoodsContext.GetListByStoreInoutAsync(id); var goods = list.Select(x => new StoreChangeGoodsValueModel { HospitalGoodId = x.HospitalGoods.Id, ChangeQty = x.Qty, Recrdno = RecordNumber.Next(model.ChangeType.Id, x.Id), }); using (var trans = _defaultDbTransaction.Begin()) { _storeContext.BatchCreateOrUpdate(new BatchStoreChangeApiModel { ChangeTypeId = model.ChangeType.Id, HospitalChangeGoods = goods.ToList(), }, model.HospitalDepartment.Id, userId); _StoreInoutRespository.UpdateStatus(id, StoreInoutStatus.Submited); trans.Commit(); } return(0); }
private AddRoadSegment( RecordNumber recordNumber, RoadSegmentId temporaryId, RoadNodeId startNodeId, RoadNodeId endNodeId, MultiLineString geometry, OrganizationId maintenanceAuthority, RoadSegmentGeometryDrawMethod geometryDrawMethod, RoadSegmentMorphology morphology, RoadSegmentStatus status, RoadSegmentCategory category, RoadSegmentAccessRestriction accessRestriction, CrabStreetnameId?leftSideStreetNameId, CrabStreetnameId?rightSideStreetNameId, IReadOnlyList <RoadSegmentLaneAttribute> lanes, IReadOnlyList <RoadSegmentWidthAttribute> widths, IReadOnlyList <RoadSegmentSurfaceAttribute> surfaces) { RecordNumber = recordNumber; TemporaryId = temporaryId; StartNodeId = startNodeId; EndNodeId = endNodeId; Geometry = geometry; MaintenanceAuthority = maintenanceAuthority; GeometryDrawMethod = geometryDrawMethod; Morphology = morphology; Status = status; Category = category; AccessRestriction = accessRestriction; LeftSideStreetNameId = leftSideStreetNameId; RightSideStreetNameId = rightSideStreetNameId; Lanes = lanes; Widths = widths; Surfaces = surfaces; }
public AddRoadNode(RecordNumber recordNumber, RoadNodeId temporaryId, RoadNodeType type) { RecordNumber = recordNumber; TemporaryId = temporaryId; Type = type ?? throw new ArgumentNullException(nameof(type)); Geometry = null; }
public bool MoveNext() { if (_state == State.Ended) { return(false); } if (_state == State.Initial) { if (_enumerator.MoveNext()) { _state = State.Started; return(true); } _state = State.Ended; return(false); } if (_enumerator.MoveNext()) { _number = _number.Next(); return(true); } _state = State.Ended; return(false); }
public AddRoadSegment( RecordNumber recordNumber, RoadSegmentId temporaryId, RoadNodeId startNodeId, RoadNodeId endNodeId, OrganizationId maintenanceAuthority, RoadSegmentGeometryDrawMethod geometryDrawMethod, RoadSegmentMorphology morphology, RoadSegmentStatus status, RoadSegmentCategory category, RoadSegmentAccessRestriction accessRestriction, CrabStreetnameId?leftSideStreetNameId, CrabStreetnameId?rightSideStreetNameId) { RecordNumber = recordNumber; TemporaryId = temporaryId; StartNodeId = startNodeId; EndNodeId = endNodeId; Geometry = null; MaintenanceAuthority = maintenanceAuthority; GeometryDrawMethod = geometryDrawMethod ?? throw new ArgumentNullException(nameof(geometryDrawMethod)); Morphology = morphology ?? throw new ArgumentNullException(nameof(morphology)); Status = status ?? throw new ArgumentNullException(nameof(status)); Category = category ?? throw new ArgumentNullException(nameof(category)); AccessRestriction = accessRestriction ?? throw new ArgumentNullException(nameof(accessRestriction)); LeftSideStreetNameId = leftSideStreetNameId; RightSideStreetNameId = rightSideStreetNameId; Lanes = new RoadSegmentLaneAttribute[0]; Widths = new RoadSegmentWidthAttribute[0]; Surfaces = new RoadSegmentSurfaceAttribute[0]; }
private AddRoadNode(RecordNumber recordNumber, RoadNodeId temporaryId, RoadNodeType type, NetTopologySuite.Geometries.Point geometry) { RecordNumber = recordNumber; TemporaryId = temporaryId; Type = type; Geometry = geometry; }
/// <summary> /// Add a binary attachment to existing record /// Can be file/image/mail/... depending on what ServiceNow allows /// </summary> /// <typeparam name="T"></typeparam> /// <param name="recordId">Record sys_id</param> /// <param name="filename">Name of the attachment</param> /// <param name="file">The attachment in binary format</param> /// <returns></returns> public async Task <RestResponseSingle <Attachment> > PostAttachment <T>(string recordId, string filename, byte[] file) where T : Record { if (string.IsNullOrWhiteSpace(recordId)) { throw new ArgumentNullException(nameof(recordId)); } if (!RecordNumber.IsValidId(recordId)) { throw new ArgumentException("Invalid record ID.", nameof(recordId)); } if (string.IsNullOrWhiteSpace(filename)) { throw new ArgumentNullException(nameof(filename)); } if (file == null || file.Length == 0) { throw new ArgumentNullException(nameof(file)); } // Convert to safe values var nvs = new NameValueCollection { { "table_name", RecordTable.GetTableName <T>() }, { "table_sys_id", recordId }, { "file_name", HttpUtility.UrlEncode(filename) } }; // Build url with keys var urlBuilder = new StringBuilder(); urlBuilder.Append("attachment/file?"); for (var i = 0; i < nvs.Keys.Count; i++) { if (i > 0) { urlBuilder.Append("&"); } var key = nvs.Keys[i]; urlBuilder.AppendFormat("{0}={1}", key, nvs[key]); } var url = urlBuilder.ToString(); // Post var response = await _Client.PostAsFileAsync(url, filename, file); if (response.IsSuccessStatusCode) { return(await response.Content.ReadAsJsonAsync <RestResponseSingle <Attachment> >()); } else { return new RestResponseSingle <Attachment>() { ErrorMsg = $"POST attachment error ({response.StatusCode}): {response.ReasonPhrase}" } }; } #endregion }
public ProblematicDbaseRecordEnumerator(TDbaseRecord[] records, int failAt, Exception failure) { _records = records ?? throw new ArgumentNullException(nameof(records)); _failAt = failAt; _failure = failure; _index = -1; _number = RecordNumber.Initial; }
/// <summary> /// Get ServiceNow child records by parent RecordNumber /// The maximum number of records returned is 5000 /// </summary> /// <typeparam name="T">Record type</typeparam> /// <param name="number"></param> /// <returns></returns> public async Task <RestResponseQuery <T> > GetByParentNumber <T>(RecordNumber number) where T : Record { if (number == null) { throw new ArgumentNullException(nameof(number)); } return(await Get <RestResponseQuery <T> >($"{GetUrl<T>()}?sysparm_limit=5000&sysparm_fields={RecordTable.GetFieldList<T>()}&sysparm_query=parent.number={number.Number}")); }
public Data AsData(DataCollectorContext context) { DictionaryData d = new DictionaryData(context); d.Data["Message"] = Message; d.Data["TimeGenerated"] = TimeGeneratedAsDateTimeOffset.ToString("o"); d.Data["Source"] = SourceName; d.Data["RecordNumber"] = RecordNumber.ToString(); d.Data["EventCode"] = EventCode.ToString(); return(d); }
public override IShpRecordHeader Read(BinaryReader reader, WordCount origin) { var recordNumber = RecordNumber.Read(reader, origin); var contentLength = ContentLength.Read(reader, origin); return(new ShpRecordHeader() { RecordNumber = recordNumber, ContentLength = contentLength }); }
// road segment public static FileError IdentifierNotUnique(this IDbaseFileRecordProblemBuilder builder, RoadSegmentId identifier, RecordNumber takenByRecordNumber) { return(builder .Error(nameof(IdentifierNotUnique)) .WithParameters( new ProblemParameter("Identifier", identifier.ToString()), new ProblemParameter("TakenByRecordNumber", takenByRecordNumber.ToString()) ) .Build()); }
/// <summary> /// Get ServiceNow record of type T (which must inherit from Record) by id /// </summary> /// <typeparam name="T">Record type (example: SupportRequest)</typeparam> /// <param name="id">ServiceNow sys_id</param> /// <returns></returns> public Task <RestResponseSingle <T> > GetById <T>(string id) where T : Record { if (string.IsNullOrWhiteSpace(id)) { throw new ArgumentNullException(nameof(id)); } if (!RecordNumber.IsValidId(id)) { throw new ArgumentException("Invalid record ID.", nameof(id)); } return(Get <RestResponseSingle <T> >($"{GetUrl<T>()}/{id}?sysparm_limit=1&sysparm_fields={RecordTable.GetFieldList<T>()}")); }
/// <summary> /// Get ServiceNow record of type T (which must inherit from Record) by its number /// </summary> /// <typeparam name="T">Record type (example: SupportRequest)</typeparam> /// <param name="number">Instance of RecordNumber (example: new RecordNumber("SR1234567"))</param> /// <returns></returns> public async Task <RestResponseSingle <T> > GetByNumber <T>(RecordNumber number) where T : Record { if (number == null) { throw new ArgumentNullException(nameof(number)); } var result = await GetByQuery <T>(@"number=" + number.Number); return(new RestResponseSingle <T>() { ErrorMsg = result.ErrorMsg, Result = result.Result?.FirstOrDefault() }); }
public bool MoveNext() { if (_index == _records.Length) { return(false); } _number = _index == -1 ? RecordNumber.Initial : _number.Next(); _index++; if (_index == _failAt) { throw _failure; } return(_index != _records.Length); }
public traderBean ToBean() { traderBean bean = new traderBean(); bean.ID = RecordNumber.ToString(); bean.DATA_NEGOCIO = TradeDate.ToString("yyyy-MM-dd"); bean.HORA_NEGOCIO = HoraNegocio; bean.NR_NEGOCIO = TradeID; bean.CODNEG = Papel; bean.SERPAP = Serie; bean.OPERACAO = Orientation; bean.QTDADE = NumberOfContracts.ToString(); bean.PDENEG = Price.ToString(ciEn); bean.FC_NOME = BuyerName; bean.NM_EMIT_ORDEM = TraderName; bean.MERCADO = SegmentoBolsa; return(bean); }
private static long GetLength(byte acbp, UInt32 storedLength, RecordNumber recordNumber) { bool isBig = (acbp & 0x02) != 0; if (isBig) { if (recordNumber == RecordNumber.SEGDEF32) { return(0x100000000L); } else { return(0x10000); } } else { return(storedLength); } }
public EventRecord(BinaryReader recordData, int recordPosition, ChunkInfo chunk) { var l = LogManager.GetLogger("EventRecord"); RecordPosition = recordPosition; ChunkNumber = chunk.ChunkNumber; recordData.ReadInt32(); //signature Size = recordData.ReadUInt32(); RecordNumber = recordData.ReadInt64(); Timestamp = DateTimeOffset.FromFileTime(recordData.ReadInt64()).ToUniversalTime(); if (recordData.PeekChar() != 0xf) { throw new Exception("Payload does not start with 0x1f!"); } l.Trace( $"Record position: 0x{RecordPosition:X4} Record #: {RecordNumber.ToString().PadRight(3)} Timestamp: {Timestamp:yyyy-MM-dd HH:mm:ss.fffffff}"); Nodes = new List <IBinXml>(); var eof = false; while (eof == false) { var nextTag = TagBuilder.BuildTag(recordPosition, recordData, chunk); Nodes.Add(nextTag); if (nextTag is EndOfBXmlStream) //nothing left to do, so exit { eof = true; } } BuildProperties(); }
public async Task <int> ComfirmAsync(IList <int> ids, int userId) { foreach (var id in ids) { var goods = await _purchaseGoodsBillnoRespository.GetIndexAsync(id); var changed = new StoreChangeApiModel { ChangeTypeId = (int)StoreChangeType.Purchase, HospitalChangeGoods = new StoreChangeGoodsValueModel { HospitalGoodId = goods.HospitalGoods.Id, ChangeQty = goods.Qty, Recrdno = RecordNumber.Next((int)StoreChangeType.Purchase, id), }, }; var recordId = _storeContext.CreateOrUpdate(changed, goods.Purchase.HospitalDepartment.Id, userId); _storeRecordBillnoContext.Create(id, recordId); _purchaseGoodsBillnoRespository.UpdateStatus(id, BillStatus.Comfirmed); } return(ids.Count); }
public async Task <int> BillAsync(int id, int userId) { var model = await _checkListRespository.GetIndexAsync(id); var list = await _checkListGoodsRespository.GetPreviewListAsync(id); using (var trans = _defaultDbTransaction.Begin()) { var goods1 = list.Where(x => x.StoreQty > x.CheckQty).Select(x => new StoreChangeGoodsValueModel { HospitalGoodId = x.HospitalGoods.Id, ChangeQty = x.StoreQty - x.CheckQty, Recrdno = RecordNumber.Next((int)StoreChangeType.CheckListOut, x.Id), }); _storeContext.BatchCreateOrUpdate(new BatchStoreChangeApiModel { ChangeTypeId = (int)StoreChangeType.CheckListOut, HospitalChangeGoods = goods1.ToList(), }, model.HospitalDepartment.Id, userId); var goods2 = list.Where(x => x.StoreQty < x.CheckQty).Select(x => new StoreChangeGoodsValueModel { HospitalGoodId = x.HospitalGoods.Id, ChangeQty = -x.StoreQty + x.CheckQty, Recrdno = RecordNumber.Next((int)StoreChangeType.CheckListIn, x.Id), }); _storeContext.BatchCreateOrUpdate(new BatchStoreChangeApiModel { ChangeTypeId = (int)StoreChangeType.CheckListIn, HospitalChangeGoods = goods2.ToList(), }, model.HospitalDepartment.Id, userId); _checkListRespository.UpdateStatus(id, CheckListStatus.Billed); trans.Commit(); } return(0); }
public override string ToString() { return ($"Record position: 0x{RecordPosition:X4} Record #: {RecordNumber.ToString().PadRight(3)} Timestamp: {Timestamp:yyyy-MM-dd HH:mm:ss.fffffff} Event Id: {EventId}"); }
public EventRecord(BinaryReader recordData, int recordPosition, ChunkInfo chunk) { var l = LogManager.GetLogger("EventRecord"); RecordPosition = recordPosition; ChunkNumber = chunk.ChunkNumber; recordData.ReadInt32(); //signature Size = recordData.ReadUInt32(); RecordNumber = recordData.ReadInt64(); Timestamp = DateTimeOffset.FromFileTime(recordData.ReadInt64()).ToUniversalTime(); if (recordData.PeekChar() != 0xf) { throw new Exception("Payload does not start with 0x1f!"); } l.Trace( $"\r\nRecord position: 0x{RecordPosition:X4} Record #: {RecordNumber.ToString().PadRight(3)} Timestamp: {Timestamp:yyyy-MM-dd HH:mm:ss.fffffff}"); Nodes = new List <IBinXml>(); var eof = false; while (eof == false) { var nextTag = TagBuilder.BuildTag(recordPosition, recordData, chunk); Nodes.Add(nextTag); if (nextTag is EndOfBXmlStream) { //nothing left to do, so exit eof = true; //check here if there is a 0x2a0x2a and if so, another record! var found2a = true; //danderspritz test var maxCount = 0; while (recordData.ReadByte() != 0x2a && maxCount < 15) { if (recordData.BaseStream.Position == recordData.BaseStream.Length) { found2a = false; break; //out of data } maxCount += 1; } if (found2a) { //a secondary check to eliminate false positives if (recordData.ReadByte() == 0x2a) { //back up two recordData.BaseStream.Seek(-2, SeekOrigin.Current); ExtraDataOffset = recordData.BaseStream.Position; } } } } BuildProperties(); }
public override void Write(BinaryWriter writer, IShpRecordHeader value, WordCount origin) { RecordNumber.Write(writer, value.RecordNumber, origin); ContentLength.Write(writer, value.ContentLength, origin); }
public Response Load(int LineNumber) { try { int RecordCount = 0; int RecordNumber; int SubLineNumber; // tbl_Accounts Log.log(LineNumber, "Performing initial synchronization of database.. Loading tbl_Accounts into Cache..", Log.LogType.CACHE); RecordCount = Count("SELECT COUNT(*) FROM tbl_Accounts;"); reader = QueryDatabase("SELECT * FROM tbl_Accounts;"); RecordNumber = 0; SubLineNumber = -1; while (reader.Read()) { Data.tbl_Accounts.TryAdd(reader.GetInt32("Account_ID"), new _Accounts(reader.GetInt32("Account_ID"), reader.GetString("Username"), reader.GetString("Email"), reader.GetString("Password"), reader.GetBoolean("Logged_In"))); ++RecordNumber; if (SubLineNumber == -1) { SubLineNumber = Log.log("Downloading data from tbl_Accounts, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } else { Log.log(SubLineNumber, "Downloading data from tbl_Accounts, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } } reader.Close(); // tbl_Activity Log.log(LineNumber, "Performing initial synchronization of database.. Loading tbl_Activity into Cache..", Log.LogType.CACHE); RecordCount = Count("SELECT COUNT(*) from tbl_Activity;"); reader = QueryDatabase("SELECT * FROM tbl_Activity;"); RecordNumber = 0; SubLineNumber = -1; while (reader.Read()) { Data.tbl_Activity.Add(new _Activity(reader.GetInt32("Activity_ID"), reader.GetInt32("Account_ID"), (Activity)reader.GetInt32("Activity_Type"), reader.GetDateTime("DTStamp"), reader.GetString("Session_ID"), false)); ++RecordNumber; if (SubLineNumber == -1) { SubLineNumber = Log.log("Downloading data from tbl_Activity, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } else { Log.log(SubLineNumber, "Downloading data from tbl_Activity, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } } reader.Close(); // tbl_Characters Log.log(LineNumber, "Performing initial synchronization of database.. Loading tbl_Characters into Cache..", Log.LogType.CACHE); RecordCount = Count("SELECT COUNT(*) from tbl_Characters;"); reader = QueryDatabase("SELECT * FROM tbl_Characters;"); RecordNumber = 0; SubLineNumber = -1; while (reader.Read()) { Data.tbl_Characters.TryAdd(reader.GetInt32("Character_ID"), new _Characters(reader.GetInt32("Character_ID"), reader.GetInt32("Account_ID"), reader.GetString("Character_Name"), reader.GetInt32("Character_Level"), reader.GetInt32("Gender"), reader.GetFloat("Pos_X"), reader.GetFloat("Pos_Y"), reader.GetFloat("Pos_Z"), reader.GetFloat("Rotation_Y"), reader.GetFloat("Camera_Pos_X"), reader.GetFloat("Camera_Pos_Y"), reader.GetFloat("Camera_Pos_Z"), reader.GetFloat("Camera_Rotation_Y"), reader.GetInt32("Health"), reader.GetInt32("Strength"), reader.GetInt32("Agility"), reader.GetInt32("Experience"))); ++RecordNumber; if (SubLineNumber == -1) { SubLineNumber = Log.log("Downloading data from tbl_Characters, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } else { Log.log(SubLineNumber, "Downloading data from tbl_Characters, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } } reader.Close(); // tbl_Quests Log.log(LineNumber, "Performing initial synchronization of database.. Loading tbl_Quests into Cache..", Log.LogType.CACHE); RecordCount = Count("SELECT COUNT(*) from tbl_Quests;"); reader = QueryDatabase("SELECT * FROM tbl_Quests;"); RecordNumber = 0; SubLineNumber = -1; while (reader.Read()) { Data.tbl_Quests.TryAdd(reader.GetInt32("Quest_ID"), new _Quests(reader.GetInt32("Quest_ID"), reader.GetString("Title"), reader.GetString("Start_Text"), reader.GetString("End_Text"), reader.GetInt32("Reward_ID"), reader.GetInt32("NPC_Start_ID"), reader.GetInt32("NPC_End_ID"), reader.GetInt32("Objective_Target"), reader.GetInt32("Start_Requirement_Quest_ID"), reader.GetInt32("Item_Objective_ID"), reader.GetInt32("NPC_Objective_ID"), reader.GetInt32("Experience"))); ++RecordNumber; if (SubLineNumber == -1) { SubLineNumber = Log.log("Downloading data from tbl_Quests, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } else { Log.log(SubLineNumber, "Downloading data from tbl_Quests, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } } reader.Close(); // tbl_Quest_Log Log.log(LineNumber, "Performing initial synchronization of database.. Loading tbl_Quest_Log into Cache..", Log.LogType.CACHE); RecordCount = Count("SELECT COUNT(*) from tbl_Quest_Log;"); reader = QueryDatabase("SELECT * FROM tbl_Quest_Log;"); RecordNumber = 0; SubLineNumber = -1; while (reader.Read()) { Data.tbl_Quest_Log.TryAdd(reader.GetInt32("Log_ID"), new _Quest_Log(reader.GetInt32("Log_ID"), reader.GetInt32("Character_ID"), reader.GetInt32("Quest_ID"), reader.GetInt32("Quest_Status"), reader.GetInt32("Progress"))); ++RecordNumber; if (SubLineNumber == -1) { SubLineNumber = Log.log("Downloading data from tbl_Quest_Log, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } else { Log.log(SubLineNumber, "Downloading data from tbl_Quest_Log, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } } reader.Close(); // tbl_NPC Log.log(LineNumber, "Performing initial synchronization of database.. Loading tbl_NPC into Cache..", Log.LogType.CACHE); RecordCount = Count("SELECT COUNT(*) from tbl_NPC;"); reader = QueryDatabase("SELECT * FROM tbl_NPC;"); RecordNumber = 0; SubLineNumber = -1; while (reader.Read()) { Data.tbl_NPC.TryAdd(reader.GetInt32("NPC_ID"), new _NPC(reader.GetInt32("NPC_ID"), reader.GetInt32("Status"), reader.GetString("Name"), reader.GetInt32("Level"), reader.GetInt32("HP"), reader.GetInt32("Gender"), reader.GetInt32("Respawn_Time"), reader.GetInt32("Strength"), reader.GetInt32("Agility"), reader.GetInt32("Experience"))); ++RecordNumber; if (SubLineNumber == -1) { SubLineNumber = Log.log("Downloading data from tbl_NPC, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } else { Log.log(SubLineNumber, "Downloading data from tbl_NPC, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } } reader.Close(); // tbl_Collectables Log.log(LineNumber, "Performing initial synchronization of database.. Loading tbl_Collectables into Cache..", Log.LogType.CACHE); RecordCount = Count("SELECT COUNT(*) from tbl_Collectables;"); reader = QueryDatabase("SELECT * FROM tbl_Collectables;"); RecordNumber = 0; SubLineNumber = -1; while (reader.Read()) { Data.tbl_Collectables.TryAdd(reader.GetInt32("Collectable_ID"), new _Collectables(reader.GetInt32("Collectable_ID"), reader.GetString("Collectable_Name"), reader.GetInt32("Respawn_Time"))); ++RecordNumber; if (SubLineNumber == -1) { SubLineNumber = Log.log("Downloading data from tbl_Collectables, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } else { Log.log(SubLineNumber, "Downloading data from tbl_Collectables, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } } reader.Close(); // tbl_Spawn_Positions Log.log(LineNumber, "Performing initial synchronization of database.. Loading tbl_Spawn_Positions into Cache..", Log.LogType.CACHE); RecordCount = Count("SELECT COUNT(*) from tbl_Spawn_Positions;"); reader = QueryDatabase("SELECT * FROM tbl_Spawn_Positions;"); RecordNumber = 0; SubLineNumber = -1; while (reader.Read()) { Data.tbl_Spawn_Positions.TryAdd(reader.GetInt32("Position_ID"), new _Spawn_Positions(reader.GetInt32("Position_ID"), reader.GetFloat("Pos_X"), reader.GetFloat("Pos_Y"), reader.GetFloat("Pos_Z"), reader.GetFloat("Rotation_Y"), reader.GetInt32("NPC_ID"), reader.GetInt32("Collectable_ID"))); ++RecordNumber; if (SubLineNumber == -1) { SubLineNumber = Log.log("Downloading data from tbl_Spawn_Positions, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } else { Log.log(SubLineNumber, "Downloading data from tbl_Spawn_Positions, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } } reader.Close(); // tbl_Experience Log.log(LineNumber, "Performing initial synchronization of database.. Loading tbl_Experience into Cache..", Log.LogType.CACHE); RecordCount = Count("SELECT COUNT(*) from tbl_Experience;"); reader = QueryDatabase("SELECT * FROM tbl_Experience;"); RecordNumber = 0; SubLineNumber = -1; while (reader.Read()) { Data.tbl_Experience.TryAdd(reader.GetInt32("XP_ID"), new _Experience(reader.GetInt32("XP_ID"), reader.GetInt32("Level"), reader.GetInt32("Experience"), reader.GetInt32("Strength"), reader.GetInt32("Agility"), reader.GetInt32("HP"))); ++RecordNumber; if (SubLineNumber == -1) { SubLineNumber = Log.log("Downloading data from tbl_Experience, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } else { Log.log(SubLineNumber, "Downloading data from tbl_Experience, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } } reader.Close(); // tbl_Connectivity Log.log(LineNumber, "Performing initial synchronization of database.. Loading tbl_Connectivity into Cache..", Log.LogType.CACHE); RecordCount = Count("SELECT COUNT(*) from tbl_Connectivity;"); reader = QueryDatabase("SELECT * FROM tbl_Connectivity;"); RecordNumber = 0; SubLineNumber = -1; while (reader.Read()) { Data.tbl_Connectivity.Add(new _Connectivity(reader.GetInt32("Character_ID"), reader.GetDateTime("DTStamp"), reader.GetFloat("TCP_Latency"), reader.GetFloat("TCP_Throughput"), reader.GetInt32("TCP_Packets_Sent"), reader.GetInt32("TCP_Packets_Received"), reader.GetFloat("UDP_Latency"), reader.GetFloat("UDP_Throughput"), reader.GetInt32("UDP_Packets_Sent"), reader.GetInt32("UDP_Packets_Received"), false, reader.GetInt32("ID"))); ++RecordNumber; if (SubLineNumber == -1) { SubLineNumber = Log.log("Downloading data from tbl_Connectivity, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } else { Log.log(SubLineNumber, "Downloading data from tbl_Connectivity, Record: " + RecordNumber.ToString() + " of " + RecordCount.ToString() + " (" + ((RecordNumber == 0 || RecordCount == 0) ? "0.00%" : ((RecordCount / RecordNumber) * 100).ToString("0.00") + "%") + ")", Log.LogType.CACHE); } } reader.Close(); Log.log(LineNumber, "Initial synchronization of database successful, see below for a data summary report.", Log.LogType.CACHE); return(Response.SUCCESSFUL); } catch (Exception e) { Log.log("An error occurred when attempting to load data from the database. > " + e.Message, Log.LogType.ERROR); return(Response.ERROR); } }
public EventRecord(BinaryReader recordData, int recordPosition, ChunkInfo chunk) { var l = LogManager.GetLogger("EventRecord"); RecordPosition = recordPosition; recordData.ReadInt32(); //signature Size = recordData.ReadUInt32(); RecordNumber = recordData.ReadInt64(); Timestamp = DateTimeOffset.FromFileTime(recordData.ReadInt64()).ToUniversalTime(); if (recordData.PeekChar() != 0xf) { throw new Exception("Payload does not start with 0x1f!"); } l.Trace( $"Record position: 0x{RecordPosition:X4} Record #: {RecordNumber.ToString().PadRight(3)} Timestamp: {Timestamp:yyyy-MM-dd HH:mm:ss.fffffff}"); Nodes = new List <IBinXml>(); var eof = false; while (eof == false) { var nextTag = TagBuilder.BuildTag(recordPosition, recordData, chunk); Nodes.Add(nextTag); if (nextTag is EndOfBXmlStream) //nothing left to do, so exit { eof = true; } } var xml = ConvertPayloadToXml(); using (var sr = new StringReader(xml)) { var docNav = new XPathDocument(sr); var nav = docNav.CreateNavigator(); var computer = nav.SelectSingleNode(@"/Event/System/Computer"); var channel = nav.SelectSingleNode(@"/Event/System/Channel"); var eventRecordId = nav.SelectSingleNode(@"/Event/System/EventRecordID"); var eventId = nav.SelectSingleNode(@"/Event/System/EventID"); var level = nav.SelectSingleNode(@"/Event/System/Level"); var timeCreated = nav.SelectSingleNode(@"/Event/System/TimeCreated")?.GetAttribute("SystemTime", ""); var provider = nav.SelectSingleNode(@"/Event/System/Provider")?.GetAttribute("Name", ""); var processId = nav.SelectSingleNode(@"/Event/System/Execution")?.GetAttribute("ProcessID", ""); var threadId = nav.SelectSingleNode(@"/Event/System/Execution")?.GetAttribute("ThreadID", ""); var userId = nav.SelectSingleNode(@"/Event/System/Security")?.GetAttribute("UserID", ""); TimeCreated = DateTimeOffset.Parse(timeCreated, null, DateTimeStyles.AssumeUniversal).ToUniversalTime(); if (eventId != null) { EventId = eventId.ValueAsInt; } //if (level != null) //{ // Level = level.ValueAsInt; //} //if (eventRecordId != null) //{ // EventRecordId = eventRecordId.Value; //} //if (processId != null) //{ // ProcessId = int.Parse(processId); //} //if (threadId != null) //{ // ThreadId = int.Parse(threadId); //} var payloadNode = nav.SelectSingleNode(@"/Event/EventData"); if (payloadNode == null) { payloadNode = nav.SelectSingleNode(@"/Event/UserData"); } var payloadXml = payloadNode?.OuterXml; //if (EventLog.EventLogMaps.ContainsKey($"{EventId}-{channel.ToString().ToUpperInvariant()}")) //{ // l.Trace($"Found map for event id {EventId} with Channel '{channel}'!"); // var map = EventLog.EventLogMaps[$"{EventId}-{channel.ToString().ToUpperInvariant()}"]; // MapDescription = map.Description; // foreach (var mapEntry in map.Maps) // { // var valProps = new Dictionary<string, string>(); // foreach (var me in mapEntry.Values) // { // //xpath out variables // var propVal = nav.SelectSingleNode(me.Value); // if (propVal != null) // { // var propValue = propVal.Value; // if (me.Refine.IsNullOrEmpty() == false) // { // var hits = new List<string>(); // //regex time // MatchCollection allMatchResults = null; // try { // Regex regexObj = new Regex(me.Refine, RegexOptions.IgnoreCase); // allMatchResults = regexObj.Matches(propValue); // if (allMatchResults.Count > 0) { // // Access individual matches using allMatchResults.Item[] // foreach (Match allMatchResult in allMatchResults) // { // hits.Add(allMatchResult.Value); // } // propValue = string.Join(" | ", hits); // } // } catch (ArgumentException ) { // // Syntax error in the regular expression // } // } // valProps.Add(me.Name, propValue); // } // else // { // valProps.Add(me.Name, string.Empty); // l.Warn( // $"Record # {RecordNumber} (Event Record Id: {EventRecordId}): In map for event '{map.EventId}', Property '{me.Value}' not found! Replacing with empty string"); // } // } // //we have the values, now substitute // var propertyValue = mapEntry.PropertyValue; // foreach (var valProp in valProps) // { // propertyValue = propertyValue.Replace($"%{valProp.Key}%", valProp.Value); // } // var propertyToUpdate = mapEntry.Property.ToUpperInvariant(); // if (valProps.Count == 0) // { // propertyToUpdate = "NOMATCH"; //prevents variables from showing up in the CSV // } // //we should now have our new value, so stick it in its place // switch (propertyToUpdate) // { // case "USERNAME": // UserName = propertyValue; // break; // case "REMOTEHOST": // RemoteHost = propertyValue; // break; // case "EXECUTABLEINFO": // ExecutableInfo = propertyValue; // break; // case "PAYLOADDATA1": // PayloadData1 = propertyValue; // break; // case "PAYLOADDATA2": // PayloadData2 = propertyValue; // break; // case "PAYLOADDATA3": // PayloadData3 = propertyValue; // break; // case "PAYLOADDATA4": // PayloadData4 = propertyValue; // break; // case "PAYLOADDATA5": // PayloadData5 = propertyValue; // break; // case "PAYLOADDATA6": // PayloadData6 = propertyValue; // break; // case "NOMATCH": // //when a property was not found. // break; // default: // l.Warn( // $"Unknown property name '{propertyToUpdate}'! Dropping mapping value of '{propertyValue}'"); // break; //} //sanity checks //UserId = userId ?? string.Empty; Provider = provider ?? string.Empty; Channel = channel?.Value ?? string.Empty; Computer = computer?.Value ?? string.Empty; Payload = payloadXml ?? string.Empty; } }
public DbaseRecordEnumerator(IEnumerator <TDbaseRecord> enumerator) { _enumerator = enumerator ?? throw new ArgumentNullException(nameof(enumerator)); _number = RecordNumber.Initial; _state = State.Initial; }
public virtual string GetRecordNumberString() => RecordNumber.ToString("D6");
internal static Record ReadRecord( BinaryReader binaryReader, RecordContext context, RecordNumber expectedRecord) { RecordReader reader = new RecordReader(binaryReader); if (expectedRecord != RecordNumber.None && reader.RecordNumber != expectedRecord) { throw new InvalidDataException(string.Format( "Expecting record {0}, but got record {1}.", expectedRecord, reader.RecordNumber)); } Record r; switch (reader.RecordNumber) { case RecordNumber.LibraryHeader: r = new LibraryHeaderRecord(reader, context); break; case RecordNumber.LibraryEnd: r = new LibraryEndRecord(reader, context); break; case RecordNumber.ALIAS: r = new ALIASRecord(reader, context); break; case RecordNumber.CEXTDEF: r = new CEXTDEFRecord(reader, context); break; case RecordNumber.COMDAT: case RecordNumber.COMDAT32: r = new COMDATRecord(reader, context); break; case RecordNumber.COMDEF: r = new COMDEFRecord(reader, context); break; case RecordNumber.COMENT: r = new CommentRecord(reader, context); break; case RecordNumber.EXTDEF: r = new EXTDEFRecord(reader, context); break; case RecordNumber.FIXUPP: case RecordNumber.FIXUPP32: r = new FixupRecord(reader, context); break; case RecordNumber.GRPDEF: r = new GRPDEFRecord(reader, context); break; case RecordNumber.LCOMDEF: r = new LCOMDEFRecord(reader, context); break; case RecordNumber.LEDATA: case RecordNumber.LEDATA32: r = new LEDATARecord(reader, context); break; case RecordNumber.LEXTDEF: case RecordNumber.LEXTDEF32: r = new LEXTDEFRecord(reader, context); break; case RecordNumber.LHEADR: r = new LHEADRRecord(reader, context); break; case RecordNumber.LIDATA: case RecordNumber.LIDATA32: r = new LIDATARecord(reader, context); break; case RecordNumber.LNAMES: r = new ListOfNamesRecord(reader, context); break; case RecordNumber.LPUBDEF: case RecordNumber.LPUBDEF32: r = new LPUBDEFRecord(reader, context); break; case RecordNumber.MODEND: r = new MODENDRecord(reader, context); break; case RecordNumber.PUBDEF: case RecordNumber.PUBDEF32: r = new PUBDEFRecord(reader, context); break; case RecordNumber.SEGDEF: case RecordNumber.SEGDEF32: r = new SEGDEFRecord(reader, context); break; case RecordNumber.THEADR: r = new THEADRRecord(reader, context); break; default: r = new UnknownRecord(reader, context); break; } // TODO: check all bytes are consumed. // ... // Update RecordContext.LastRecord. This is necessary so that // a FIXUPP record knows which record to fix up. if (context != null) { context.LastRecord = r; } return r; }
public IShapeFileRecordProblemBuilder AtShapeRecord(RecordNumber number) { return(new FileProblemBuilder(_file, _parameters.Add(new ProblemParameter("RecordNumber", number.ToString())))); }
public static IShapeFileRecordProblemBuilder AtShapeRecord(this ZipArchiveEntry entry, RecordNumber number) { return(new FileProblemBuilder(entry.Name).AtShapeRecord(number)); }
private static long GetLength(byte acbp, UInt32 storedLength, RecordNumber recordNumber) { bool isBig = (acbp & 0x02) != 0; if (isBig) { if (recordNumber == RecordNumber.SEGDEF32) return 0x100000000L; else return 0x10000; } else { return storedLength; } }
public bool TryTranslateToRoadNodeId(RecordNumber number, out RoadNodeId translated) { return(_mapToRoadNodeId.TryGetValue(number, out translated)); }