示例#1
0
        public static ICardCoupon Choose(this CardCounponViewModel viewModel)
        {
            switch (viewModel.CardType)
            {
            case CardTypes.CASH:
                return(viewModel.Cash);

            case CardTypes.DISCOUNT:
                return(viewModel.Discount);

            case CardTypes.GENERAL_COUPON:
                return(viewModel.General);

            case CardTypes.GIFT:
                return(viewModel.Gift);

            case CardTypes.GROUPON:
                return(viewModel.Groupon);

            case CardTypes.MEMBER_CARD:
            {
                if (viewModel.MerberCard.SupplyBanlance)
                {
                    viewModel.MerberCard.BaseInfo.Merchant = null;
                }
                return(viewModel.MerberCard);
            }

            default:
                throw new NotSupportedException(viewModel.CardType.ToString());
            }
        }
示例#2
0
        public static T Choose <T>(this CardCounponViewModel viewModel) where T : class, ICardCoupon
        {
            switch (viewModel.CardType)
            {
            case CardTypes.CASH:
                return(viewModel.Cash as T);

            case CardTypes.DISCOUNT:
                return(viewModel.Discount as T);

            case CardTypes.GENERAL_COUPON:
                return(viewModel.General as T);

            case CardTypes.GIFT:
                return(viewModel.Gift as T);

            case CardTypes.GROUPON:
                return(viewModel.Groupon as T);

            case CardTypes.MEMBER_CARD:
                return(viewModel.MerberCard as T);

            default:
                throw new NotSupportedException(viewModel.CardType.ToString());
            }
        }
示例#3
0
        public static CardCounponModel Convert(this CardCounponViewModel viewModel, MerchantModel merchant)
        {
            var model = new CardCounponModel()
            {
                BrandName      = viewModel.Choose <ICardCoupon>().BaseInfo.Title,
                CreatedTime    = viewModel.CreatedTime,
                LastUpdateTime = DateTime.UtcNow.ToUnixStampDateTime(),
                ErrMsg         = string.Empty,
                Id             = viewModel.Id,
                Merchant       = merchant,
                Quantity       = (int)viewModel.Choose <ICardCoupon>().BaseInfo.Sku.Quantity,
                State          = viewModel.State,
                Type           = viewModel.CardType,
                WxNo           = viewModel.WxNo
            };

            viewModel.Choose <ICardCoupon>().AdvancedInfo.WitFixedSettings(viewModel.CardType);
            viewModel.Choose <ICardCoupon>().BaseInfo.WithFixedSettings(viewModel.CardType, merchant);

            model.CardCoupon = viewModel.Choose();
            model.CardCoupon.Set((ctx) =>
            {
                ctx.CardType = viewModel.CardType;
                ctx.CardId   = viewModel.WxNo;
            });
            var json = model.CardCoupon.SerializeToJson();

            return(model);
        }
示例#4
0
        public ActionResult EditMemberCard(CardCounponViewModel viewModel, string ReturnUrl)
        {
            if (this.Auth.GetAuthenticatedUser() == null)
            {
                return(this.RedirectLocal("/access/sign?signin=true"));
            }
            viewModel.MerberCard.WxActivate = true;
            viewModel.State = CardCouponStates.Editing;
            var merchant = this.Merchant.GetDefaultMerchant(viewModel.MerchantId);
            var result   = this.CardCoupon.SaveOrUpdate(viewModel.WithFixedSettings().Convert(merchant));

            return(this.RedirectLocal("/cards/coupon?datetime=" + DateTime.UtcNow.ToUnixStampDateTime()));
        }
示例#5
0
 public static CardCounponViewModel WithFixedSettings(this CardCounponViewModel viewModel)
 {
     switch (viewModel.CardType)
     {
     case CardTypes.MEMBER_CARD:
         //viewModel.MerberCard.CustomField1 = new CustomField()
         //{
         //    Url = "https://www.yourc.club/wap/level",
         //    NameType = "FIELD_NAME_TYPE_LEVEL",
         //    Name = "等级"
         //};
         viewModel.MerberCard.CustomField2 = new CustomField()
         {
             Url      = "https://www.yourc.club/wap/balance",
             NameType = "FIELD_NAME_TYPE_LEVEL",
             Name     = "余额"
         };
         break;
     }
     return(viewModel);
 }
示例#6
0
        public static CardCounponViewModel Convert(this CardCounponModel card)
        {
            var viewModel = new CardCounponViewModel()
            {
                Cash                 = card.CardCoupon.ToCardCoupon <CashCoupon>(),
                Discount             = card.CardCoupon.ToCardCoupon <DiscountCoupon>(),
                General              = card.CardCoupon.ToCardCoupon <GeneralCoupon>(),
                Groupon              = card.CardCoupon.ToCardCoupon <Groupon>(),
                Gift                 = card.CardCoupon.ToCardCoupon <GiftCoupon>(),
                MerberCard           = card.CardCoupon.ToCardCoupon <MemberCard>(),
                CreatedTime          = card.CreatedTime,
                MerchantId           = card.Merchant.Id,
                WxNo                 = card.WxNo,
                CardType             = card.Type,
                Id                   = card.Id,
                State                = card.State,
                SubMerchantBrandName = card.Merchant.BrandName,
            };

            return(viewModel);
        }