public string UpdateStockInfo(string cusip)
        {
            string ticker = "";

            if (Stocks.ContainsKey(cusip))
            {
                StockViewObject s = null;
                Stocks.TryGetValue(cusip, out s);

                if (s != null)
                {
                    ticker = s.Ticker;
                }
            }
            return(ticker);
        }
        private void UpdateStockInfo(RealTimePositionObject r)
        {
            if (Stocks.ContainsKey(r.Cusip))
            {
                StockViewObject s = null;
                Stocks.TryGetValue(r.Cusip, out s);

                if (s != null)
                {
                    r.Ticker  = s.Ticker;
                    r.Company = s.Name;
                }
                else
                {
                    r.Ticker = "zzzzUNKNOWN";
                }
            }
        }
        private void LoadMorningPositions()
        {
            //changed this since nthBizday takes holidays into account, but positions table doesnt
            DateTime dtcDate = Utils.GetNthBusinessDay(ProcessDate, -1);
            DateTime g1Date  = DateTime.Today; // Utils.GetLastWeekDay(ProcessDate);

            StartingPositionParam g1p = new StartingPositionParam();

            g1p.FileDate_Date.AddParamValue(g1Date);
            g1p.ClearingNo.AddParamValue(Settings.Account);

            //load all the morning positions
            //g1pFact.LoadMinimal(G1BodPositions, g1p);
            g1pFact.Load(G1BodPositions, g1p);

            //make sure there are some positions
            if (G1BodPositions.Count < 50)
            {
                //                throw new Exception("Problem loading G1 positions. Only found " + G1BodPositions.Count);
            }

            //get the non NPB data
            List <StartingPositionObject> tmp = G1BodPositions.FindAll(p => p.TradeCategory != "NPB");

            foreach (StartingPositionObject g in tmp)
            {
                if (G1NonNpbPositions.ContainsKey(g.Cusip))
                {
                    G1NonNpbPositions[g.Cusip].Add(g);
                }
                else
                {
                    List <StartingPositionObject> t = new List <StartingPositionObject>();
                    t.Add(g);
                    G1NonNpbPositions.Add(g.Cusip, t);
                }
            }

            //get the NPB data
            G1NpbPositions = G1BodPositions.FindAll(p => p.TradeCategory == "NPB");

            //Group NPB Data together by cusip
            G1NpbPositions = GroupNpb(G1NpbPositions);

            //load the DTC starting position
            DtcPositionViewParam dp = new DtcPositionViewParam();

            dp.DateofData_Date.AddParamValue(dtcDate);
            dp.ParticipantID.AddParamValue(Settings.Account.ToInt());

            dvFact.Load(DtcBodPositions, dp);

            //make sure there are some positions
            if (DtcBodPositions.Count < 1)
            {
                //                throw new Exception("Problem loading DTC positions. Only found " + DtcBodPositions.Count);
            }

            //load occ positions
            PositionParam occp = new PositionParam();

            occp.ActivityDate_Date.AddParamValue(dtcDate);
            pf.Load(OccBodPositions, occp);



            //now load all the starting positions from G1
            foreach (List <StartingPositionObject> g1 in G1NonNpbPositions.Values)
            {
                foreach (StartingPositionObject g in g1)
                {
                    if (!string.IsNullOrEmpty(g.Cusip) && !DtcBodPositions.ContainsKey(g.Cusip.ToUpper()))
                    {
                        //no dtc position for cusip, add it
                        DtcBodPositions.Add(g.Cusip, new DtcPositionViewObject(dtcDate, g.Cusip, 0, 0, 0, 0, Settings.Account.ToInt(), dtcDate, g.Ticker));
                    }
                }
            }

            // ------------------------------Alandias------------------------------
            //If account is 269, it accounts for overnight deliveries for our 269 account
            //if (Settings.Account == "269")
            {
                List <tblDTFPARTObject> DTFPO    = new List <tblDTFPARTObject>();
                tblDTFPARTFactory       DTFPFact = new tblDTFPARTFactory();
                tblDTFPARTParam         DTFParam = new tblDTFPARTParam();
                DTFParam.DateofData.AddParamValue(DateTime.Today);
                DTFParam.TransOrigSource.AddParamValue("CFSD", "!=");   //Alandias 20130301
                //DTFParam.ParticipantNum.AddParamValue("0269");
                DTFParam.ParticipantNum.AddParamValue(Settings.Account.PadLeft(4, '0'));
                DTFParam.SubFunction.AddParamValue("DTFPDQ");
                DTFParam.StatusCode.AddParamValue("m");
                DTFPFact.Load(DTFPO, DTFParam);

                List <tblDTFPARTObject> ItemsInDTFPOButNotInDtcBodPositions = new List <tblDTFPARTObject>();

                foreach (tblDTFPARTObject t in DTFPO)
                {
                    if (DtcBodPositions.ContainsKey(t.CUSIP.ToUpper()) || DtcBodPositions.ContainsKey(t.CUSIP))
                    {
                        switch (t.TransTypeNew.Trim())
                        {
                        case "026":     //026 is deliver
                            DtcBodPositions[t.CUSIP.ToUpper()].UnPledgedQuantity -= Convert.ToInt32(t.ShareQuantity);
                            break;

                        case "027":     //027 is receive
                            DtcBodPositions[t.CUSIP.ToUpper()].UnPledgedQuantity += Convert.ToInt32(t.ShareQuantity);
                            break;
                        }
                    }
                    else
                    {
                        ItemsInDTFPOButNotInDtcBodPositions.Add(t);
                    }
                }


                foreach (tblDTFPARTObject t in ItemsInDTFPOButNotInDtcBodPositions)
                {
                    string tempticker = "";
                    if (Stocks.ContainsKey(t.CUSIP.ToUpper()))
                    {
                        StockViewObject s = null;
                        Stocks.TryGetValue(t.CUSIP.ToUpper(), out s);

                        if (s != null)
                        {
                            tempticker = s.Ticker;
                        }

                        else
                        {
                            tempticker = "zzzzUNKNOWN";
                        }
                    }

                    Int32 qty = 0;
                    switch (t.TransTypeNew.Trim())
                    {
                    case "026":     //026 is deliver
                        qty -= Convert.ToInt32(t.ShareQuantity);
                        break;

                    case "027":     //027 is receive
                        qty += Convert.ToInt32(t.ShareQuantity);
                        break;
                    }

                    if (!DtcBodPositions.ContainsKey(t.CUSIP.ToUpper()))
                    {
                        DtcBodPositions.Add(t.CUSIP.ToUpper(), new DtcPositionViewObject(dtcDate, t.CUSIP.ToUpper(), 0, 0, 0, qty, Settings.Account.ToInt(), dtcDate, tempticker));
                    }
                    else
                    {
                        DtcBodPositions[t.CUSIP.ToUpper()].UnPledgedQuantity += qty;
                    }

                    Int32 t1 = DtcBodPositions[t.CUSIP.ToUpper()].UnPledgedQuantity;
                }

                foreach (var temp in DtcBodPositions)
                {
                    temp.Value.ShareQuantity = temp.Value.UnPledgedQuantity;
                }
            }
            // -----------END-------------------Alandias---------------------------


            a = "1";
        }