Esempio n. 1
0
        internal static List <DayCounter> GetDayCounter(ConnectionContextMySQL ctx, long?idDC, string className)
        {
            List <DayCounter> list = new List <DayCounter>();

            var command = SqlHelper.SelectDayCounterCommand(ctx, idDC, className);

            using (var reader = command.ExecuteReader())
            {
                //Repository.DayCounterDic.Clear();
                while (reader.Read())
                {
                    var r = new DayCounter
                    {
                        Id        = reader.GetInt32(reader.GetOrdinal("Id")),
                        Name      = reader.IsDBNull(reader.GetOrdinal("Name")) ? null : reader.GetString(reader.GetOrdinal("Name")),
                        ClassName = reader.IsDBNull(reader.GetOrdinal("ClassName")) ? null : reader.GetString(reader.GetOrdinal("ClassName"))
                    };

                    string param = reader.IsDBNull(reader.GetOrdinal("ClassNameParam")) ? null : reader.GetString(reader.GetOrdinal("ClassNameParam"));
                    if (!string.IsNullOrEmpty(param))
                    {
                        r.ClassName += ("::" + param);
                    }

                    list.Add(r);
                    //Repository.DayCounterDic[r.Id] = r;
                }
            }

            return(list);
        }
Esempio n. 2
0
        internal static bool ConfirmUser(ConnectionContextMySQL ctx, UserAccounts.FCUser user)
        {
            UserAccounts.FCUser tmp = CheckSignInUser(ctx, user);
            if (tmp == null ||
                tmp.g == Guid.Empty ||
                tmp.status != UserAccounts.FCUser.eStatus.eDisabled
                )
            {
                return(false);
            }

            // creates or confirms user
            var command = SqlHelper.ConfirmUser(ctx, user);

            try
            {
                command.ExecuteNonQuery();
                command.CommandText = "Commit";
                command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }
Esempio n. 3
0
        internal static List <ExchangeRate> GetXRates(ConnectionContextMySQL ctx, long?idXRate)
        {
            List <ExchangeRate> list = new List <ExchangeRate>();

            var command = SqlHelper.SelectXRatesCommand(ctx, idXRate);

            using (var reader = command.ExecuteReader())
            {
                //Repository.XRateDic.Clear();
                while (reader.Read())
                {
                    ExchangeRate tmp = new ExchangeRate
                    {
                        Id                  = reader.GetInt32(reader.GetOrdinal("Id")),
                        Name                = reader.IsDBNull(reader.GetOrdinal("Name")) ? null : reader.GetString(reader.GetOrdinal("Name")),
                        ClassName           = reader.IsDBNull(reader.GetOrdinal("ClassName")) ? null : reader.GetString(reader.GetOrdinal("ClassName")),
                        DataProviderId      = reader.IsDBNull(reader.GetOrdinal("DataProviderId")) ? 0 : reader.GetInt32(reader.GetOrdinal("DataProviderId")),
                        DataReference       = reader.IsDBNull(reader.GetOrdinal("DataReference")) ? null : reader.GetString(reader.GetOrdinal("DataReference")),
                        SettlementDays      = reader.IsDBNull(reader.GetOrdinal("SettlementDays")) ? 0 : reader.GetInt32(reader.GetOrdinal("SettlementDays")),
                        FixingPlace         = reader.IsDBNull(reader.GetOrdinal("FixingPlace")) ? null : reader.GetString(reader.GetOrdinal("FixingPlace")), //??? temporary solution. fixing place in database is id whereas here we are looking for quantlibclassname of calendar
                        PrimaryCurrencyId   = reader.IsDBNull(reader.GetOrdinal("PrimaryCurrencyCode")) ? 0 : reader.GetInt32(reader.GetOrdinal("PrimaryCurrencyCode")),
                        SecondaryCurrencyId = reader.IsDBNull(reader.GetOrdinal("SecondaryCurrencyCode")) ? 0 : reader.GetInt32(reader.GetOrdinal("SecondaryCurrencyCode"))
                    };

                    list.Add(tmp);
                    //Repository.XRateDic[tmp.Id] = tmp;
                }
            }

            return(list);
        }
Esempio n. 4
0
        public static FCUser CreateUser(string n, string p)
        {
            FCUser newUser = new FCUser {
                name = n, pass = p, status = FCUser.eStatus.eDisabled, g = Guid.NewGuid()
            };

            // creates or confirms user
#if _LINQXML_
            DataHelperLinqXml.AddEntryPointHistory(epl);
#elif _SQLITE_
            using (var ctx = new ConnectionContextSQLite())
            {
                if (!DataHelperSQLite.CreateUser(ctx, newUser))
                {
                    return(null);
                }

                return(newUser);
            }
#else // _MYSQL_
            using (var ctx = new ConnectionContextMySQL())
            {
                return(DataHelper.CreateUser(ctx, user));
            }
#endif
        }
Esempio n. 5
0
        //pair of params can be added later - typy (bond, rate etc) and instrument id
        //note that id is not unique as rate history contains different types of instruments from different tables (ids are unique only within one table)
        internal static List <RateHistory> GetRateHistory(ConnectionContextMySQL ctx, DateTime?settlementDate)
        {
            List <RateHistory> RateHistoryList = new List <RateHistory>();

            var command = SqlHelper.SelectRateHistoryCommand(ctx, null, settlementDate);

            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    var d = new RateHistory
                    {
                        Id          = reader.GetInt32(reader.GetOrdinal("Id")),
                        Type        = reader.GetString(reader.GetOrdinal("Type")),
                        RateId      = reader.GetInt32(reader.GetOrdinal("RateId")),
                        Date        = reader.GetDateTime(reader.GetOrdinal("Date")),
                        High        = reader.IsDBNull(reader.GetOrdinal("High")) ? -1 : reader.GetDouble(reader.GetOrdinal("High")),
                        Low         = reader.IsDBNull(reader.GetOrdinal("Low")) ? -1 : reader.GetDouble(reader.GetOrdinal("Low")),
                        Open        = reader.IsDBNull(reader.GetOrdinal("Open")) ? -1 : reader.GetDouble(reader.GetOrdinal("Open")),
                        Close       = reader.IsDBNull(reader.GetOrdinal("Close")) ? -1 : reader.GetDouble(reader.GetOrdinal("Close")),
                        Theoretical = reader.IsDBNull(reader.GetOrdinal("Theoretical")) ? -1 : reader.GetDouble(reader.GetOrdinal("Theoretical"))
                    };
                    RateHistoryList.Add(d);
                }
            }

            return(RateHistoryList);
        }
