示例#1
0
        internal static Coupon GetCoupon(CouponTypeEnum couponType)
        {
            switch (couponType)
            {
            case CouponTypeEnum.AmountCoupon5For50:
                return(new AmountCoupon("50 TL'de 5 TL indirim", 50, 5));

            case CouponTypeEnum.AmountCoupon50For300:
                return(new AmountCoupon("300 TL'de 50 TL indirim", 300, 50));

            case CouponTypeEnum.RateCoupon10For150:
                return(new RateCoupon("150 TL'de %10 indirim", 150, 10));

            default:
                throw new Exception("Coupon not found");
            }
        }
示例#2
0
 /// <summary>
 /// PriceableBond
 /// </summary>
 /// <param name="name"></param>
 /// <param name="instrumentid"></param>
 /// <param name="bondType"></param>
 /// <param name="dealDate"></param>
 /// <param name="valueDate"></param>
 /// <param name="ccy"></param>
 /// <param name="calendar"></param>
 /// <param name="coupFreq"></param>
 /// <param name="accrualDC"></param>
 /// <param name="yieldDC"></param>
 /// <param name="repoDC"></param>
 /// <param name="xdt"></param>
 /// <param name="couponType"></param>
 /// <param name="couponRate"></param>
 /// <param name="settC"></param>
 /// <param name="maturity"></param>
 /// <param name="valueC"></param>
 /// <param name="tickSize"></param>
 /// <param name="issuerName"></param>
 /// <param name="ycm"></param>
 /// <param name="yieldCompFreq"></param>
 /// <param name="accIntRounding"></param>
 public PriceableBond(string name, string instrumentid, string bondType,
                      DateTime dealDate, DateTime valueDate, Currency ccy, IBusinessCalendar calendar,
                      Period coupFreq, DayCountFraction accrualDC, DayCountFraction yieldDC, DayCountFraction repoDC,
                      ExDividendEnum xdt, CouponTypeEnum couponType, decimal couponRate, string settC, DateTime maturity,
                      BondSettlementEnum valueC, short tickSize, string issuerName, BondAnalytics.YieldCalcMethod ycm,
                      short yieldCompFreq, short accIntRounding)
     : base(dealDate, 100.0m, ccy, null, null, null, null)
 {
     Currency            = ccy;
     ValueDate           = valueDate;
     DealDate            = dealDate;
     Frequency           = int.Parse(coupFreq.periodMultiplier); //convert to using the bond fpml paymentfrequency field.
     AccIntRounding      = accIntRounding;
     CouponType          = couponType;
     CouponRate          = couponRate;
     CouponDayCount      = accrualDC;
     BondType            = EnumHelper.Parse <BondTypesEnum>(bondType);
     PaymentDateCalendar = calendar;
     RepoDC          = repoDC;
     SettC           = settC;
     TickSize        = tickSize;
     ValueC          = valueC;
     Xdt             = xdt;
     Ycm             = ycm;
     YieldCompFreq   = yieldCompFreq;
     YieldDC         = yieldDC;
     RollDay         = maturity.Day;   //provide an input for this.
     ValueDate       = SettlementDate; //default condition if not specified.
     Id              = name;
     Issuer          = issuerName;     //Does not handle PartyReference type -> only string!
     MaturityDate    = maturity;
     CouponFrequency = coupFreq;
     CouponType      = CouponTypeEnum.Fixed;
     InstrumentIds   = new List <InstrumentId> {
         InstrumentIdHelper.Parse(instrumentid)
     };
     Build();
 }
