private void PriceTicker(PledgeObject p) { StockObject FoundStock = StockList.FirstOrDefault(x => x.Cusip.ToUpper() == p.Cusip.ToUpper()); if (FoundStock != null) { p.Ticker = FoundStock.Ticker; p.LoanValue = p.Quantity * (double)FoundStock.Price; } }
private PledgeObject PopulateSlatePledgeObject(string source, string cusip, string ClearingNo, int qty, string pledgeType, bool sendToG1, bool sendToDTC) { PledgeObject p = new PledgeObject(); p.PledgeType = pledgeType; p.Source = source; p.DateEntered = DateTime.Now; p.EnteredBy = Environment.UserName; p.Processed = false; p.SendToG1 = sendToG1; p.SendToDtc = sendToDTC; p.ClearingNo = ClearingNo; p.Cusip = cusip; //p.Ticker = Ticker ?? ""; p.Quantity = qty; //p.LoanValue = LoanValue; p.Pledgor = ClearingNo.TrimStart("0".ToCharArray()); p.Pledgee = "981"; p.DtcStatusCode = ""; return(p); }
public string PledgeStocks(Dictionary <string, int> CusipQtyList, string source, string clearingNo, bool sendToApex, bool sendToDTC) { if (!sendToApex && !sendToDTC) { //Add message if we're not sending to any Error += "We must at least send to Apex or Send to DTC (OCC)" + Environment.NewLine; } if (string.IsNullOrEmpty(source) || string.IsNullOrEmpty(clearingNo) || clearingNo.Length != 4) { //Add message for criteria not met Error += "Source and\\or clearingNo must have a value. Also, ClearingNo should also be 4 char" + Environment.NewLine; } foreach (var item in CusipQtyList) { //Add message for items you couldn't send if (string.IsNullOrEmpty(item.Key) || item.Value < 1) { Error += "Cusip cannot be empty" + Environment.NewLine; } } if (!string.IsNullOrEmpty(Error)) { return(Error); } int ctr = 0; string CurrTime = DateTime.Now.ToString("HHmmss"); foreach (var item in CusipQtyList) { string cusip = item.Key; int qty = item.Value; PledgeObject p = PopulateSlatePledgeObject(source, cusip, clearingNo, qty, "P", sendToApex, sendToDTC); //add Loanvalue and Ticker to PledgeObject PriceTicker(p); //Set defaults int internalid = -1; string UniqueIdForEID = ""; int UserReferenceNumber = 0; if (sendToDTC && sendToApex) { Pfac.Insert(p); internalid = p.PledgeId; UniqueIdForEID = p.PledgeId.ToString(); UserReferenceNumber = p.PledgeId; } //When not sending to both and only 1 of them, we need to set the ID's since we were getting them from blob.slate.pledge id if (!sendToDTC || !sendToApex) { internalid = -1; UniqueIdForEID = CurrTime + ctr.ToString(); ctr++; UserReferenceNumber = 199390; //Current implementation allows only 6 digit number or will crash } int ReturnedDTCID = 0; if (sendToDTC) { ReturnedDTCID = PledgeStockToOCC(UserReferenceNumber, cusip, (int)qty, clearingNo); } int ReturnedG1ID = 0; string legalEntity; string custodianAccountShortCode; switch (clearingNo) { case "0269": legalEntity = "MS0269"; break; case "5239": legalEntity = "MS5239"; break; case "5289": legalEntity = "MS5289"; break; default: legalEntity = "NA"; break; } custodianAccountShortCode = "DTC" + clearingNo; string ctpyExternalId2 = "OCC-" + legalEntity; if (sendToApex) { //ExternalId2 has to be unique to Apex string EID = "plg_" + UniqueIdForEID + "_" + DateTime.Today.ToString("yyyyMMdd"); ReturnedG1ID = tc.CreateTrade(source, internalid, legalEntity, EID, "CP", "GC", "OCC", ctpyExternalId2, cusip, DateTime.Today, null, qty, 0, 0, .0000001, Environment.UserName, DateTime.Today, 100, 0, null, custodianAccountShortCode, null, "OCC", "USD", true, true); } if (sendToApex && sendToDTC) { p.G1Id = ReturnedG1ID; p.DtcId = ReturnedDTCID; Pfac.Update(p); } } return(Error); }
private void PriceTicker(PledgeObject p) { StockObject FoundStock = StockList.FirstOrDefault(x => x.Cusip.ToUpper() == p.Cusip.ToUpper()); if (FoundStock != null) { p.Ticker = FoundStock.Ticker; p.LoanValue = p.Quantity * (double)FoundStock.Price; } }
private PledgeObject PopulateSlatePledgeObject(string source, string cusip, string ClearingNo, int qty, string pledgeType, bool sendToG1, bool sendToDTC) { PledgeObject p = new PledgeObject(); p.PledgeType = pledgeType; p.Source = source; p.DateEntered = DateTime.Now; p.EnteredBy = Environment.UserName; p.Processed = false; p.SendToG1 = sendToG1; p.SendToDtc = sendToDTC; p.ClearingNo = ClearingNo; p.Cusip = cusip; //p.Ticker = Ticker ?? ""; p.Quantity = qty; //p.LoanValue = LoanValue; p.Pledgor = ClearingNo.TrimStart("0".ToCharArray()); p.Pledgee = "981"; p.DtcStatusCode = ""; return p; }