Esempio n. 6
0
		internal static MySqlCommand SelectInflationIndexCommand(ConnectionContextMySQL ctx, long? idIndex)
		{
			var command = new MySqlCommand(null, ctx.connection, ctx.transaction);
			var sb = new StringBuilder(
#if _NO_VIEWS_
@" SELECT
                                                       b.Id,
                b.Name,
                b.ClassName,
                b.Type,
                b.DataProviderId,
                b.DataReference,
                b.CurrencyId
                FROM inflationIndex b
                WHERE 1 = 1 "
			);

#else
			@"             SELECT * FROM vwinflationindex ");
#endif
			if (idIndex != null)
			{
				sb.Append("                 AND b.Id = @idIndex ");
				command.Parameters.Add(new MySqlParameter("                 @idIndex ", MySqlDbType.Int32)).Value = idIndex;
			}

			command.CommandText = sb.ToString();
			return command;
		}
Esempio n. 7
0
        internal static MySqlCommand ConfirmUser(ConnectionContextMySQL ctx, UserAccounts.FCUser user)
        {
            var command = new MySqlCommand(null, ctx.connection, ctx.transaction);

            MySqlParameter p = new MySqlParameter("@name", MySqlDbType.String);

            p.Value = user.name;
            command.Parameters.Add(p);

            p       = new MySqlParameter("@pass", MySqlDbType.String);
            p.Value = user.pass;
            command.Parameters.Add(p);

            p       = new MySqlParameter("@guid", MySqlDbType.String);
            p.Value = user.g.ToString("B");
            command.Parameters.Add(p);

            // check if exists, check guid, set Enabled if ok
            var sb = new StringBuilder(
                @"UPDATE Users SET Status = 1
				WHERE 
				Name = @name AND Pass = @pass AND Guid = @guid"
                );

            command.CommandText = sb.ToString();
            return(command);
        }
Esempio n. 8
0
        internal static List <Currency> GetCurrency(ConnectionContextMySQL ctx, long?idCurrency)
        {
            List <Currency> list = new List <Currency>();

            var command = SqlHelper.SelectCurrencyCommand(ctx, idCurrency);

            using (var reader = command.ExecuteReader())
            {
                //Repository.CurrencyDic.Clear();

                while (reader.Read())
                {
                    var r = new Currency
                    {
                        Id               = reader.GetInt32(reader.GetOrdinal("Id")),
                        ClassName        = reader.IsDBNull(reader.GetOrdinal("ClassName")) ? null : reader.GetString(reader.GetOrdinal("ClassName")),
                        Name             = reader.IsDBNull(reader.GetOrdinal("Name")) ? null : reader.GetString(reader.GetOrdinal("Name")),
                        Code             = reader.IsDBNull(reader.GetOrdinal("Code")) ? null : reader.GetString(reader.GetOrdinal("Code")),
                        NumericCode      = reader.IsDBNull(reader.GetOrdinal("NumericCode")) ? 0 : reader.GetInt32(reader.GetOrdinal("NumericCode")),
                        FractionsPerUnit = reader.IsDBNull(reader.GetOrdinal("FractionsPerUnit")) ? 0 : reader.GetInt32(reader.GetOrdinal("FractionsPerUnit")),
                        FractionSymbol   = reader.IsDBNull(reader.GetOrdinal("FractionSymbol")) ? null : reader.GetString(reader.GetOrdinal("FractionSymbol")),
                        Symbol           = reader.IsDBNull(reader.GetOrdinal("Symbol")) ? null : reader.GetString(reader.GetOrdinal("Symbol"))
                    };

                    list.Add(r);
                    //Repository.CurrencyDic[r.Id] = r;
                }
            }
            return(list);
        }
