//ALANDIAS Run This everytime ProcessOrders() runs, not inside the method since this method runs through a loop private void RemoveNonCashItemsFromProblemOrders(SortableBindingList <PriceControlDeliveryOrder> POList) { List <NonCashItemsFromCurrentPositionObject> NCIList = new List <NonCashItemsFromCurrentPositionObject>(); NonCashItemsFromCurrentPositionDa NCIDA = new NonCashItemsFromCurrentPositionDa(); NCIDA.Load(NCIList); NCIList.ForEach(x => { if (x.Ctpydtcnumber != null) { x.Ctpydtcnumber = x.Ctpydtcnumber.PadLeft(4, '0'); } }); List <PriceControlDeliveryOrder> ProblemOrdersItemsToRemove = new List <PriceControlDeliveryOrder>(); foreach (var item in NCIList) { PriceControlDeliveryOrder ItemToRemove = POList.FirstOrDefault(x => x.ClearingNumber == item.ClearingNo && x.CounterParty == item.Ctpydtcnumber && x.Cusip == item.cusip && x.ShareQuantity == item.quantity); if (ItemToRemove != null) { ProblemOrdersItemsToRemove.Add(ItemToRemove); } } //Allow in production ProblemOrdersItemsToRemove.ForEach(x => POList.Remove(x)); }
private void dgvDifferentPrices_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { try { if (e.RowIndex != -1) { PriceControlDeliveryOrder d = (PriceControlDeliveryOrder)dgvDifferentPrices.Rows[e.RowIndex].DataBoundItem; DtcChannel.Instance.CusipSelected(d.Cusip); } } catch (Exception ex) { Trace.WriteLine(ex, TraceEnum.LoggedError); MessageBox.Show(ex.ToString(), "Error"); } }
private void ProcessOrders(IncomingDeliveryOrderObject d) { try { /*if (d.Cusip == "493267108") * { * int c = 2; * }*/ this.Text = "Price Control - " + DateTime.Now.ToString(); PriceControlDeliveryOrder d2 = new PriceControlDeliveryOrder(d); if (calc.StockPrices.ContainsKey(d2.Cusip)) { StockPriceViewObject s = null; calc.StockPrices.TryGetValue(d2.Cusip, out s); if (s != null) { d2.Price = (double)s.Price; } } double priceDiff = Math.Abs(d.MoneyValue.Value - (d2.Price * d.ShareQuantity.Value)); if ((d.DtcStatusIndicator == " " || d.DtcStatusIndicator == "X") && (d.OriginalInputSource != "CNS") && (d2.Price > 0) && ((d.MoneyValue / d.ShareQuantity) > d2.MaxPrice || (d.MoneyValue / d.ShareQuantity) < d2.MinPrice) && (d.DeliveryOrderDirection == DeliveryOrderDirectionEnum.Borrow || d.DeliveryOrderDirection == DeliveryOrderDirectionEnum.Loan || d.DeliveryOrderDirection == DeliveryOrderDirectionEnum.BorrowReclaimed || d.DeliveryOrderDirection == DeliveryOrderDirectionEnum.LoanReclaimed) && (d.Receiver == Settings.Account.Padded() || d.Deliverer == Settings.Account.Padded()) ) { d2.PriceDiff = priceDiff; ProblemOrders.Add(d2); } if ((d.DtcStatusIndicator == " " || d.DtcStatusIndicator == "X") && (d.OriginalInputSource != "CNS") && (d2.Price > 0) && (d.DeliveryOrderDirection == DeliveryOrderDirectionEnum.Borrow || d.DeliveryOrderDirection == DeliveryOrderDirectionEnum.Loan || d.DeliveryOrderDirection == DeliveryOrderDirectionEnum.BorrowReclaimed || d.DeliveryOrderDirection == DeliveryOrderDirectionEnum.LoanReclaimed) && (d.Receiver == Settings.Account.Padded() || d.Deliverer == Settings.Account.Padded()) ) { if (!Orders.ContainsKey(d2.Cusip)) { List <PriceControlDeliveryOrder> p = new List <PriceControlDeliveryOrder>(); p.Add(d2); Orders.Add(d2.Cusip, p); } else { //check to see if an order for a different price had come in List <PriceControlDeliveryOrder> p = Orders[d2.Cusip]; int i = p.Count(x => (x.MoneyValue / x.ShareQuantity) != (d2.MoneyValue / d2.ShareQuantity) && (x.Deliverer == d2.Deliverer || x.Deliverer == d2.Receiver)); if (i != 0) { DifferentPricedOrders.Add(d2); } //add to list of orders Orders[d2.Cusip].Add(d2); } } } catch (Exception) { throw; } }