private bool isDisposed = false; // Dispose indicator #endregion Data Members #region Consturctors, Initialization & Destructor public cPriceReturnsHandler(IPortfolioBL cPort, IRepository repository) { m_objPortfolio = cPort; m_objColHandler = m_objPortfolio.ColHandler; m_objErrorHandler = m_objPortfolio.cErrorLog; _repository = repository; }//constructor
public BackTestingViewModel GetBacktestingPortfolio(User user, int id) { // BacktestingPortfolioViewModel vmP = new BacktestingPortfolioViewModel(); // vmP = _manageBacktestingPortfolios.GetFullPortfolio(id, user.Currency.CurrencyId, user.Licence.Stocks.Select(t => t.id).ToList()); BackTestingViewModel vmB = new BackTestingViewModel(); var stocks = user.Licence.Stocks.Select(t => t.id).ToList(); _manageBacktestingPortfolios.SelectedPortfolio.openExistingPortfolio(id, true); cPort = _manageBacktestingPortfolios.SelectedPortfolio; //if (!_manageBacktestingPortfolios.SelectedPortfolio.instantiatePortfolioVariables(true, cPort.Details.CalcCurrency, stocks, null)) if (!_manageBacktestingPortfolios.SelectedPortfolio.instantiateVariablesForPortfolio(false, cPort.Details.CalcCurrency, stocks, null)) { vmB.Messages.Add(new Models.App.Message { LogLevel = Models.App.LogLevel.Error, Text = "Error Get Portfolio Data. Please Contanct System Administrator" }); return(vmB); } //_backtestingHandler.setBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, _manageBacktestingPortfolios.SelectedPortfolio.Details.DateEdited, _manageBacktestingPortfolios.SelectedPortfolio.Details.LastOptimization, _manageBacktestingPortfolios.SelectedPortfolio.Details.Equity); //vmB = _backtestingHandler.getBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, _manageBacktestingPortfolios.SelectedPortfolio.Details.DateEdited, _manageBacktestingPortfolios.SelectedPortfolio.Details.LastOptimization, _manageBacktestingPortfolios.SelectedPortfolio.Details.Equity); _backtestingHandler.setBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.StartDate, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.EndDate, _manageBacktestingPortfolios.SelectedPortfolio.Details.Equity); //vmB = _backtestingHandler.getBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.StartDate, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.EndDate, _manageBacktestingPortfolios.SelectedPortfolio.Details.Equity); vmB = _backtestingHandler.getNewBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.StartDate, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.EndDate, _manageBacktestingPortfolios.SelectedPortfolio.Details.Equity); return(vmB); }//GetBacktestingPortfolio
public BackTestingService(IPortfolioBL portBL, IManageBacktestingPortfolios manageBacktestingPortfolios, IBacktestingHandler backtestingHandler) { cPort = portBL; //backTesingCalc = backTesing; _manageBacktestingPortfolios = manageBacktestingPortfolios; _backtestingHandler = backtestingHandler; }
private bool isDisposed = false; // indicates if Dispose has already been called // Data variables //private DataTable m_dtSecurityRatesData; // Final rates calculations #endregion Data Members #region Construcors, Initialization & Destructor public cRateHandler(IPortfolioBL cPort) { m_objPortfolio = cPort; m_objErrorHandler = m_objPortfolio.cErrorLog; m_objColHandler = m_objPortfolio.ColHandler; //m_dtSecurityRatesData = getMainRatesTblStruct(); }// constructor
private String m_strPriceFldName = "fClose"; // Name of used prices column #endregion Data members #region Constructors, Initialization & Destructor public cImportedPort(IPortfolioBL cPort) { m_objPortfolio = cPort; m_objErrorHandler = m_objPortfolio.cErrorLog; //m_colSecurities = new cSecurities(m_objPortfolio); //m_dtDate = DateTime.Now; m_drDateRange = new cDateRange(DateTime.Now.AddYears(-2), DateTime.Now); }//constructor
private bool isDisposed = false; // Dispose indicator #endregion Data Members #region Consturctors, Initialization & Destructor public cPricesHandler(IPortfolioBL cPort, IRepository repository) { m_objPortfolio = cPort; //m_objOleDBConn = m_objPortfolio.OleDBConn; m_objColHandler = m_objPortfolio.ColHandler; m_objErrorHandler = m_objPortfolio.cErrorLog; _repository = repository; }//constructor
private static cSecurity getCurrSecurity(Security security, IPortfolioBL cCurrPort) { // Retrieves an instance of a security based on its datarow info cSecurity cCurrSec = new cSecurity(cCurrPort, security.strName, security.strSymbol); //111An cCurrSec.Properties.PortSecurityId = security.idSecurity; //cCurrSec.Properties.HebName = security.HebName; //cCurrSec.FAC = Convert.ToDouble(security.FAC); if (cCurrSec.FAC <= 0D) { cCurrSec.FAC = 1D; } cCurrSec.AvgYield = security.AvgYield; cCurrSec.StdYield = security.StdYield; cCurrSec.AvgYieldNIS = security.AvgYieldNIS; cCurrSec.StdYieldNIS = security.StdYieldNIS; cCurrSec.ValueUSA = security.dValueUSA; cCurrSec.ValueNIS = security.dValueNIS; cCurrSec.WeightUSA = security.WeightUSA; cCurrSec.WeightNIS = security.WeightNIS; //cCurrSec.Properties.ISIN = security.strISIN; cCurrSec.DateRange = new cDateRange(security.dtPriceStart, security.dtPriceEnd); //lock (lockObject) //{ cCurrSec.Properties.Sector = cColHandler.getCatItemByID(enumCatType.Sector, security.idSector, cColHandler.Sectors); cCurrSec.Properties.Market = cColHandler.getCatItemByID(enumCatType.StockMarket, security.idMarket, cColHandler.Markets); cCurrSec.Properties.MarketName = getSecMarketName(security.idMarket); cCurrSec.Properties.SecurityType = cColHandler.getCatItemByID(enumCatType.SecurityType, security.idSecurityType, cColHandler.SecTypes); //} var priceRepository = Resolver.Resolve <IRepository>(); try { priceRepository.Execute(session => { // cCurrSec.PriceTable = AutoMapper.Mapper.Map<List<Models.dbo.Price>>(session.Query<TFI.Entities.dbo.Price>().Where(x => x.Securities.idSecurity == security.idSecurity).OrderByDescending(x => x.dDate).ToList()); }); } catch (Exception ex) { //m_objErrorHandler.LogInfo(ex); } Resolver.Release(priceRepository); return(cCurrSec); }//getCurrSecurity
public cConstHandler(cConstraints cConsts, IPortfolioBL cPort) { m_objPortfolio = cPort; m_colConstraints = cConsts; m_objErrorHandler = m_objPortfolio.cErrorLog; m_objColHandler = m_objPortfolio.ColHandler; repository = Resolver.Resolve <IRepository>(); setSeperatedConstraintCols(); }//constructor
private Color m_clrSecColor; // Security display color #endregion Data members #region Constructors, Initialization & Destructor public cSecProperties(IErrorHandler cErrors, IPortfolioBL cPort) { m_objPortfolio = cPort; m_objErrorHandler = cErrors; m_catSector = new cCategoryItem(enumCatType.Sector, "", -1, m_objErrorHandler, cPort); //m_catCurrency = new cCategoryItem(enumCatType.Currency, "", -1, m_objErrorHandler); m_catMarket = new cCategoryItem(enumCatType.StockMarket, "", -1, m_objErrorHandler, cPort); m_catSecType = new cCategoryItem(enumCatType.SecurityType, "", -1, m_objErrorHandler, cPort); }//constructor
private List <Entities.dbo.Price> m_dtMainPrices; // Prices dataTable #endregion Data members #region Constructors, Initialization & Destructor public cPriceData(ISecurity cSec, IPortfolioBL cPort) { m_objRelevantSec = cSec; m_objPortfolio = cPort; //m_objDbConnection = m_objPortfolio.OleDBConn; m_objErrorHandler = m_objPortfolio.cErrorLog; //priceRepository = new Repository(); initDataVariables(); }//constructor
private double[,] m_dCovarMatrix = null; // Covariance final matrix #endregion Data Members #region Constructors, Initialization & Destructor public cCovarCorrelHandler(IPortfolioBL cPort) { // Init variables m_objPortfolio = cPort; m_objErrorHandler = m_objPortfolio.cErrorLog; m_objColHandler = m_objPortfolio.ColHandler; m_objRateHandler = m_objPortfolio.Classes.RatesHandler; m_dtCovarOutput = getOutputDataStruct(); // Output data structure }//constructor
} //destructor protected void Dispose(bool disposing) { // clearing class variables if (disposing) { //clean up managed resources m_objErrorHandler = null; m_objPortfolio = null; m_objColHandler = null; } isDisposed = true; }//Dispose
public cOptimizationResults(IPortfolioBL cPort) { m_objPortfolio = cPort; m_objColHandler = m_objPortfolio.ColHandler; //m_colSecurities = m_objPortfolio.ColHandler.ActiveSecs; m_objCovarCalcs = m_objPortfolio.Classes.CovarCorrel; m_objErrorHandler = m_objPortfolio.cErrorLog; m_objConstraints = m_objPortfolio.Classes.ConstHandler; initMainVars(); }//constructor
private Boolean m_isMinimized = false; // Checks whether the minimized returns have been calculated #endregion Data members #region Constructors, Initialization & Destructor public cRateData(ISecurity cSec, IPortfolioBL cPort, Boolean isFull) { m_objRelevantSec = cSec; m_objPortfolio = cPort; m_objErrorHandler = m_objPortfolio.cErrorLog; try { initDataVariables(); } catch (Exception ex) { m_objErrorHandler.LogInfo(ex); } }//constructor
private Boolean m_isDisabled = false; // Whether the system has disabled the current security #endregion Data members #region Consturctors, Initialization & Destructor public cBacktestingSecurity(IPortfolioBL cPort, ISecurity cSec, cDateRange Dates) { m_objPortfolio = cPort; m_objErrorHandler = m_objPortfolio.cErrorLog; m_objColHandler = m_objPortfolio.ColHandler; m_objSecurity = cSec; m_drDateRange = Dates; try { } catch (Exception ex) { m_objErrorHandler.LogInfo(ex); } }//cSecurity constructor
public BackTestingViewModel calculateBacktesting(User user, Models.Command.CreatePortfolioCommand cmd, DateTime dtStartDate, DateTime dtEndDate, List <string> becnhMarkIDs) { // Service which creates a new backtesting portfolio + calculates proper backtesting values BackTestingViewModel vmBacktesting = new BackTestingViewModel(); // Set up portfolio int idPortfolio = _manageBacktestingPortfolios.CreateDefaultPortfolio(user, dtStartDate, dtEndDate, cmd); _manageBacktestingPortfolios.SelectedPortfolio.openExistingPortfolio(idPortfolio, true); _backtestingHandler.setBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, dtStartDate, dtEndDate, cmd.Equity); cPort = _manageBacktestingPortfolios.SelectedPortfolio; // Set portfolio data List <int> colExchanges = (cmd.Exchanges != null && cmd.Exchanges.Count > 0 && cmd.Exchanges.Count <= user.Licence.Stocks.Count) ? cmd.Exchanges : user.Licence.Stocks.Select(t => t.id).ToList(); if (!_manageBacktestingPortfolios.SelectedPortfolio.instantiateVariablesForPortfolio(true, cPort.Details.CalcCurrency, colExchanges, cmd.Securities)) { // Failed to get data vmBacktesting.Messages.Add(new Models.App.Message { LogLevel = Models.App.LogLevel.Error, Text = "Error Get Portfolio Data. Please Contanct System Administrator" }); return(vmBacktesting); } if (cmd.Securities.Count > 0) { _manageBacktestingPortfolios.SelectedPortfolio.ColHandler.ActiveSecs = getFilteredSecByCustomList(cmd); } else { _manageBacktestingPortfolios.SelectedPortfolio.ColHandler.ActiveSecs = getFilteredSecByExchangesAndRisk(colExchanges); } // Run calculation //vmBacktesting = _backtestingHandler.calculateBacktesting(_manageBacktestingPortfolios.SelectedPortfolio, dtStartDate, dtEndDate, cmd.Equity, becnhMarkIDs); vmBacktesting = _backtestingHandler.calculateNewBacktesting(_manageBacktestingPortfolios.SelectedPortfolio, dtStartDate, dtEndDate, cmd.Equity, becnhMarkIDs); // Save portfolio data // Create command to update portfolio + portfolio securities UpdatePortfolioCommand pc = new UpdatePortfolioCommand(); pc.CalcType = cmd.CalcType; pc.Equity = cmd.Equity; pc.PortID = _manageBacktestingPortfolios.SelectedPortfolio.Details.ID; pc.Risk = vmBacktesting.Portfolios[vmBacktesting.PortNumA].Risk; pc.Securities = vmBacktesting.Portfolios[vmBacktesting.PortNumA].Securities; _manageBacktestingPortfolios.UpdatePortfolio(pc, vmBacktesting); return(vmBacktesting); }//calculateBacktesting
private bool isBacktestingPort = false; // not backtesting portfolio #endregion Data Members #region Consturctors, Initialization & Destructor public cManagePortfolios(IPortfolioBL cPort, IRepository rep) { m_objPortfolio = cPort; m_objErrorHandler = m_objPortfolio.cErrorLog; repository = rep; //m_objDbConnection = m_objPortfolio.OleDBConn; securitiesBL = new cSecurities(cPort); try { //setPortfolioTable(); } catch (Exception ex) { m_objErrorHandler.LogInfo(ex); } }//constructor
private ISecurities m_colSecurities; // Securities belonging to current #endregion Data Members #region Constructors, Initialization & Destructors public cCategoryItem(enumCatType eType, String strName, int iId, IErrorHandler cErrors, IPortfolioBL cPort) { m_enumItemType = eType; m_strName = strName; m_iItemId = iId; m_objErrorHandler = cErrors; m_objPortfolio = cPort; m_colSecurities = new cSecurities(m_objPortfolio); try { m_objColor = Color.FromArgb(cProperties.RndGenerator.Next(0, 255), cProperties.RndGenerator.Next(0, 255), cProperties.RndGenerator.Next(0, 255)); } catch (Exception ex) { m_objErrorHandler.LogInfo(ex); } }//constructor
}//cSecurity constructor #endregion Consturctors, Initialization & Destructor #region Methods #region Base methods public void Init(IPortfolioBL cPort) { m_objPortfolio = cPort; m_objErrorHandler = m_objPortfolio.cErrorLog; m_objColHandler = m_objPortfolio.ColHandler; m_objSecAnalytics = new cSecAnalytics(this, m_objErrorHandler, m_objColHandler); m_objPrices.Portfolio = cPort; try { //LR: why do we have 5 years of date range here ??? m_sPricesRange = new cDateRange(DateTime.Today.AddYears(-cProperties.DatesInterval).AddDays(-1), DateTime.Today.AddDays(-1)); m_objRates = new cRateData(this, m_objPortfolio, false); m_objCovarData = new cCovarCorrelData(this, m_objColHandler, m_objErrorHandler, true); m_objCorrelData = new cCovarCorrelData(this, m_objColHandler, m_objErrorHandler, false); } catch (Exception ex) { m_objErrorHandler.LogInfo(ex); } }
public cCollectionsHandler(IPortfolioBL cPort, string currency, List <int> exchangesPackagees) { m_objPortfolio = cPort; m_objCatHandler = m_objPortfolio.Classes.CategoryHandler; m_objErrorHandler = m_objPortfolio.cErrorLog; m_colFullCollection = new cSecurities(m_objPortfolio); m_colSecurities = new cSecurities(m_objPortfolio); m_colSecuritiesByRisk = new cSecurities(m_objPortfolio); m_colActiveSecurities = new cSecurities(m_objPortfolio); m_colDisabledSecurities = new cSecurities(m_objPortfolio); m_colBenchmarks = new cSecurities(m_objPortfolio); this.currency = currency; this.exchanges = exchangesPackagees; //LR:TODO ////if (exchanges == null) //// exchanges = new List<int>(new int[]{ 1, 3, 4, 5 }); securityRepository = Resolver.Resolve <IRepository>(); }//constructor
private List <double> m_colVolumes = new List <double>(); // Collection of traded volumes for each day in full date-range #endregion Data members #region Consturctors, Initialization & Destructor public cSecurity(IPortfolioBL cPort, string secName, string secSymbol) { m_objPortfolio = cPort; m_objErrorHandler = m_objPortfolio.cErrorLog; m_objColHandler = m_objPortfolio.ColHandler; m_objSecProperties = new cSecProperties(m_objErrorHandler, m_objPortfolio); m_objSecAnalytics = new cSecAnalytics(this, m_objErrorHandler, m_objColHandler); m_objSecProperties.SecurityName = m_objSecProperties.getSecName(secName); // No ' signs + trim spaces m_objSecProperties.SecuritySymbol = secSymbol; m_objSecProperties.SecColor = System.Drawing.Color.FromArgb(cProperties.RndGenerator.Next(255), cProperties.RndGenerator.Next(255), cProperties.RndGenerator.Next(255)); m_objPrices = new cPriceData(this, m_objPortfolio); try { m_sPricesRange = new cDateRange(DateTime.Today.AddYears(-cProperties.DatesInterval).AddDays(-1), DateTime.Today.AddDays(-1)); m_objRates = new cRateData(this, m_objPortfolio, false); m_objCovarData = new cCovarCorrelData(this, m_objColHandler, m_objErrorHandler, true); m_objCorrelData = new cCovarCorrelData(this, m_objColHandler, m_objErrorHandler, false); } catch (Exception ex) { m_objErrorHandler.LogInfo(ex); } }//cSecurity constructor
}//getSecDatarowPosition #endregion Static methods #region Load Benchmarks from SQL Srv private cSecurity getCurrBMSecurity(BMsecurity drSec, IPortfolioBL cCurrPort) { // Retrieves an instance of a security based on its datarow info ICollectionsHandler cColHandler = cCurrPort.ColHandler; cSecurity cCurrSec = new cSecurity(cCurrPort, drSec.strName, drSec.strSymbol); //111An cCurrSec.Properties.PortSecurityId = drSec.idSecurity; cCurrSec.Properties.HebName = drSec.strHebName; cCurrSec.FAC = 1D; cCurrSec.AvgYield = Convert.ToDouble(drSec.AvgYield); cCurrSec.StdYield = Convert.ToDouble(drSec.StdYield); cCurrSec.AvgYieldNIS = Convert.ToDouble(drSec.AvgYieldNIS); cCurrSec.StdYieldNIS = Convert.ToDouble(drSec.StdYieldNIS); //////cCurrSec.ValueUSA = Convert.ToDouble(drSec.dValueUSA); // THEY ARE NULLS for BM sec //////cCurrSec.ValueNIS = Convert.ToDouble(drSec.dValueNIS); //////cCurrSec.WeightUSA = Convert.ToDouble(drSec.WeightUSA); //////cCurrSec.WeightNIS = Convert.ToDouble(drSec.WeightNIS); cCurrSec.DateRange = new cDateRange(DateTime.Today.AddYears(-cProperties.DatesInterval), DateTime.Today.AddDays(-1)); lock (lockObject) { cCurrSec.Properties.Sector = cColHandler.getCatItemByID(enumCatType.Sector, Convert.ToInt32(drSec.idSector), cColHandler.Sectors); // Exchange values cCurrSec.Properties.Market = cColHandler.getCatItemByID(enumCatType.StockMarket, drSec.idMarket, cColHandler.Markets); cCurrSec.Properties.MarketName = getSecMarketName(drSec.idMarket); cCurrSec.Properties.SecurityType = cColHandler.getCatItemByID(enumCatType.SecurityType, drSec.idSecurityType, cColHandler.SecTypes); } //if (drSec["idCurrency"] != DBNull.Value) cCurrSec.IdCurrency = drSec["IdCurrency"].ToString(); cCurrSec.IdCurrency = drSec.idCurrency; // WHY WAS IT HERE????? cProperties.CurrencyId; try { // Only exists in portfolio securities // For Benchmark we assign 'true' //if (drSec["isActiveSecurity"] != DBNull.Value) cCurrSec.setSecurityActivity(Convert.ToBoolean(drSec["isActiveSecurity"])); //else cCurrSec.setSecurityActivity(true); // LR: at this point security already has .PriceTable filled in, so commenting the line, because it crashes here //cCurrSec.PriceTable = drSec.Prices.ToList(); //////foreach (var p in cCurrSec.PriceTable) //////{ ////// p.dAdjPrice = p.fClose; //////} cCurrSec.setSecurityActivity(true); } catch (Exception ex) { } //// Made separate entity for tbl_IndexPrices //var priceRepository = Resolver.Resolve<IRepository>(); //List<Entities.dbo.BMPrice> laura; //try //{ // priceRepository.Execute(session => // { // ////cCurrSec.PriceTable = AutoMapper.Mapper.Map<List<Entities.dbo.Price>>(session.Query<Entities.dbo.BMPrice>().Where(x => x.idSecurity == "'" + drSec.idSecurity + "'").OrderByDescending(x => x.dDate).ToList()); // laura = session.Query<Entities.dbo.BMPrice>().Where(x => x.idSecurity == "'" + drSec.idSecurity + "'").OrderByDescending(x => x.dDate).ToList(); // }); //} //catch (Exception ex) //{ // m_objErrorHandler.LogInfo(ex); //} //Resolver.Release(priceRepository); return(cCurrSec); }//getCurrSecurity
public OptimizationService(IPortfolioBL portBL, ISecurities securitiesBL, IOptimizationReport optimizationReport) { cPort = portBL; SecuritiesBL = securitiesBL; OptimizationReport = optimizationReport; }
public cBacktestingSecurities(IPortfolioBL cPort) { m_objPortfolio = cPort; repository = Resolver.Resolve <IRepository>(); }//constructor
}//getCurrSecurity private cSecurity getCurrBMSecurity_with_EntitySec(Entities.dbo.Security drSec, IPortfolioBL cCurrPort) { // Retrieves an instance of a security based on its datarow info ICollectionsHandler cColHandler = cCurrPort.ColHandler; cSecurity cCurrSec = new cSecurity(cCurrPort, drSec.strName, drSec.strSymbol); //111An cCurrSec.Properties.PortSecurityId = drSec.idSecurity; cCurrSec.Properties.HebName = drSec.strHebName; cCurrSec.FAC = 1D; ////if (drSec["FAC"] != DBNull.Value) cCurrSec.FAC = Convert.ToDouble(drSec["FAC"]); ////else cCurrSec.FAC = 1D; ////if (cCurrSec.FAC <= 0D) cCurrSec.FAC = 1D; if (drSec.AvgYield.HasValue) { cCurrSec.AvgYield = Convert.ToDouble(drSec.AvgYield); } if (drSec.StdYield.HasValue) { cCurrSec.StdYield = Convert.ToDouble(drSec.StdYield); } if (drSec.AvgYieldNIS.HasValue) { cCurrSec.AvgYieldNIS = Convert.ToDouble(drSec.AvgYieldNIS); } if (drSec.StdYieldNIS.HasValue) { cCurrSec.StdYieldNIS = Convert.ToDouble(drSec.StdYieldNIS); } if (drSec.MonetaryAvg.HasValue) { cCurrSec.ValueUSA = Convert.ToDouble(drSec.MonetaryAvg); } if (drSec.MonetaryAvgNIS.HasValue) { cCurrSec.ValueNIS = Convert.ToDouble(drSec.MonetaryAvgNIS); } if (drSec.WeightUSA.HasValue) { cCurrSec.WeightUSA = Convert.ToDouble(drSec.WeightUSA); } if (drSec.WeightNIS.HasValue) { cCurrSec.WeightNIS = Convert.ToDouble(drSec.WeightNIS); } //cCurrSec.Properties.ISIN = drSec.strISIN; ////if ((drSec["dtPriceStart"] != DBNull.Value) && (drSec["dtPriceEnd"] != DBNull.Value)) //// cCurrSec.DateRange = new cDateRange(Convert.ToDateTime(drSec["dtPriceStart"]), Convert.ToDateTime(drSec["dtPriceEnd"])); cCurrSec.DateRange = new cDateRange(DateTime.Today.AddYears(-cProperties.DatesInterval), DateTime.Today.AddDays(-1)); if (drSec.idSector.HasValue) { cCurrSec.Properties.Sector = cColHandler.getCatItemByID(enumCatType.Sector, Convert.ToInt32(drSec.idSector), cColHandler.Sectors); } if (drSec.idMarket.HasValue) { // Exchange values cCurrSec.Properties.Market = cColHandler.getCatItemByID(enumCatType.StockMarket, drSec.idMarket.Value, cColHandler.Markets); cCurrSec.Properties.MarketName = getSecMarketName(drSec.idMarket.Value); } if (drSec.idSecurityType.HasValue) { cCurrSec.Properties.SecurityType = cColHandler.getCatItemByID(enumCatType.SecurityType, drSec.idSecurityType.Value, cColHandler.SecTypes); } //if (drSec["idCurrency"] != DBNull.Value) cCurrSec.IdCurrency = drSec["IdCurrency"].ToString(); cCurrSec.IdCurrency = cProperties.CurrencyId; try { // Only exists in portfolio securities // For Benchmark we assign 'true' //if (drSec["isActiveSecurity"] != DBNull.Value) cCurrSec.setSecurityActivity(Convert.ToBoolean(drSec["isActiveSecurity"])); //else cCurrSec.setSecurityActivity(true); // LR: at this point security already has .PriceTable filled in, so commenting the line, because it crashes here //cCurrSec.PriceTable = drSec.Prices.ToList(); //////foreach (var p in cCurrSec.PriceTable) //////{ ////// p.dAdjPrice = p.fClose; //////} cCurrSec.setSecurityActivity(true); } catch (Exception ex) { } return(cCurrSec); }//getCurrSecurity
}//getCatItemByID #endregion Load from DB #region Static methods private cSecurity getCurrSecurity(Security security, IPortfolioBL cCurrPort) { // Retrieves an instance of a security based on its datarow info ICollectionsHandler cColHandler = cCurrPort.ColHandler; cSecurity cCurrSec = new cSecurity(cCurrPort, security.strName, security.strSymbol);//111An cCurrSec.Properties.PortSecurityId = security.idSecurity; cCurrSec.Properties.HebName = security.strHebName; //cCurrSec.FAC = Convert.ToDouble(security.FAC); if (cCurrSec.FAC <= 0D) { cCurrSec.FAC = 1D; } cCurrSec.AvgYield = security.AvgYield; //* 52; cCurrSec.StdYield = security.StdYield; // * Math.Sqrt(52); cCurrSec.AvgYieldNIS = security.AvgYieldNIS; // * 52; cCurrSec.StdYieldNIS = security.StdYieldNIS; // * Math.Sqrt(52); cCurrSec.ValueUSA = security.dValueUSA; cCurrSec.ValueNIS = security.dValueNIS; cCurrSec.WeightUSA = security.WeightUSA; cCurrSec.WeightNIS = security.WeightNIS; //cCurrSec.Properties.ISIN = security.strISIN; cCurrSec.IdCurrency = security.idCurrency; cCurrSec.DateRange = new cDateRange(security.dtPriceStart, security.dtPriceEnd); cCurrSec.setSecurityActivity(true); lock (lockObject) { cCurrSec.Properties.Sector = cColHandler.getCatItemByID(enumCatType.Sector, security.idSector, cColHandler.Sectors); cCurrSec.Properties.Market = cColHandler.getCatItemByID(enumCatType.StockMarket, security.idMarket, cColHandler.Markets); cCurrSec.Properties.MarketName = getSecMarketName(security.idMarket); cCurrSec.Properties.SecurityType = cColHandler.getCatItemByID(enumCatType.SecurityType, security.idSecurityType, cColHandler.SecTypes); } //var priceRepository = Resolver.Resolve<IRepository>(); //try //{ // priceRepository.Execute(session => // { // cCurrSec.PriceTable = session.Query<Entities.dbo.Price>().Where(x => x.idSecurity == security.idSecurity).ToList(); //.OrderByDescending(x => x.dDate) // }); //} //catch (Exception ex) //{ // m_objErrorHandler.LogInfo(ex); //} //Resolver.Release(priceRepository); //List<Models.dbo.Price> BMprices = getFullPrices(); //cCurrSec.PriceTable = AutoMapper.Mapper.Map<List<Price>, List<Entities.dbo.Price>>(BMprices.Where(x => x.idSecurity == cCurrSec.Properties.PortSecurityId).OrderByDescending(x => x.dDate).ToList()); return(cCurrSec); }//getCurrSecurity