Esempio n. 9
0
        internal static MySqlCommand CheckSignInUser(ConnectionContextMySQL ctx, UserAccounts.FCUser user)
        {
            var command = new MySqlCommand(null, ctx.connection, ctx.transaction);

            MySqlParameter p = new MySqlParameter("@name", MySqlDbType.String);

            p.Value = user.name;
            command.Parameters.Add(p);

            p       = new MySqlParameter("@pass", MySqlDbType.String);
            p.Value = user.pass;
            command.Parameters.Add(p);

            // check if exists, check guid, set Enabled if ok
            var sb = new StringBuilder(
                @"SELECT 
				Name, Pass, Guid, Status
				FROM Users
				WHERE Name = @name AND Pass = @pass"
                );

            if (user.g != Guid.Empty)
            {
                sb.Append(" AND Guid = @g");
                p       = new MySqlParameter("@g", MySqlDbType.String);
                p.Value = user.g.ToString("B");
                command.Parameters.Add(p);
            }

            command.CommandText = sb.ToString();
            return(command);
        }
Esempio n. 10
0
        //
        // DataFeed
        //

        internal static MySqlCommand GetAllEntryPoints(ConnectionContextMySQL ctx)
        {
            var command = new MySqlCommand(null, ctx.connection, ctx.transaction);
            var sb      = new StringBuilder(
                @"SELECT  
				Id,
				Type,
				RateId, 
				YieldCurveId,
				Length,
				TimeUnit,
				DateStart,
				DateFinish,
				DataProviderId,
				DataReference,
				UserCreated,
				IpCreated

				FROM YcEntry 
				WHERE 1 == 1"
                );

            command.CommandText = sb.ToString();
            return(command);
        }
Esempio n. 11
0
        //
        // UserAccounts
        //

        internal static MySqlCommand CreateUser(ConnectionContextMySQL ctx, UserAccounts.FCUser user)
        {
            var command = new MySqlCommand(null, ctx.connection, ctx.transaction);

            MySqlParameter p = new MySqlParameter("@name", MySqlDbType.String);

            p.Value = user.name;
            command.Parameters.Add(p);

            p       = new MySqlParameter("@pass", MySqlDbType.String);
            p.Value = user.pass;
            command.Parameters.Add(p);

            p       = new MySqlParameter("@guid", MySqlDbType.String);
            p.Value = user.g.ToString("B");
            command.Parameters.Add(p);

            // if not exists - create as !Enabled
            var sb = new StringBuilder(
                @"INSERT 
				into Users 
				(Name, Pass, Guid, Status, UserCreated, IpCreated)
				values
				(@name, @pass, @guid, 0, 1, '192.168.0.0')"                             // 0 == disabled
                );

            command.CommandText = sb.ToString();
            return(command);
        }
Esempio n. 12
0
        internal static MySqlCommand GetEntryPointByRateIdType(ConnectionContextMySQL ctx, EntryPoint ep)
        {
            var command = new MySqlCommand(null, ctx.connection, ctx.transaction);
            var sb      = new StringBuilder(
                @"SELECT  
				Id,
				Type
				FROM YcEntry 
				WHERE 1 == 1"
                );

            if (ep != null)             // otherwise return ALL entry point's ids
            {
                sb.Append(@" RateId = @rateId AND Type = @type");
                MySqlParameter p = new MySqlParameter("@rateId", MySqlDbType.Int32);
                p.Value = ep.Instrument.Id;
                command.Parameters.Add(p);

                p       = new MySqlParameter("@type", MySqlDbType.String);
                p.Value = ep.Type;
                command.Parameters.Add(p);
            }
            command.CommandText = sb.ToString();
            return(command);
        }
Esempio n. 13
0
        internal static MySqlCommand AddEntryPointHistory(ConnectionContextMySQL ctx, EntryPoint ep)
        {
            var command = new MySqlCommand(null, ctx.connection, ctx.transaction);
            var sb      = new StringBuilder(
                @"INSERT 
				into YcEntryHistory 
				(YcEntryId, Value, Date)
				values
				(@epId, @epVal, @epDate)"
                );

            MySqlParameter p = new MySqlParameter("@epId", MySqlDbType.Int32);

            p.Value = ep.Id;
            command.Parameters.Add(p);

            p       = new MySqlParameter("@epVal", MySqlDbType.Double);
            p.Value = ep.epValue.Value;
            command.Parameters.Add(p);

            p       = new MySqlParameter("@epDate", MySqlDbType.DateTime);
            p.Value = ep.epValue.Date;
            command.Parameters.Add(p);

            command.CommandText = sb.ToString();
            return(command);
        }
Esempio n. 14
0
        internal static List <InflationIndex> GetInflationIndex(ConnectionContextMySQL ctx, long?idIndex)
        {
            List <InflationIndex> list = new List <InflationIndex>();

            var command = SqlHelper.SelectInflationIndexCommand(ctx, idIndex);

            using (var reader = command.ExecuteReader())
            {
                //Repository.BondDic.Clear();

                while (reader.Read())
                {
                    InflationIndex b = new InflationIndex
                    {
                        Id             = reader.GetInt32(reader.GetOrdinal("Id")),
                        Name           = reader.IsDBNull(reader.GetOrdinal("Name")) ? null : reader.GetString(reader.GetOrdinal("Name")),
                        ClassName      = reader.IsDBNull(reader.GetOrdinal("ClassName")) ? null : reader.GetString(reader.GetOrdinal("ClassName")),
                        Type           = reader.GetString(reader.GetOrdinal("Type")),
                        DataProviderId = reader.IsDBNull(reader.GetOrdinal("DataProviderId")) ? 0 : reader.GetInt32(reader.GetOrdinal("DataProviderId")),
                        DataReference  = reader.IsDBNull(reader.GetOrdinal("DataReference")) ? null : reader.GetString(reader.GetOrdinal("DataReference")),
                        IdCcy          = reader.IsDBNull(reader.GetOrdinal("CurrencyId")) ? 0 : reader.GetInt32(reader.GetOrdinal("CurrencyId")),
                    };

                    list.Add(b);
                }
            }

            return(list);
        }
