예제 #1
0
        public static INavCalculation GetLastNavCalculation(IDalSession session, IVirtualFund fund)
        {
            Hashtable parameters = new Hashtable();
            parameters.Add("fund", fund);

            IList navCalculations = session.GetListByNamedQuery("B4F.TotalGiro.Instruments.Nav.GetLastNavCalculation", parameters);
            return (navCalculations.Count > 0 ? (INavCalculation)navCalculations[0] : null);
        }
예제 #2
0
        public NavCalculation(INavCalculation lastNavCalculation, IVirtualFund fund)
            : this()
        {
            Fund = fund;
            if (lastNavCalculation != null)
            {
                ValuationDate = getNextWorkingDay(lastNavCalculation.ValuationDate);
                if (ValuationDate > DateTime.Today)
                    throw new ApplicationException(
                        string.Format("Fund '{0}' is up-to-date: a NAV Calculation for the last working day already exists.", fund.Name));

                PrevNavCalculation = lastNavCalculation;
                TotalParticipationsBeforeFill = lastNavCalculation.TotalParticipationsAfterFill;
                TotalParticipationsAfterFill = lastNavCalculation.TotalParticipationsAfterFill;
                GrossAssetValue = lastNavCalculation.GrossAssetValue;
                NettAssetValue = lastNavCalculation.NettAssetValue;
                NavPerUnit = lastNavCalculation.NavPerUnit;
                Status = NavCalculationStati.New;
                PublicOfferPrice = lastNavCalculation.PublicOfferPrice;
            }
        }
예제 #3
0
        public static IList GetNavCalculations(IDalSession session, IVirtualFund fund, DateTime navDateFrom,
                                              DateTime navDateTo)
        {
            Hashtable parameters = new Hashtable();
            string hql = string.Format("FROM NavCalculation S WHERE (1 = 1");

            if (navDateFrom != DateTime.MinValue)
            {
                parameters.Add("NavDateFrom", navDateFrom);
                hql += " AND S.ValuationDate >= :NavDateFrom";
            }

            if (navDateTo != DateTime.MinValue)
            {
                parameters.Add("NavDateTo", navDateTo);
                hql += " AND S.ValuationDate <= :NavDateTo";
            }

            hql += ")";

            return session.GetListByHQL(hql, parameters);
        }
예제 #4
0
 public FundDetails(IVirtualFund Fund)
 {
     this.Key = Fund.Key;
     this.FundName = Fund.Name;
     this.HoldingsAccountName = (Fund.HoldingsAccount != null) ? Fund.HoldingsAccount.ShortName : "";
     this.TradingAccountName = (Fund.TradingAccount != null) ? Fund.TradingAccount.ShortName : "";
     if (Fund.LastNavDate != new DateTime(1, 1, 1)) this.LastNavDate = Fund.LastNavDate;
     this.LastNavPerUnit = Fund.LastNavPerUnit;
     this.LastNavPerUnitDisplayString = Fund.LastNavPerUnit.Get(x => x.DisplayString);
 }