private void UpdateOccInfo(RealTimePositionObject r)
        {
            r.ContainsHedge       = false;
            r.OccBodQuantity      = 0;
            r.OccQuantityLoaned   = 0;
            r.OccQuantityReturned = 0;
            r.OccQuantityBorrowed = 0;
            r.OccQuantityReceived = 0;

            //look up bod positions
            List <PositionObject> pos = OccBodPositions.FindAll(p => p.Cusip == r.Cusip);

            //calculate bod position
            foreach (PositionObject p in pos)
            {
                r.ContainsHedge = true;

                if (p.BorrowLoan == "B")
                {
                    r.OccBodQuantity += p.Quantity;
                }
                else if (p.BorrowLoan == "L")
                {
                    r.OccBodQuantity -= p.Quantity;
                }
            }

            //calculate occ info
            foreach (IncomingDeliveryOrderObject d in r.DtcActivity)
            {
                DeliveryOrderReasonCodeObject drc = null;

                DeliveryOrderLookups.ReasonCodes.TryGetValue(d.ReasonCode, out drc);

                //could not find reason code
                if (drc == null)
                {
                    //Trace.WriteLine("Could not find the reason code: " + d.ReasonCode, TraceEnum.LoggedError);
                }

                else
                {
                    //delivery
                    if (d.ActivityCode == "026" && IsHedge(d.ReasonCode))
                    {
                        if (drc.NewBorrowLoan)
                        {
                            //this is a new loan
                            r.OccQuantityLoaned += d.ShareQuantity.Value;
                        }
                        else
                        {
                            //this was a return
                            r.OccQuantityReturned += d.ShareQuantity.Value;
                        }
                        r.ContainsHedge = true;
                    }

                    //receive
                    else if (d.ActivityCode == "027" && IsHedge(d.ReasonCode))
                    {
                        if (drc.NewBorrowLoan)
                        {
                            r.OccQuantityBorrowed += d.ShareQuantity.Value;
                        }
                        else
                        {
                            r.OccQuantityReceived += d.ShareQuantity.Value;
                        }
                        r.ContainsHedge = true;
                    }

                    //could not find activity code
                    else
                    {
                    }
                }
            }
        }
        private void UpdateDtcInfo(RealTimePositionObject r)
        {
            r.DtcQuantityLoaned   = 0;
            r.DtcQuantityReturned = 0;
            r.DtcQuantityBorrowed = 0;
            r.DtcQuantityReceived = 0;

            foreach (IncomingDeliveryOrderObject d in r.DtcActivity)
            {
                DeliveryOrderReasonCodeObject drc = null;

                DeliveryOrderLookups.ReasonCodes.TryGetValue(d.ReasonCode, out drc);

                //could not find reason code
                if (drc == null)
                {
                    //Trace.WriteLine("Could not find the reason code: " + d.ReasonCode, TraceEnum.LoggedError);
                }

                else
                {
                    if ((d.Receiver != Settings.Account.Padded() && d.DelivererReceiverIndicator == "R") || (d.Deliverer != Settings.Account.Padded() && d.DelivererReceiverIndicator == "D"))
                    {
                    }
                    //delivery
                    if (d.ActivityCode == "026")
                    {
                        if (drc.NewBorrowLoan)
                        {
                            //this is a new loan
                            r.DtcQuantityLoaned += d.ShareQuantity.Value;
                        }
                        else
                        {
                            //this was a return
                            r.DtcQuantityReturned += d.ShareQuantity.Value;
                        }
                    }

                    //receive
                    else if (d.ActivityCode == "027")
                    {
                        if (drc.NewBorrowLoan)
                        {
                            r.DtcQuantityBorrowed += d.ShareQuantity.Value;
                        }
                        else
                        {
                            r.DtcQuantityReceived += d.ShareQuantity.Value;
                        }
                    }

                    //could not find activity code
                    else
                    {
                        //WE HAVE A PROBLEM
                        //Trace.WriteLine("Could not find the activity code: " + d.ActivityCode, TraceEnum.LoggedError);
                    }
                }
            }
        }