Esempio n. 15
0
        internal static MySqlCommand SelectRateHistoryCommand(ConnectionContextMySQL ctx,
                                                              long?RateId,
                                                              DateTime?settlementDate)
        {
            var command = new MySqlCommand(null, ctx.connection, ctx.transaction);
            var sb      = new StringBuilder(

#if _NO_VIEWS_
                @"SELECT 
				xh.Id as Id,
                xh.Type as Type,
                xh.RateId as RateId,
                xh.Date as Date,
                xh.High as High, 
                xh.Low as Low,
                xh.Open as Open,  
                xh.Close as Close, 
                xh.Theoretical as Theoretical, 
                xh.UserCreated as UserCreated, 
                xh.IpCreated as IpCreated 
                FROM ratehistory xh 
                WHERE 1 = 1"
                );
#else
                @"SELECT 
                    xh.Id as Id,
                    xh.Type as Type,
					xh.RateId as RateId,
                    xh.Date as Date, 
                    xh.Close as Value,
                FROM vwratehistory xh 
                WHERE 1 = 1");
#endif
            if (RateId != null)
            {
                sb.Append(" AND xh.RateId = @RateId ");
                command.Parameters.Add(new MySqlParameter("@RateId", MySqlDbType.Int32)).Value = RateId;
            }

            if (settlementDate != null)
            {
#if _NO_VIEWS_
                sb.Append(@" AND xh.Date <= @date order by xh.Date desc");
#else
                sb.Append(@" AND xh.date = 
								(select max(xh2.Date) 
									FROM vwratehistory xh2 
									WHERE xh2.Date <= @date AND xh2.RateId = xh.Id)"                                    );
#endif
                command.Parameters.Add(new MySqlParameter("@date", MySqlDbType.Date)).Value = settlementDate;
            }

            sb.Append(" order by xh.RateId asc, xh.Date desc");

            command.CommandText = sb.ToString();
            return(command);
        }
Esempio n. 16
0
        // instruments used for callibration and valid start date and valid end date
        internal static List <InflationCurveEntryData> GetInflationCurveEntryData(ConnectionContextMySQL ctx, long?idIc, DateTime?settlementDate)
        {
            List <InflationCurveEntryData> EntryDataList = new List <InflationCurveEntryData>();

            var command = SqlHelper.SelectInflationCurveEntryDataCommand(ctx, idIc, settlementDate);

            using (var reader = command.ExecuteReader())
            {
                // Dictionary<long, ValuePair> entryPointDic = new Dictionary<long, ValuePair>();

                while (reader.Read())
                {
                    var d = new InflationCurveEntryData
                    {
                        InflationCurveId = reader.GetInt32(reader.GetOrdinal("InflationCurveId")),
                        Id             = reader.GetInt32(reader.GetOrdinal("Id")),
                        Type           = reader.GetString(reader.GetOrdinal("Type")),
                        Enabled        = true,                  // default
                        ValidDateBegin = reader.GetDateTime(reader.GetOrdinal("ValidDateStart")),
                        ValidDateEnd   = reader.GetDateTime(reader.GetOrdinal("ValidDateEnd")),
                    };

                    if (d.Type.ToLower() == "inflationbond")
                    {
                        d.Instrument = (InflationBond)GetInflationBond(reader.GetInt32(reader.GetOrdinal("RateId")));
                    }
                    else if (d.Type.ToLower() == "swap")
                    {
                        d.Instrument = (InflationRate)GetInflationRate(reader.GetInt32(reader.GetOrdinal("RateId")));
                    }

                    /*    else if (d.Type.ToLower() == "bond")
                     *      {
                     *              d.Instrument = (Instrument)GetBond(reader.GetInt32(reader.GetOrdinal("RateId")));
                     *      }
                     *      else
                     *      {
                     *              d.Instrument = (Instrument)GetRate(reader.GetInt32(reader.GetOrdinal("RateId")));
                     *      } */


                    //    if (((d.Type == "inflationbond") || (d.Type == "bond")) && (d.Instrument as Bond).MaturityDate <= settlementDate)
                    //         continue;		// skip if bond and maturity date is not in future

                    if ((d.Type == "inflationbond") && (d.Instrument as InflationBond).MaturityDate <= settlementDate)
                    {
                        //     if ((d.Type == "inflationbond") && (d.Instrument as Bond).MaturityDate <= settlementDate)
                        continue;                                       // skip if bond and maturity date is not in future
                    }
                    EntryDataList.Add(d);
                }
            }

            EntryDataList.Sort(new InflationCurveEntryDataCompare());
            return(EntryDataList);
        }
Esempio n. 17
0
        internal static InflationBond GetInflationBond(long?idInflationBond)
        //     internal static Bond GetInflationBond(long? idInflationBond)
        {
            //  if (idInflationBond != null && Repository.inf.BondDic.ContainsKey(idBond.Value))
            //      return Repository.BondDic[idBond.Value];

            var ctx = new ConnectionContextMySQL();

            return(GetInflationBonds(ctx, idInflationBond)[0]);
        }
Esempio n. 18
0
		internal static MySqlCommand SelectExchangeRateHistoryCommand(ConnectionContextMySQL ctx,
																	  long? RateId,
																	  DateTime? settlementDate)
		{
			var command = new MySqlCommand(null, ctx.connection, ctx.transaction);
			var sb = new StringBuilder(

#if _NO_VIEWS_
			@"             SELECT
                                                       xh.Id as Id,
                xh.RateId as RateId,
                xh.Date as Date,
                xh.Close as Value,
                CASE WHEN xe.DataProviderId IS NOT NULL THEN(xe.DataProviderId) ELSE(0) END as DataProviderId,
                CASE WHEN xe.DataReference IS NOT NULL THEN(xe.DataReference) ELSE('') END as DataReference
                FROM exchangeratehistory xh
                JOIN exchangerate xe ON xe.Id                     = xh.RateId
                                                          WHERE 1 = 1 "
			);
#else
			@"             SELECT
                                                                    xh.Id as Id,
                xh.RateId as RateId,
                xh.Date as Date,
                xh.Close as Value,
                CASE WHEN xe.DataProviderId IS NOT NULL THEN(xe.DataProviderId) ELSE(0) END as DataProviderId,
                CASE WHEN xe.DataReference IS NOT NULL THEN(xe.DataReference) ELSE('') END as DataReference
                FROM vwexchangeratehistory xh
                JOIN vwexchangerate xe ON xe.Id                     = xh.RateId
                                                            WHERE 1 = 1 ");
#endif
			if (RateId != null)
			{
				sb.Append("                 AND xh.RateId = @RateId ");
				command.Parameters.Add(new MySqlParameter("                 @RateId ", MySqlDbType.Int32)).Value = RateId;
			}

			if (settlementDate != null)
			{
#if _NO_VIEWS_
				sb.Append(@"                 AND xh.Date <= @date order by xh.Date desc ");
#else
                sb.Append(@" AND xh.date =
                    (select max(xh2.Date)
                     FROM vwexchangeratehistory xh2
                     WHERE xh2.Date <= @date AND xh2.RateId = xh.Id) ");
#endif
				command.Parameters.Add(new MySqlParameter("                 @date ", MySqlDbType.Date)).Value = settlementDate;
			}

			sb.Append("             order by xh.RateId asc, xh.Date desc ");

			command.CommandText = sb.ToString();
			return command;
		}
Esempio n. 19
0
        /// <summary>
        /// Retrieves the list of yield curve data
        /// </summary>
        /// <param name="ctx">
        /// The connection context
        /// </param>
        /// <param name="idYc">
        /// The yield curve id
        /// </param>
        /// <param name="idYc">
        /// The date
        /// </param>
        /// <returns>
        /// List of yield curve data
        /// </returns>
        ///
        // ??? obsolete method

        internal static List <YieldCurveData> GetYieldCurveData(ConnectionContextMySQL ctx,
                                                                long?idYc)
        {
            List <YieldCurveData> ycDesc = new List <YieldCurveData>();

            var command = SqlHelper.SelectYieldCurveDataCommand(ctx, idYc);

            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    var ycs = new YieldCurveSetting
                    {
                        ZcBasisId      = reader.GetInt32(reader.GetOrdinal("ZcBasisId")),
                        ZcCompounding  = reader.GetString(reader.GetOrdinal("ZcCompounding")),
                        ZcFrequency    = reader.GetString(reader.GetOrdinal("ZcFrequency")),
                        FrwCompounding = reader.GetString(reader.GetOrdinal("FrwCompounding")),
                        ifZc           = reader.GetBoolean(reader.GetOrdinal("ifZC")),

                        FrwBasisId   = reader.GetInt32(reader.GetOrdinal("FrwBasisId")),
                        ZCColor      = reader.IsDBNull(reader.GetOrdinal("ZCColor")) ? null : reader.GetString(reader.GetOrdinal("ZCColor")),
                        FrwFrequency = reader.GetString(reader.GetOrdinal("FrwFrequency")),
                        FrwTermBase  = reader.GetString(reader.GetOrdinal("FrwTermBase")),
                        FrwTerm      = reader.IsDBNull(reader.GetOrdinal("FrwTerm")) ? -1 : reader.GetInt32(reader.GetOrdinal("FrwTerm")),
                        FrwColor     = reader.IsDBNull(reader.GetOrdinal("FrwColor")) ? null : reader.GetString(reader.GetOrdinal("FrwColor")),
                        ifFrw        = reader.GetBoolean(reader.GetOrdinal("ifFrw")),

                        SpreadType   = reader.IsDBNull(reader.GetOrdinal("SpreadType")) ? -1 : reader.GetInt32(reader.GetOrdinal("SpreadType")),
                        SpreadSize   = reader.IsDBNull(reader.GetOrdinal("SpreadSize")) ? -1 : reader.GetDouble(reader.GetOrdinal("SpreadSize")),
                        SpreadFamily = reader.IsDBNull(reader.GetOrdinal("SpreadFamily")) ? -1 : reader.GetInt32(reader.GetOrdinal("SpreadFamily"))
                    };

                    Calendar cal = new Calendar
                    {
                        Id         = reader.IsDBNull(reader.GetOrdinal("calId")) ? -1 : reader.GetInt32(reader.GetOrdinal("calId")),
                        ClassName  = reader.IsDBNull(reader.GetOrdinal("calClassName")) ? null : reader.GetString(reader.GetOrdinal("calClassName")),
                        MarketName = reader.IsDBNull(reader.GetOrdinal("calMarketName")) ? null : reader.GetString(reader.GetOrdinal("calMarketName"))
                    };

                    ycs.Calendar = cal;

                    ycDesc.Add(new YieldCurveData
                    {
                        Id             = reader.GetInt32(reader.GetOrdinal("Id")),
                        Name           = reader.GetString(reader.GetOrdinal("Name")),
                        Family         = reader.GetString(reader.GetOrdinal("Family")),
                        CurrencyId     = reader.IsDBNull(reader.GetOrdinal("CurrencyId")) ? -1 : reader.GetInt32(reader.GetOrdinal("CurrencyId")),
                        settings       = ycs,
                        entryPointList = null
                    });
                }
            }

            return(ycDesc);
        }