示例#3
0
 public CouponObject(
     string couponCode                 = null,
     string description                = null,
     DateTime?startDate                = null,
     DateTime?expirationDate           = null,
     decimal?discountPercent           = null,
     decimal?discountAmount            = null,
     bool?discountIncludesFreeShipping = null,
     CouponTypeEnum?couponType         = null,
     bool?deleted   = null,
     bool?couponSet = null)
 {
     CouponCode      = couponCode ?? string.Empty;
     Description     = description ?? string.Empty;
     ExpirationDate  = expirationDate ?? DateTime.MinValue;
     DiscountPercent = discountPercent ?? 0;
     DiscountAmount  = discountAmount ?? 0;
     DiscountIncludesFreeShipping = discountIncludesFreeShipping ?? false;
     StartDate  = startDate ?? DateTime.MaxValue;
     CouponType = couponType ?? CouponTypeEnum.GiftCard;
     Deleted    = deleted ?? false;
     CouponSet  = couponSet ?? false;
 }
示例#4
0
 /// <summary>
 /// Retrieve a list of coupons.
 /// </summary>
 /// <param name="Status">The comma separated string of status values to filter results.</param>
 /// <param name="Type">The comma separated string of type values to filter results</param>
 /// <param name="Heavy">Returns a heavy response for this method. Default: false</param>
 /// <param name="Extras">A comma separated string of additional attributes to return in the response.</param>
 /// <returns>List of all the coupons</returns>
 public List<Coupon> GetCoupons(CouponStatusEnum Status, CouponTypeEnum Type, string Heavy, string Extras)
 {
     CommunicationHelper ch = new CommunicationHelper();
     // SessionID [required], Associative, Callback, Extras, Heavy, Pretty, Status, Strict, Type
     var resp = ch.ExecuteMethod<CouponResponse>("smugmug.coupons.get", basic, "Extras", Extras, "Heavy", Heavy, "Status", Status, "Type", Type);
     if (resp.stat == "ok")
     {
         var temp = new List<Coupon>();
         temp.AddRange(resp.Coupons);
         return temp;
     }
     else
     {
         Console.WriteLine(resp.message);
         throw new SmugMugException(resp.code, resp.message, resp.method);
     }
 }
示例#5
0
 /// <summary>
 /// Retrieve a list of coupons (by Status and Type)
 /// </summary>
 /// <param name="Status">The comma separated string of status values to filter results.</param>
 /// <param name="Type">The comma separated string of type values to filter results</param>
 /// <returns>List of all the coupons</returns>
 public List<Coupon> GetCoupons(CouponStatusEnum Status, CouponTypeEnum Type)
 {
     return GetCoupons(Status, Type, "", "");
 }
示例#6
0
 /// <summary>
 /// Create a coupon (with extra attributes in the response)
 /// </summary>
 /// <param name="Code">The code for the coupon</param>
 /// <param name="Title">The title for the coupon</param>
 /// <param name="Type">The comma separated string of type values to filter results.</param>
 /// <param name="AlbumIDs">A comma separated string of AlbumIDs to restrict the coupon.</param>
 /// <param name="Extras">A comma separated string of additional attributes to return in the response</param>
 /// <returns>Coupon</returns>
 public Coupon CreateCoupon(string Code, string Title, CouponTypeEnum couponType, float Amount, string AlbumIDs, string Extras)
 {
     Coupon c = new Coupon();
     c.basic = basic;
     c.Code = Code;
     c.Title = Title;
     c.Amount = Amount;
     c.Type = couponType;
     c.CreateCoupon(AlbumIDs, Extras);
     return c;
 }
示例#7
0
 /// <summary>
 /// Create a coupon (basic requirements)
 /// </summary>
 /// <param name="Code">The code for the coupon</param>
 /// <param name="Title">The title for the coupon</param>
 /// <param name="Type">The comma separated string of type values to filter results.</param>
 /// <returns></returns>
 public Coupon CreateCoupon(string Code, string Title, CouponTypeEnum couponType, float Amount)
 {
     return CreateCoupon(Code, Title, couponType, Amount, "", "");
 }
