public void BatchHeader_TestRowCreation() { var _suts = new List <BatchHeader>(); var _suti = new BatchHeader { ServiceClassCode = BatchServiceClassCodeConstant.Credits, CompanyName = "CONTRACTOR MGMT", CompanyDiscretionaryData = "", CompanyIdentification = "9876543210", StandardEntryClassCode = StandardEntryClassCodeConstant.PPD, CompanyEntryDescription = "SETTLEMENT", CompanyDescriptiveDate = "", EffectiveEntryDate = new DateTime(2016, 8, 11), OriginatorStatusCode = BatchHeaderOriginatorStatusCodeConstant.NonFederalGovernment, OriginatingDfi = "99889988" }; _suts.Add(_suti); var _engine = new FileHelpers.FileHelperEngine <BatchHeader>(); var _test = _engine.WriteString(_suts); var _expected = "5220CONTRACTOR MGMT 9876543210PPDSETTLEMENT 160811 1998899880000000\r\n"; Assert.Equal(_expected, _test); }
public BatchHeader GetSingle(Int32 Id) { BatchHeader obj = new BatchHeader(); try { string query = "select * from batch_headers where ID = " + Id + ""; SqlCommand cmd = new SqlCommand(query, mySQLDBConnect.connection); mySQLDBConnect.OpenConnection(); DataTable dt = new DataTable(); SqlDataAdapter dA = new SqlDataAdapter(cmd); dA.Fill(dt); obj = (from x in dt.AsEnumerable() select new BatchHeader { Id = x.Field <Int32>("id"), DepartmentId = x.Field <Int32>("department_id"), Code = x.Field <String>("code"), Name = x.Field <String>("name"), Url = x.Field <String>("url"), CreatedDate = x.Field <DateTime>("created_date"), CreatedBy = x.Field <Int32>("created_by"), UpdatedDate = x.Field <DateTime?>("updated_date"), UpdatedBy = x.Field <Int32?>("updated_by") == null ? 0 : x.Field <Int32>("updated_by"), Status = x.Field <Int32>("status"), }).ToList().FirstOrDefault(); mySQLDBConnect.CloseConnection(); } catch (Exception ex) { Console.Write(ex.ToString()); } return(obj); }
public BatchHeader UpdateData(BatchHeader obj) { try { obj = IBatchHeaderRepo.UpdateData(obj); } catch (Exception ex) { Console.Write(ex.ToString()); } return(obj); }
public BatchHeader DeleteData(Int32 Id) { BatchHeader obj = new BatchHeader(); try { obj = IBatchHeaderRepo.DeleteData(Id); } catch (Exception ex) { Console.Write(ex.ToString()); } return(obj); }
/// <summary> /// Creates new batch. /// </summary> /// <returns>The batch.</returns> /// <param name="transactions">Transactions.</param> public Batch CreateBatch(IEnumerable <Transaction> transactions) { var batchHeader = new BatchHeader(); batchHeader.TransactionIds.AddRange(transactions.Select(x => x.HeaderSignature)); batchHeader.SignerPublicKey = signer.GetPublicKey().ToHexString(); var batch = new Batch(); batch.Transactions.AddRange(transactions.Select(x => x.Clone())); batch.Header = batchHeader.ToByteString(); batch.HeaderSignature = signer.Sign(batchHeader.ToByteArray().ToSha256()).ToHexString(); return(batch); }
public BatchHeader UpdateData(BatchHeader obj) { try { string query = obj.ObjectToQuery <BatchHeader>("update"); SqlCommand cmd = new SqlCommand(query, mySQLDBConnect.connection); mySQLDBConnect.OpenConnection(); cmd.ExecuteNonQuery(); mySQLDBConnect.CloseConnection(); } catch (Exception ex) { Console.Write(ex.ToString()); } return(obj); }
public BatchHeader PostData(BatchHeader obj) { try { string query = obj.ObjectToQuery <BatchHeader>("insert") + "SELECT SCOPE_IDENTITY()"; SqlCommand cmd = new SqlCommand(query, mySQLDBConnect.connection); mySQLDBConnect.OpenConnection(); //cmd.ExecuteNonQuery(); obj.Id = Convert.ToInt32(cmd.ExecuteScalar()); mySQLDBConnect.CloseConnection(); } catch (Exception ex) { Console.Write(ex.ToString()); } return(obj); }
public Int32 DeleteBulkData(List <Int32> Ids) { Int32 result = 0; try { string query = ""; Ids.ForEach(Id => { BatchHeader obj = GetSingle(Id); query += obj.ObjectToQuery <BatchHeader>("update"); }); SqlCommand cmd = new SqlCommand(query, mySQLDBConnect.connection); mySQLDBConnect.OpenConnection(); result = cmd.ExecuteNonQuery(); mySQLDBConnect.CloseConnection(); } catch (Exception ex) { Console.Write(ex.ToString()); } return(result); }
public void Deserialize(Stream input) { var magic = input.ReadValueU16(Endian.Little); if (magic != Signature && magic.Swap() != Signature) { throw new FormatException(); } var endian = magic == Signature ? Endian.Little : Endian.Big; var nameCount = input.ReadValueU16(endian); var directoryCount = input.ReadValueU16(endian); var unknown06 = input.ReadValueU16(endian); if (unknown06 != 4) { throw new FormatException(); } var fileTableOffset = input.ReadValueU32(endian); var totalSize = input.ReadValueU32(endian); // size of FILETABLE.BIN var titleId1 = input.ReadString(16, true, Encoding.ASCII); var titleId2 = input.ReadString(16, true, Encoding.ASCII); var unknown30 = input.ReadValueU16(endian); var unknown32 = input.ReadValueU8(); var parentalLevel = input.ReadValueU8(); if (unknown30 != 0 || (unknown32 != 0 && unknown32 != 1)) { throw new FormatException(); } var installDataCryptoKey = input.ReadBytes(16); var nameHeaders = new NameHeader[nameCount]; for (int i = 0; i < nameCount; i++) { nameHeaders[i] = NameHeader.Read(input, endian); } var directoryHeaders = new DirectoryHeader[directoryCount]; for (int i = 0; i < directoryCount; i++) { var directoryHeader = directoryHeaders[i] = DirectoryHeader.Read(input, endian); if (directoryHeader.Unknown02 != 0 || directoryHeader.Unknown08 != 0) { throw new FormatException(); } } var totalBatchCount = directoryHeaders.Sum(s => s.BatchCount); if (input.Position + (totalBatchCount * 8) != fileTableOffset) { throw new InvalidOperationException(); } var batchHeaders = new BatchHeader[totalBatchCount]; for (int i = 0; i < totalBatchCount; i++) { batchHeaders[i] = BatchHeader.Read(input, endian); } var totalFileCount = batchHeaders.Sum(d => d.FileCount); int fileTableSize = 0; foreach (var batchHeader in batchHeaders) { var fileTableEntrySizeIndex = (int)batchHeader.Flags; if (fileTableEntrySizeIndex == 1 || fileTableEntrySizeIndex > 5) { throw new NotSupportedException(); } fileTableSize += batchHeader.FileCount * _FileTableEntrySizes[fileTableEntrySizeIndex]; } if (totalSize - fileTableOffset != fileTableSize) { throw new InvalidOperationException(); } var directories = new List <DirectoryEntry>(); using (var data = input.ReadToMemoryStream(fileTableSize)) { foreach (var directoryHeader in directoryHeaders) { var batchIndexBase = directoryHeader.BatchTableOffset / 8; var directory = new DirectoryEntry() { Id = directoryHeader.Id, DataBlockSize = directoryHeader.DataBlockSize, DataBaseOffset = directoryHeader.DataBaseOffset, IsInInstallData = directoryHeader.IsInInstallData, }; for (int i = 0; i < directoryHeader.BatchCount; i++) { if ((directoryHeader.BatchTableOffset % 8) != 0) { throw new FormatException(); } var batchHeader = batchHeaders[batchIndexBase + i]; var readDataHeader = _FileTableEntryReaders[(int)batchHeader.Flags]; if (readDataHeader == null) { throw new NotSupportedException(); } data.Position = batchHeader.FileTableOffset; ushort fileId = batchHeader.BaseFileId; for (int j = 0; j < batchHeader.FileCount; j++, fileId++) { var fileHeader = readDataHeader(data, endian); uint?nameHash = null; if (directoryHeader.NameTableCount > 0) { if (directoryHeader.NameTableIndex == 0xFFFF) { throw new InvalidOperationException(); } var nameIndex = Array.FindIndex( nameHeaders, directoryHeader.NameTableIndex, directoryHeader.NameTableCount, nte => nte.DirectoryId == directoryHeader.Id && nte.FileId == fileId); if (nameIndex >= 0) { nameHash = nameHeaders[nameIndex].NameHash; } } FileEntry file; file.Id = fileId; file.NameHash = nameHash; file.DataBlockOffset = fileHeader.DataBlockOffset; file.DataSize = fileHeader.DataSize; directory.Files.Add(file); } } directories.Add(directory); } this.Endian = endian; this.TitleId1 = titleId1; this.TitleId2 = titleId2; this.Unknown32 = unknown32; this.ParentalLevel = parentalLevel; this.InstallDataCryptoKey = installDataCryptoKey; this.Directories.Clear(); this.Directories.AddRange(directories); } }
public BatchHeaderTests() { _sut = new BatchHeader(); }