Esempio n. 20
0
        /// <summary>
        /// Retrieves the list of all bonds and their data
        /// </summary>
        /// <param name="ctx">
        /// The connection context
        /// </param>
        /// </returns>

        public static Bond GetBond(long?idBond)
        {
            if (idBond != null && Repository.BondDic.ContainsKey(idBond.Value))
            {
                return(Repository.BondDic[idBond.Value]);
            }

            var ctx = new ConnectionContextMySQL();

            return(GetBonds(ctx, idBond)[0]);
        }
Esempio n. 21
0
        internal static void UpdateEntryPoint(ConnectionContextMySQL ctx, EntryPoint ep)
        {
            var command = SqlHelper.UpdateEntryPoint(ctx, ep);

            try
            {
                command.ExecuteNonQuery();
            }
            catch (Exception ex)
            { }
        }
Esempio n. 22
0
        internal static InflationRate GetInflationRate(long?idRate)
        {
            if (idRate != null && Repository.InflationRateDic.ContainsKey(idRate.Value))
            {
                return(Repository.InflationRateDic[idRate.Value]);
            }

            var ctx = new ConnectionContextMySQL();

            return(GetInflationRates(ctx, idRate)[0]);
        }
Esempio n. 23
0
		internal static MySqlCommand SelectInflationCurveEntryDataCommand(ConnectionContextMySQL ctx, long? idInflationCurve, DateTime? settlementDate)
		{
			var command = new MySqlCommand(null, ctx.connection, ctx.transaction);
			var sb = new StringBuilder(
#if _NO_VIEWS_
@" SELECT
                                                           ice.InflationCurveId as InflationCurveId,
                ice.Id as Id,
                CASE WHEN ice.Type IS NOT NULL THEN(ice.Type) ELSE('') END as Type,
                ice.RateId as RateId,
                ice.DateStart as ValidDateStart,
                ice.DateFinish as ValidDateEnd

                FROM InflationcurveEntry ice
                WHERE 1 = 1 "
				);
#else
			@"             SELECT
                          yce.Id, yce.YieldCurveId, yce.Type, yce.Length, yce.TimeUnit, yce.RateId,
                yceh.Date, yceh.Value

                FROM vwYcEntryHistory yceh

                JOIN vwYcEntry yce ON yceh.YcEntryId = yce.Id

                                                       WHERE 1 = 1 ");
#endif
			if (idInflationCurve != null)
			{
				sb.Append("                 AND ice.InflationCurveId = @idInflationCurve ");
				command.Parameters.Add(new MySqlParameter("                 @idInflationCurve ", MySqlDbType.Int32)).Value = idInflationCurve;
			}

			if (settlementDate != null)
			{
#if _NO_VIEWS_
				//String d = ((DateTime)settlementDate).ToString("                 yyyy - MM - dd ");
				sb.Append(@"                 AND yce.DateStart <= @date AND yce.DateFinish > @date ");
				//string app = @"                 AND ice.DateStart <= '" + d + "' AND ice.DateFinish > '" + d + "' ";
				//sb.Append(app);


#else
                
#endif
				command.Parameters.Add(new MySqlParameter("                 @date ", MySqlDbType.Date)).Value = settlementDate;
				//          command.Parameters.Add(new MySqlParameter("                 @date ", MySqlDbType.Date)).Value = d;
			}

			sb.Append("             order by ice.InflationCurveId asc ");

			command.CommandText = sb.ToString();
			return command;
		}