示例#8
0
 /// <summary>
 /// Retrieve a list of coupons (by Status and Type)
 /// </summary>
 /// <param name="Status">The comma separated string of status values to filter results.</param>
 /// <param name="Type">The comma separated string of type values to filter results</param>
 /// <returns>List of all the coupons</returns>
 public async Task<List<Coupon>> GetCouponsAsync(CouponStatusEnum Status, CouponTypeEnum Type)
 {
     return await GetCouponsAsync(Status, Type, "", "");
 }
示例#9
0
 /// <summary>
 /// Create a coupon (with extra attributes in the response)
 /// </summary>
 /// <param name="Code">The code for the coupon</param>
 /// <param name="Title">The title for the coupon</param>
 /// <param name="couponType">The comma separated string of type values to filter results.</param>
 /// <param name="Amount">The amount for the coupon</param>
 /// <param name="AlbumIDs">A comma separated string of AlbumIDs to restrict the coupon.</param>
 /// <param name="Extras">A comma separated string of additional attributes to return in the response</param>
 /// <returns>Coupon</returns>
 public async Task<Coupon> CreateCouponAsync(string Code, string Title, CouponTypeEnum couponType, float Amount, string AlbumIDs, string Extras)
 {
     Coupon c = new Coupon();
     c.basic = basic;
     c.Code = Code;
     c.Title = Title;
     c.Type = couponType;
     c.Amount = Amount;
     return await c.CreateCouponAsync(AlbumIDs, Extras);
 }
示例#10
0
 /// <summary>
 /// Create a coupon (basic requirements)
 /// </summary>
 /// <param name="Code">The code for the coupon</param>
 /// <param name="Title">The title for the coupon</param>
 /// <param name="Amount">The amount for the coupon</param>
 /// <param name="couponType">The comma separated string of type values to filter results.</param>
 /// <returns></returns>
 public async Task<Coupon> CreateCouponAsync(string Code, string Title, CouponTypeEnum couponType, float Amount)
 {
     return await CreateCouponAsync(Code, Title, couponType, Amount, "", "");
 }
示例#11
0
 /// <summary>
 /// Retrieve a list of coupons.
 /// </summary>
 /// <param name="Status">The comma separated string of status values to filter results.</param>
 /// <param name="Type">The comma separated string of type values to filter results</param>
 /// <param name="Heavy">Returns a heavy response for this method. Default: false</param>
 /// <param name="Extras">A comma separated string of additional attributes to return in the response.</param>
 /// <returns>List of all the coupons</returns>
 public List<Coupon> GetCoupons(CouponStatusEnum Status, CouponTypeEnum Type, string Heavy, string Extras)
 {
     return GetCouponsAsync(Status, Type, Heavy, Extras).Result;
 }
示例#12
0
 /// <summary>
 /// Retrieve a list of coupons (by Status and Type)
 /// </summary>
 /// <param name="Status">The comma separated string of status values to filter results.</param>
 /// <param name="Type">The comma separated string of type values to filter results</param>
 /// <returns>List of all the coupons</returns>
 public List<Coupon> GetCoupons(CouponStatusEnum Status, CouponTypeEnum Type)
 {
     return GetCouponsAsync(Status, Type, "", "").Result;
 }
示例#13
0
 /// <summary>
 /// Create a coupon (with extra attributes in the response)
 /// </summary>
 /// <param name="Code">The code for the coupon</param>
 /// <param name="Title">The title for the coupon</param>
 /// <param name="couponType">The comma separated string of type values to filter results.</param>
 /// <param name="Amount">The amount for the coupon</param>
 /// <param name="AlbumIDs">A comma separated string of AlbumIDs to restrict the coupon.</param>
 /// <param name="Extras">A comma separated string of additional attributes to return in the response</param>
 /// <returns>Coupon</returns>
 public Coupon CreateCoupon(string Code, string Title, CouponTypeEnum couponType, float Amount, string AlbumIDs, string Extras)
 {
     return CreateCouponAsync(Code, Title, couponType, Amount, AlbumIDs, Extras).Result;
 }