internal void Parse(DataSet ds) { try { DataTable billTable = ds.Tables["Bill"]; Logger.WarnFormat("bills row count = {0}", billTable.Rows.Count); if (billTable.Rows.Count == 0) { return; } foreach (DataRow eachBillRow in billTable.Rows) { Bill bill; if (eachBillRow["IsValued"] != DBNull.Value) { bill = new PLBill(new DBRow(eachBillRow)); } else { bill = new Bill(new DBRow(eachBillRow)); } var account = TradingSetting.Default.GetAccount(bill.AccountId); if (bill.OwnerType == BillOwnerType.Order) { Guid dependenceId = (Guid)eachBillRow["DependenceID"]; account.AddOrderBill(dependenceId, bill, OperationType.AsNewRecord); } else if (bill.OwnerType == BillOwnerType.Account) { account.AddBill(bill, OperationType.AsNewRecord); } } } catch (Exception ex) { Logger.Error(ex); throw; } }
internal void Initialize(IDataReader dr) { try { Bill bill; if (dr["IsValued"] != DBNull.Value) { bill = new PLBill(new DBReader(dr)); } else { bill = new Bill(new DBReader(dr)); } var account = TradingSetting.Default.GetAccount(bill.AccountId); if (account == null) { throw new NullReferenceException(string.Format("account id = {0} not exist", bill.AccountId)); } if (bill.OwnerType == BillOwnerType.Order) { if (dr["DependenceID"] == DBNull.Value) { Logger.ErrorFormat("Parse bill error, dependenceid is null, billId = {0}", bill.Id); return; } Guid dependenceId = (Guid)dr["DependenceID"]; account.AddOrderBill(dependenceId, bill, OperationType.None); } else if (bill.OwnerType == BillOwnerType.Account) { account.AddBill(bill, OperationType.None); } } catch (Exception ex) { Logger.Error(ex); } }