Esempio n. 24
0
 internal static void AddEntryPointHistory(ConnectionContextMySQL ctx, List <EntryPoint> epl)
 {
     foreach (var ep in epl)
     {
         var command = SqlHelper.AddEntryPointHistory(ctx, ep);
         try
         {
             command.ExecuteNonQuery();
         }
         catch (Exception ex)
         { }
     }
 }
Esempio n. 25
0
        internal static List <Rate> GetRates(ConnectionContextMySQL ctx, long?idRate)
        {
            List <Rate> list = new List <Rate>();

            var command = SqlHelper.SelectRatesCommand(ctx, idRate);

            using (var reader = command.ExecuteReader())
            {
                //Repository.RateDic.Clear();

                while (reader.Read())
                {
                    Rate tmp = new Rate
                    {
                        Id             = reader.GetInt32(reader.GetOrdinal("Id")),
                        Name           = reader.IsDBNull(reader.GetOrdinal("Name")) ? null : reader.GetString(reader.GetOrdinal("Name")),
                        ClassName      = reader.GetString(reader.GetOrdinal("ClassName")),
                        Type           = reader.GetString(reader.GetOrdinal("Type")),
                        DataProviderId = reader.IsDBNull(reader.GetOrdinal("DataProviderId")) ? 0 : reader.GetInt32(reader.GetOrdinal("DataProviderId")),
                        DataReference  = reader.IsDBNull(reader.GetOrdinal("DataReference")) ? null : reader.GetString(reader.GetOrdinal("DataReference")),
                        IdCcy          = reader.IsDBNull(reader.GetOrdinal("CurrencyId")) ? 0 : reader.GetInt32(reader.GetOrdinal("CurrencyId")),
                        Duration       = reader.IsDBNull(reader.GetOrdinal("Length")) ? 0 : reader.GetInt32(reader.GetOrdinal("Length")),
                        TimeUnit       = reader.IsDBNull(reader.GetOrdinal("TimeUnit")) ? null : reader.GetString(reader.GetOrdinal("TimeUnit")),
                        Accuracy       = reader.IsDBNull(reader.GetOrdinal("Accuracy")) ? 0 : reader.GetInt32(reader.GetOrdinal("Accuracy")),
                        Spread         = reader.IsDBNull(reader.GetOrdinal("Spread")) ? 0 : reader.GetDouble(reader.GetOrdinal("Spread")),
                        SettlementDays = reader.IsDBNull(reader.GetOrdinal("SettlementDays")) ? 0 : reader.GetInt32(reader.GetOrdinal("SettlementDays")),
                        FixingPlace    = reader.IsDBNull(reader.GetOrdinal("FixingPlace")) ? null : reader.GetString(reader.GetOrdinal("FixingPlace")),                      //??? temporary solution. fixing place in database is id whereas here we are looking for quantlibclassname of calendar
                        IdIndex        = reader.IsDBNull(reader.GetOrdinal("IndexId")) ? 0 : reader.GetInt32(reader.GetOrdinal("IndexId")),

                        BasisId        = reader.IsDBNull(reader.GetOrdinal("BasisId")) ? -1 : reader.GetInt32(reader.GetOrdinal("BasisId")),
                        Frequency      = reader.IsDBNull(reader.GetOrdinal("Frequency")) ? null : reader.GetString(reader.GetOrdinal("Frequency")),
                        Compounding    = reader.IsDBNull(reader.GetOrdinal("Compounding")) ? null : reader.GetString(reader.GetOrdinal("Compounding")),
                        IndexDuration  = reader.IsDBNull(reader.GetOrdinal("IndexLength")) ? 0 : reader.GetInt32(reader.GetOrdinal("IndexLength")),
                        IndexTimeUnit  = reader.IsDBNull(reader.GetOrdinal("IndexTimeUnit")) ? null : reader.GetString(reader.GetOrdinal("IndexTimeUnit")),
                        IndexName      = reader.IsDBNull(reader.GetOrdinal("IndexName")) ? null : reader.GetString(reader.GetOrdinal("IndexName")),
                        ClassNameIndex = reader.IsDBNull(reader.GetOrdinal("IndexClassName")) ? null : reader.GetString(reader.GetOrdinal("IndexClassName")),

                        BasisIndexId     = reader.IsDBNull(reader.GetOrdinal("IndexBasisId")) ? -1 : reader.GetInt32(reader.GetOrdinal("IndexBasisId")),
                        FrequencyIndex   = reader.IsDBNull(reader.GetOrdinal("IndexFrequency")) ? null : reader.GetString(reader.GetOrdinal("IndexFrequency")),
                        CompoundingIndex = reader.IsDBNull(reader.GetOrdinal("IndexCompounding")) ? null : reader.GetString(reader.GetOrdinal("IndexCompounding")),
                    };

                    list.Add(tmp);
                    //Repository.RateDic[tmp.Id] = tmp;
                }
            }

            return(list);
        }
