internal void OnOrderCall(Order order) { OnOrder?.Invoke(order); // invoke event specific for the transaction string correlationId = order.TransID.ToString(); #region Totally untested code or handling manual transactions if (!QuikService.Storage.Contains(correlationId)) { correlationId = "manual:" + order.OrderNum + ":" + correlationId; var fakeTrans = new Transaction() { Comment = correlationId, IsManual = true // TODO map order properties back to transaction // ideally, make C# property names consistent (Lua names are set as JSON.NET properties via an attribute) }; QuikService.Storage.Set <Transaction>(correlationId, fakeTrans); } #endregion Totally untested code or handling manual transactions var tr = QuikService.Storage.Get <Transaction>(correlationId); if (tr != null) { lock (tr) { tr.OnOrderCall(order); } } Trace.Assert(tr != null, "Transaction must exist in persistent storage until it is completed and all order messages are recieved"); }
///<summary> /// Returns a Typed OnOrder Entity with mock values. ///</summary> static public OnOrder CreateMockInstance_Generated(TransactionManager tm) { OnOrder mock = new OnOrder(); mock.TranDate = TestUtility.Instance.RandomDateTime(); mock.TranTime = TestUtility.Instance.RandomString(5, false);; mock.DeliverDt = TestUtility.Instance.RandomDateTime(); mock.TransNum = TestUtility.Instance.RandomString(5, false);; mock.TransCode = TestUtility.Instance.RandomString(2, false);; mock.ExpId = TestUtility.Instance.RandomString(5, false);; mock.GoodsId = TestUtility.Instance.RandomString(6, false);; mock.Qty = (decimal)TestUtility.Instance.RandomShort(); mock.UnitSymb = TestUtility.Instance.RandomString(3, false);; mock.Price = (decimal)TestUtility.Instance.RandomShort(); mock.MercType = TestUtility.Instance.RandomString(2, false);; mock.UserId = (decimal)TestUtility.Instance.RandomShort(); mock.Remark = TestUtility.Instance.RandomString(99, false);; mock.Recnum = (decimal)TestUtility.Instance.RandomShort(); mock.Status = TestUtility.Instance.RandomBoolean(); mock.EndQty = (decimal)TestUtility.Instance.RandomShort(); // create a temporary collection and add the item to it TList <OnOrder> tempMockCollection = new TList <OnOrder>(); tempMockCollection.Add(mock); tempMockCollection.Remove(mock); return((OnOrder)mock); }
/// <summary> /// Deep load all OnOrder children. /// </summary> private void Step_03_DeepLoad_Generated() { using (TransactionManager tm = CreateTransaction()) { int count = -1; mock = CreateMockInstance(tm); mockCollection = DataRepository.OnOrderProvider.GetPaged(tm, 0, 10, out count); DataRepository.OnOrderProvider.DeepLoading += new EntityProviderBaseCore <OnOrder, OnOrderKey> .DeepLoadingEventHandler( delegate(object sender, DeepSessionEventArgs e) { if (e.DeepSession.Count > 3) { e.Cancel = true; } } ); if (mockCollection.Count > 0) { DataRepository.OnOrderProvider.DeepLoad(tm, mockCollection[0]); System.Console.WriteLine("OnOrder instance correctly deep loaded at 1 level."); mockCollection.Add(mock); // DataRepository.OnOrderProvider.DeepSave(tm, mockCollection); } //normally one would commit here //tm.Commit(); //IDisposable will Rollback Transaction since it's left uncommitted } }
///<summary> /// Update the Typed OnOrder Entity with modified mock values. ///</summary> static public void UpdateMockInstance(TransactionManager tm, OnOrder mock) { OnOrderTest.UpdateMockInstance_Generated(tm, mock); // make any alterations necessary // (i.e. for DB check constraints, special test cases, etc.) SetSpecialTestData(mock); }
internal void OnOrderCall(Order order) { OnOrder?.Invoke(order); if (Orders == null) { Orders = new List <Order>(); } Orders.Add(order); }
/// <summary> /// Check the foreign key dal methods. /// </summary> private void Step_10_FK_Generated() { using (TransactionManager tm = CreateTransaction()) { OnOrder entity = CreateMockInstance(tm); bool result = DataRepository.OnOrderProvider.Insert(tm, entity); Assert.IsTrue(result, "Could Not Test FK, Insert Failed"); } }
/// <summary> /// Test methods exposed by the EntityHelper class. /// </summary> private void Step_20_TestEntityHelper_Generated() { using (TransactionManager tm = CreateTransaction()) { mock = CreateMockInstance(tm); OnOrder entity = mock.Copy() as OnOrder; entity = (OnOrder)mock.Clone(); Assert.IsTrue(OnOrder.ValueEquals(entity, mock), "Clone is not working"); } }
///<summary> /// Returns a Typed OnOrder Entity with mock values. ///</summary> static public OnOrder CreateMockInstance(TransactionManager tm) { // get the default mock instance OnOrder mock = OnOrderTest.CreateMockInstance_Generated(tm); // make any alterations necessary // (i.e. for DB check constraints, special test cases, etc.) SetSpecialTestData(mock); // return the modified object return(mock); }
/// <summary> /// Check the indexes dal methods. /// </summary> private void Step_11_IX_Generated() { using (TransactionManager tm = CreateTransaction()) { OnOrder entity = CreateMockInstance(tm); bool result = DataRepository.OnOrderProvider.Insert(tm, entity); Assert.IsTrue(result, "Could Not Test IX, Insert Failed"); OnOrder t0 = DataRepository.OnOrderProvider.GetByTransNumGoodsId(tm, entity.TransNum, entity.GoodsId); } }
/// <summary> /// Serialize the mock OnOrder entity into a temporary file. /// </summary> private void Step_06_SerializeEntity_Generated() { using (TransactionManager tm = CreateTransaction()) { mock = CreateMockInstance(tm); string fileName = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "temp_OnOrder.xml"); EntityHelper.SerializeXml(mock, fileName); Assert.IsTrue(System.IO.File.Exists(fileName), "Serialized mock not found"); System.Console.WriteLine("mock correctly serialized to a temporary file."); } }
/// <summary> /// Inserts a mock OnOrder entity into the database. /// </summary> private void Step_01_Insert_Generated() { using (TransactionManager tm = CreateTransaction()) { mock = CreateMockInstance(tm); Assert.IsTrue(DataRepository.OnOrderProvider.Insert(tm, mock), "Insert failed"); System.Console.WriteLine("DataRepository.OnOrderProvider.Insert(mock):"); System.Console.WriteLine(mock); //normally one would commit here //tm.Commit(); //IDisposable will Rollback Transaction since it's left uncommitted } }
/// <summary> /// Serialize a OnOrder collection into a temporary file. /// </summary> private void Step_08_SerializeCollection_Generated() { using (TransactionManager tm = CreateTransaction()) { string fileName = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "temp_OnOrderCollection.xml"); mock = CreateMockInstance(tm); TList <OnOrder> mockCollection = new TList <OnOrder>(); mockCollection.Add(mock); EntityHelper.SerializeXml(mockCollection, fileName); Assert.IsTrue(System.IO.File.Exists(fileName), "Serialized mock collection not found"); System.Console.WriteLine("TList<OnOrder> correctly serialized to a temporary file."); } }
///<summary> /// Update the Typed OnOrder Entity with modified mock values. ///</summary> static public void UpdateMockInstance_Generated(TransactionManager tm, OnOrder mock) { mock.TranDate = TestUtility.Instance.RandomDateTime(); mock.TranTime = TestUtility.Instance.RandomString(5, false);; mock.DeliverDt = TestUtility.Instance.RandomDateTime(); mock.TransCode = TestUtility.Instance.RandomString(2, false);; mock.ExpId = TestUtility.Instance.RandomString(5, false);; mock.Qty = (decimal)TestUtility.Instance.RandomShort(); mock.UnitSymb = TestUtility.Instance.RandomString(3, false);; mock.Price = (decimal)TestUtility.Instance.RandomShort(); mock.MercType = TestUtility.Instance.RandomString(2, false);; mock.UserId = (decimal)TestUtility.Instance.RandomShort(); mock.Remark = TestUtility.Instance.RandomString(99, false);; mock.Recnum = (decimal)TestUtility.Instance.RandomShort(); mock.Status = TestUtility.Instance.RandomBoolean(); mock.EndQty = (decimal)TestUtility.Instance.RandomShort(); }
/// <summary> /// Test Find using the Query class /// </summary> private void Step_30_TestFindByQuery_Generated() { using (TransactionManager tm = CreateTransaction()) { //Insert Mock Instance OnOrder mock = CreateMockInstance(tm); bool result = DataRepository.OnOrderProvider.Insert(tm, mock); Assert.IsTrue(result, "Could Not Test FindByQuery, Insert Failed"); OnOrderQuery query = new OnOrderQuery(); query.AppendEquals(OnOrderColumn.TranDate, mock.TranDate.ToString()); query.AppendEquals(OnOrderColumn.TranTime, mock.TranTime.ToString()); if (mock.DeliverDt != null) { query.AppendEquals(OnOrderColumn.DeliverDt, mock.DeliverDt.ToString()); } query.AppendEquals(OnOrderColumn.TransNum, mock.TransNum.ToString()); query.AppendEquals(OnOrderColumn.TransCode, mock.TransCode.ToString()); query.AppendEquals(OnOrderColumn.ExpId, mock.ExpId.ToString()); query.AppendEquals(OnOrderColumn.GoodsId, mock.GoodsId.ToString()); query.AppendEquals(OnOrderColumn.Qty, mock.Qty.ToString()); query.AppendEquals(OnOrderColumn.UnitSymb, mock.UnitSymb.ToString()); query.AppendEquals(OnOrderColumn.Price, mock.Price.ToString()); query.AppendEquals(OnOrderColumn.MercType, mock.MercType.ToString()); query.AppendEquals(OnOrderColumn.UserId, mock.UserId.ToString()); query.AppendEquals(OnOrderColumn.Remark, mock.Remark.ToString()); query.AppendEquals(OnOrderColumn.Recnum, mock.Recnum.ToString()); if (mock.Status != null) { query.AppendEquals(OnOrderColumn.Status, mock.Status.ToString()); } if (mock.EndQty != null) { query.AppendEquals(OnOrderColumn.EndQty, mock.EndQty.ToString()); } TList <OnOrder> results = DataRepository.OnOrderProvider.Find(tm, query); Assert.IsTrue(results.Count == 1, "Find is not working correctly. Failed to find the mock instance"); } }
/// <summary> /// Make any alterations necessary (i.e. for DB check constraints, special test cases, etc.) /// </summary> /// <param name="mock">Object to be modified</param> static private void SetSpecialTestData(OnOrder mock) { //Code your changes to the data object here. }
private void StartReceiving(ClientWebSocket webSocket) { new Thread(async() => { string receivedMessage; WebSocketReceiveResult result; var message = new ArraySegment <byte>(new byte[ReceiveChunkSize]); try { while (webSocket.State == WebSocketState.Open) { receivedMessage = string.Empty; do { result = await webSocket.ReceiveAsync(message, CancellationToken.None); if (result.MessageType == WebSocketMessageType.Close) { Disconnect(webSocket); break; } else { receivedMessage += Encoding.UTF8.GetString(message.Take(result.Count).ToArray()); } }while (!result.EndOfMessage); if (string.IsNullOrEmpty(receivedMessage)) { continue; } var token = JToken.Parse(receivedMessage); var messageKey = token.SelectToken("k").Value <string>(); var messageValueToken = token.SelectToken("v"); switch (messageKey) { case "book": OnMarketBook?.Invoke(this, new EventArgs <MarketBook>() { Data = messageValueToken.ToObject <MarketBook[]>() }); break; case "bookdelta": OnBookDeltaItem?.Invoke(this, new EventArgs <BookDeltaItem>() { Data = messageValueToken.ToObject <BookDeltaItem[]>() }); break; case "trade": OnTrade?.Invoke(this, new EventArgs <Trade>() { Data = messageValueToken.ToObject <Trade[]>() }); break; case "allorders": OnAllOrders?.Invoke(this, new EventArgs <Order>() { Data = messageValueToken.ToObject <Order[]>() }); break; case "order": OnOrder?.Invoke(this, new EventArgs <Order>() { Data = messageValueToken.ToObject <Order[]>() }); break; } } } catch { OnDisconnected?.Invoke(this, new EventArgs()); } finally { webSocket.Dispose(); } }).Start(); }