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()); } }
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()); } }
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); }
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())); }
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); }
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); }