Esempio n. 26
0
        internal static MySqlCommand SelectBondsCommand(ConnectionContextMySQL ctx, long?idBond)
        {
            var command = new MySqlCommand(null, ctx.connection, ctx.transaction);
            var sb      = new StringBuilder(
#if _NO_VIEWS_
                @"SELECT 
				b.Id, 
				b.Name, 
				b.Type, 
				b.DataProviderId, 
				b.DataReference, 
				b.CurrencyId,  
				-- b.DateGenerationId, 
				-- b.CouponFrequencyId, 
				b.Coupon, 
				-- b.CouponConventionId, 
				b.CouponBasisId, 
				b.Redemption, 
				b.Nominal,
				-- b.CalendarId, 
				b.SettlementDays, 
				b.IssueDate, 
				b.MaturityDate,
				-- b.YieldCurveId, 
				-- b.UserCreated, 
				-- b.IpCreated, 
				CASE WHEN c.Name IS NOT NULL THEN (c.Name) ELSE ('') END as DateGeneration,
				CASE WHEN d.Name IS NOT NULL THEN (d.Name) ELSE ('') END as CouponFrequency, 
				CASE WHEN e.Name IS NOT NULL THEN (e.Name) ELSE ('') END as CouponConvention 
				-- CASE WHEN f.Name IS NOT NULL THEN (f.Name) ELSE ('') END as CouponBasis 
				FROM bond b
				LEFT JOIN EnumDateGeneration c ON c.Id = b.DateGenerationId 
				LEFT JOIN EnumFrequency d ON d.Id = b.CouponFrequencyId
				LEFT JOIN EnumBusinessDayConvention e ON e.Id = b.CouponConventionId 
				-- LEFT JOIN EnumBasis f ON f.Id = b.CouponBasisId  
				WHERE 1 = 1"
                );
#else
                @"SELECT * FROM vwbond");
#endif
            if (idBond != null)
            {
                sb.Append(" AND b.Id = @idBond ");
                command.Parameters.Add(new MySqlParameter("@idBond", MySqlDbType.Int32)).Value = idBond;
            }

            command.CommandText = sb.ToString();
            return(command);
        }
Esempio n. 27
0
		internal static MySqlCommand SelectInflationCurveDataCommand(ConnectionContextMySQL ctx, long? idIC/*, long? idYcFamily*/)
		{
			var command = new MySqlCommand(null, ctx.connection, ctx.transaction);
#if _NO_VIEWS_
			var sb = new StringBuilder(
					@"                     SELECT
                                                             yc.Id as Id,

                CASE WHEN c.Name IS NOT NULL THEN(c.Name) ELSE('') END as ZcCompounding,
                CASE WHEN f.Name IS NOT NULL THEN(f.Name) ELSE('') END as ZcFrequency,
                yc.ifZC as ifZc,
                yc.ZcColor as ZcColor,
                yc.ZcBasisId as ZcBasisId,
                CASE WHEN yc.InflationIndex IS NOT NULL THEN(yc.InflationIndex) ELSE(0) END as InflationIndex,
                yc.ifIndex as ifIndex,
                yc.IndexColor as IndexColor,

                yc.Name as Name,
                CASE WHEN ycf.Name IS NOT NULL THEN(ycf.Name) ELSE('') END as Family,
                CASE WHEN ycf.CurrencyId IS NOT NULL THEN(ccy.Id) ELSE(0) END as CurrencyId

                FROM InflationCurve yc

                LEFT JOIN EnumCompounding c ON c.Id = yc.ZcCompoundingId
                                                      LEFT JOIN EnumFrequency f ON f.Id = yc.ZcFrequencyId

                                                                                          LEFT JOIN InflationFamily ycf ON ycf.Id = yc.FamilyId
                                                                                                                                    LEFT JOIN Currency ccy ON ccy.Id = ycf.CurrencyId

                                                                                                                                                                       WHERE 1 = 1 ");
#else
            var sb = new StringBuilder(" SELECT * FROM vwInflationCurve WHERE 1 = 1 ");
#endif
			if (idIC != null)
			{
				sb.Append("                 AND Id = @idIC ");
				command.Parameters.Add(new MySqlParameter("                 @idIC ", MySqlDbType.Int32)).Value = idIC;
			}
			/*
			if (idYcFamily != null)
			{
				sb.Append("                 AND FamilyId = @idYcFamily ");
				command.Parameters.Add(new MySqlParameter("                 @idYcFamily ", MySqlDbType.Int32)).Value = (int)idYcFamily;
			}
			*/
			command.CommandText = sb.ToString();
			return command;
		}
Esempio n. 28
0
        public static List <EntryPoint> GetYieldCurveEntryPoint(long?idYc, DateTime?settlementDate)
        {
#if _LINQXML_
            return(DataHelperLinqXml.GetYieldCurveEntryData(idYc, settlementDate));
#elif _SQLITE_
            using (var ctx = new ConnectionContextSQLite())
            {
                return(DataHelperSQLite.GetYieldCurveEntryPoint(ctx, idYc, settlementDate));
            }
#else // _MYSQL_
            using (var ctx = new ConnectionContextMySQL())
            {
                return(DataHelper.GetYieldCurveEntryData(ctx, idYc, settlementDate));
            }
#endif
        }
Esempio n. 29
0
        public static List <YieldCurveData> GetYieldCurveData(long?idYc)
        {
#if _LINQXML_
            return(DataHelperLinqXml.GetYieldCurveData(idYc));
#elif _SQLITE_
            using (var ctx = new ConnectionContextSQLite())
            {
                return(DataHelperSQLite.GetYieldCurveData(ctx, idYc));
            }
#else // _MYSQL_
            using (var ctx = new ConnectionContextMySQL())
            {
                return(DataHelper.GetYieldCurveData(ctx, idYc));
            }
#endif
        }
Esempio n. 30
0
        public static List <YieldCurveFamily> GetYieldCurveFamily(long?idYcFamily, long?idCurrency)
        {
#if _LINQXML_
            return(DataHelperLinqXml.GetYieldCurveFamily(idYcFamily, idCurrency));
#elif _SQLITE_
            using (var ctx = new ConnectionContextSQLite())
            {
                return(DataHelperSQLite.GetYieldCurveFamily(ctx, idYcFamily, idCurrency));
            }
#else // _MYSQL
            using (var ctx = new ConnectionContextMySQL())
            {
                return(DataHelper.GetYieldCurveFamily(ctx, idYcFamily, idCurrency));
            }
#endif
        }