private void UpdateCouponItems()
        {
            int[] currentItemIds = GetItemIds();
            if (EqualIdCollections(currentItemIds, _pendingItemIds))
            {
                return;
            }

            if (currentItemIds != null)
            {
                List <CouponItem> couponItems = new List <CouponItem>(CouponItem.GetAll(ActiveCoupon.Id));

                // Remove any in current, that doesn't exist in pending
                foreach (CouponItem existing in
                         from id in currentItemIds
                         where _pendingItemIds == null || !_pendingItemIds.Any(testId => testId == id)
                         select CouponItem.FindByItemId(couponItems, id))
                {
                    CouponItem.Delete(existing.Id);
                }
            }

            // Add any missing pending to the current
            if (_pendingItemIds != null)
            {
                foreach (int id in _pendingItemIds
                         .Where(id => !(currentItemIds != null && currentItemIds.Any(testId => testId == id))))
                {
                    // Add a new CouponCategory for this Coupon
                    CouponItem.Add(ActiveCoupon.Id, id);
                }
            }
        }
        public IHttpActionResult Create(OrderCM cm)
        {
            try
            {
                Order model = AutoMapper.Mapper.Map <OrderCM, Order>(cm);

                model.OrderDate = DateTime.Now.ToUniversalTime()
                                  .AddHours(ConstantDataManager.WorldTime.VIETNAM);
                model.Status = ConstantDataManager.OrderStatus.PENDING;
                model.UserId = CURRENT_USER_ID;

                _orderService.CreateOrder(model);
                _orderService.SaveOrderChanges();

                foreach (int couponItemId in cm.CouponItemIds)
                {
                    CouponItem coupon = _couponItemService.GetCouponItem(couponItemId);
                    coupon.OrderId = model.Id;
                    coupon.IsUsed  = true;
                    _couponItemService.UpdateCouponItem(coupon);
                    _couponItemService.SaveCouponItemChanges();
                }

                model = _orderService.GetOrder(o => o.Id == model.Id, o => o.CouponItems, o => o.OrderDetails);

                OrderVM result = AutoMapper.Mapper.Map <Order, OrderVM>(model);
                return(Ok(result));
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
예제 #3
0
        private bool HasRestrictions(Coupon coupon, TicketItem ticketItem)
        {
            Item item = Item.Get(ticketItem.ItemId);
            // Coupon Category Restrictions
            List <CouponCategory> cats = new List <CouponCategory>(CouponCategory.GetAll(coupon.Id));

            if ((cats.Count > 0) && coupon.IsExclusive &&
                CouponCategory.FindByCategoryId(cats, item.CategoryId) == null)
            {
                return(true);
            }
            if ((cats.Count > 0) && !coupon.IsExclusive &&
                CouponCategory.FindByCategoryId(cats, item.CategoryId) != null)
            {
                return(true);
            }
            // Coupon Item Restrictions
            List <CouponItem> items = new List <CouponItem>(CouponItem.GetAll(coupon.Id));

            if ((items.Count > 0) && coupon.IsExclusive &&
                CouponItem.FindByItemId(items, item.Id) == null)
            {
                return(true);
            }
            if ((items.Count > 0) && !coupon.IsExclusive &&
                CouponItem.FindByItemId(items, item.Id) != null)
            {
                return(true);
            }
            return(false);
        }
예제 #4
0
        public async Task <IActionResult> PutCouponItem(long id, CouponItem CouponItem)
        {
            if (id != CouponItem.Id)
            {
                return(BadRequest());
            }

            _context.Entry(CouponItem).State = EntityState.Modified;

            try
            {
                SetWinningCoupon(CouponItem);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CouponItemExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public IHttpActionResult Update(OrderUM um)
        {
            try
            {
                Order model = AutoMapper.Mapper.Map <OrderUM, Order>(um);
                _orderService.UpdateOrder(model);
                _orderService.SaveOrderChanges();

                foreach (int couponItemId in um.CouponItemIds)
                {
                    CouponItem coupon = _couponItemService.GetCouponItem(couponItemId);
                    coupon.OrderId = model.Id;
                    coupon.IsUsed  = true;
                    _couponItemService.UpdateCouponItem(coupon);
                    _couponItemService.SaveCouponItemChanges();
                }

                OrderVM result = AutoMapper.Mapper.Map <Order, OrderVM>(model);
                return(Ok(result));
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
        /// <inheritdoc />
        /// <summary>
        /// Create a coupon item SKUs have to be unique in the entire store. &lt;br&gt;&lt;br&gt;&lt;b&gt;Permissions Needed:&lt;/b&gt; COUPONS_ADMIN
        /// </summary>
        /// <param name="cascade">Whether to cascade group changes, such as in the limited gettable behavior. A 400 error will return otherwise if the group is already in use with different values.</param>
        /// <param name="couponItem">The coupon item object</param>
        public void CreateCouponItem(bool?cascade, CouponItem couponItem)
        {
            mWebCallEvent.WebPath = "/store/coupons";
            if (!string.IsNullOrEmpty(mWebCallEvent.WebPath))
            {
                mWebCallEvent.WebPath = mWebCallEvent.WebPath.Replace("{format}", "json");
            }

            mWebCallEvent.HeaderParams.Clear();
            mWebCallEvent.QueryParams.Clear();
            mWebCallEvent.AuthSettings.Clear();
            mWebCallEvent.PostBody = null;

            if (cascade != null)
            {
                mWebCallEvent.QueryParams["cascade"] = KnetikClient.ParameterToString(cascade);
            }

            mWebCallEvent.PostBody = KnetikClient.Serialize(couponItem); // http body (model) parameter

            // authentication settings
            mWebCallEvent.AuthSettings.Add("oauth2_client_credentials_grant");

            // authentication settings
            mWebCallEvent.AuthSettings.Add("oauth2_password_grant");

            // make the HTTP request
            mCreateCouponItemStartTime = DateTime.Now;
            mWebCallEvent.Context      = mCreateCouponItemResponseContext;
            mWebCallEvent.RequestType  = KnetikRequestType.POST;

            KnetikLogger.LogRequest(mCreateCouponItemStartTime, "CreateCouponItem", "Sending server request...");
            KnetikGlobalEventSystem.Publish(mWebCallEvent);
        }
예제 #7
0
        protected void BtnCoupon_Click(object sender, EventArgs e)
        {
            if (this.Page.IsValid)
            {
                CouponItemInfo couponItemInfo = CouponItem.GetCouponItemInfo(this.TxtCouponNum.Text, PEContext.Current.User.UserId);
                if (couponItemInfo.IsNull)
                {
                    this.LblUseCouponMsg.Text = "对不起,不存在该优惠券,或者该优惠券您没有使用权限!";
                }
                else
                {
                    decimal    totalMoney     = DataConverter.CDecimal(this.HdnTotalMoney.Value);
                    CouponInfo couponInfoById = Coupon.GetCouponInfoById(couponItemInfo.CouponId);
                    string     str            = "";
                    switch (Coupon.CheckUsePurview(couponInfoById, couponItemInfo, totalMoney, this.FlowInfo.ShoppingCartId))
                    {
                    case 1:
                        str = "对不起,该优惠券使用次数已经超过限用次数,不能再使用!";
                        break;

                    case 2:
                        str = "对不起,该优惠券已经过期,不能再使用!";
                        break;

                    case 3:
                        str = "对不起,使用该优惠券需要订单总额达到" + couponInfoById.OrderTotalMoney.ToString("0.00") + "元!";
                        break;

                    case 4:
                    case 5:
                        str = "对不起,需购买指定的商品才能使用该优惠券!";
                        break;
                    }
                    if (!string.IsNullOrEmpty(str))
                    {
                        this.LblUseCouponMsg.Text = str;
                    }
                    else
                    {
                        this.LblUseCouponMsg.Text      = "使用" + couponInfoById.CouponName + ",面值为" + couponInfoById.Money.ToString("0.00") + "元";
                        this.LblUseCouponMsg.ForeColor = Color.Blue;
                        this.ShoppingCart1.CouponMoney = couponInfoById.Money;
                        this.LbtnCancelCoupon.Visible  = true;
                        this.HdnCouponID.Value         = couponInfoById.CouponId.ToString();
                    }
                }
                this.ShoppingCart1.UseCoupon   = true;
                this.ShoppingCart1.CartId      = this.FlowInfo.ShoppingCartId;
                this.ShoppingCart1.ZipCode     = this.FlowInfo.ZipCode;
                this.ShoppingCart1.PaymentType = this.FlowInfo.PaymentType;
                this.ShoppingCart1.DeliverType = this.FlowInfo.DeliverType;
                this.ShoppingCart1.NeedInvoice = this.FlowInfo.NeedInvoice;
            }
        }
        private void UpdateCoupon()
        {
            if (editorControl.UpdateCoupon())
            {
                SetEditMode(false);
                if (listBox1.SelectedIndex >= 0)
                {
                    var item = (FormattedListBoxItem)listBox1.SelectedItem;
                    item.Set(editorControl.ActiveCoupon, editorControl.ActiveCoupon.Description);
                }
                else
                {
                    var listItem = new FormattedListBoxItem(
                        editorControl.ActiveCoupon,
                        editorControl.ActiveCoupon.Description, true);
                    listBox1.Items.Add(listItem);
                    listBox1.SelectedItem = listItem;
                    listBox1.ScrollIntoView(listItem);
                    buttonDelete.IsEnabled = true;
                }
            }
            if (editorControl.ActiveCoupon != null)
            {
                var couponCategories =
                    new List <CouponCategory>(CouponCategory.GetAll(editorControl.ActiveCoupon.Id));
                foreach (int id in editorControl.couponCategorySelectionControl.SelectedCategoryIds
                         .Where(id => CouponCategory.FindByCategoryId(couponCategories, id) == null))
                {
                    CouponCategory.Add(editorControl.ActiveCoupon.Id, id);
                }
                foreach (CouponCategory category in couponCategories
                         .Where(category => !editorControl.couponCategorySelectionControl.SelectedCategoryIds
                                .Contains(category.CategoryId)))
                {
                    CouponCategory.Delete(editorControl.ActiveCoupon.Id, category.CategoryId);
                }

                var couponItems =
                    new List <CouponItem>(CouponItem.GetAll(editorControl.ActiveCoupon.Id));
                foreach (int id in editorControl.couponItemSelectionControl.SelectedItemIds
                         .Where(id => CouponItem.FindByItemId(couponItems, id) == null))
                {
                    CouponItem.Add(editorControl.ActiveCoupon.Id, id);
                }
                foreach (CouponItem item in couponItems
                         .Where(item => !editorControl.couponCategorySelectionControl.SelectedCategoryIds
                                .Contains(item.ItemId)))
                {
                    CouponItem.Delete(editorControl.ActiveCoupon.Id, item.ItemId);
                }
            }
        }
예제 #9
0
 private static void SetWinningCoupon(CouponItem CouponItem)
 {
     switch (CouponItem.Code)
     {
     case "1087":
     case "2007":
     case "3151":
     case "4847":
     case "7295":
         CouponItem.Win = true;
         break;
     }
 }
예제 #10
0
        public async Task <ActionResult <CouponItem> > PostCouponItem(CouponItem CouponItem)
        {
            if (string.IsNullOrEmpty(CouponItem.Name) || string.IsNullOrEmpty(CouponItem.Code))
            {
                return(null);
            }

            SetWinningCoupon(CouponItem);

            _context.CouponItems.Add(CouponItem);
            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetCouponItem), new { id = CouponItem.Id }, CouponItem));
        }
예제 #11
0
        /// <summary>
        /// Adds a coupon to an existing basket.
        /// </summary>
        /// <param name="basketId">A String value containing the basket ID.</param>
        /// <param name="couponItem">A CouponItem document instance containing the coupon.</param>
        /// <returns>A Basket document instance containing the updated basket.</returns>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="basketId"/> is null or empty.</exception>
        /// <exception cref="ApiException">Thrown when a <see cref="Fault"/> document is returned.</exception>
        public Basket AddCouponItem(string basketId, CouponItem couponItem)
        {
            if (string.IsNullOrEmpty(basketId))
            {
                throw new ArgumentNullException(nameof(basketId), Properties.Resources.Error_Missing_Basket_ID);
            }

            var couponUrl = $"{Configuration.ShopApiConfiguration.Url}{BASE_PATH}{basketId}/coupons";

            var headers = GetWebHeaders(couponUrl, GetOcapiJwtToken());

            var couponResponse = ServiceManager.HttpPost <Basket>(couponUrl, headers, GetBytes(couponItem));

            return(couponResponse);
        }
예제 #12
0
        public IHttpActionResult Create(UserCouponPackageCM cm)
        {
            try
            {
                UserCouponPackage model = AutoMapper.Mapper.Map <UserCouponPackageCM, UserCouponPackage>(cm);
                model.PurchasedDate = DateTime.Now; // Get Current time
                model.UserId        = CURRENT_USER_ID;

                CouponPackage package = _couponPackageService.GetCouponPackage(model.CouponPackageId);

                // set user package property
                model.DrinkQuantity = package.DrinkQuantity;
                model.Price         = package.Price;

                // Current hour, minute, second
                int cHour   = model.PurchasedDate.Hour;
                int cMinute = model.PurchasedDate.Minute;
                int cSecond = model.PurchasedDate.Second;

                // CREATE 30 coupon item for this user package
                model.CouponItems = new List <CouponItem>();
                for (int i = 0; i < 30; i++)
                {
                    CouponItem newCouponItem = new CouponItem()
                    {
                        IsUsed      = false,
                        DateExpired = model.PurchasedDate.AddDays(i)
                                      .AddHours(24 - cHour - 1)
                                      .AddMinutes(60 - cMinute - 1)
                                      .AddSeconds(60 - cSecond - 1),
                        OrderId = null
                    };
                    model.CouponItems.Add(newCouponItem);
                }
                // CREATE USER PACKAGE
                _userCouponPackageService.CreateUserCouponPackage(model);
                _userCouponPackageService.SaveUserCouponPackageChanges();

                UserCouponPackageVM result = AutoMapper.Mapper.Map <UserCouponPackage, UserCouponPackageVM>(model);
                return(Ok(result));
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
        private int[] GetItemIds()
        {
            if (ActiveCoupon == null)
            {
                return(null);
            }
            List <int> selected =
                CouponItem.GetAll(ActiveCoupon.Id)
                .Select(item => item.ItemId).ToList();

            if (selected.Count == 0)
            {
                return(null);
            }
            selected.Sort();
            return(selected.ToArray());
        }
예제 #14
0
        public IHttpActionResult Create(UserCouponPackageCM cm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                UserCouponPackage model = AutoMapper.Mapper.Map <UserCouponPackageCM, UserCouponPackage>(cm);
                model.CouponItems   = new List <CouponItem>();
                model.PurchasedDate = DateTime.Now;

                // Current hour, minute, second
                int cHour   = model.PurchasedDate.Hour;
                int cMinute = model.PurchasedDate.Minute;
                int cSecond = model.PurchasedDate.Second;

                // CREATE 30 coupon item for this user package
                for (int i = 1; i <= 30; i++)
                {
                    CouponItem newCouponItem = new CouponItem()
                    {
                        IsUsed      = false,
                        DateExpired = model.PurchasedDate.AddDays(i)
                                      .AddHours(24 - cHour - 1)
                                      .AddMinutes(60 - cMinute - 1)
                                      .AddSeconds(60 - cSecond - 1),
                        OrderId = null
                    };
                    model.CouponItems.Add(newCouponItem);
                }
                // CREATE USER PACKAGE
                _userCouponPackageService.CreateUserCouponPackage(model);
                _userCouponPackageService.SaveUserCouponPackageChanges();

                UserCouponPackageVM result = AutoMapper.Mapper.Map <UserCouponPackage, UserCouponPackageVM>(model);
                return(Ok(result));
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
        /// <inheritdoc />
        /// <summary>
        /// Update a coupon item &lt;b&gt;Permissions Needed:&lt;/b&gt; COUPONS_ADMIN
        /// </summary>
        /// <param name="id">The id of the coupon</param>
        /// <param name="cascade">Whether to cascade group changes, such as in the limited gettable behavior. A 400 error will return otherwise if the group is already in use with different values.</param>
        /// <param name="couponItem">The coupon item object</param>
        public void UpdateCouponItem(int?id, bool?cascade, CouponItem couponItem)
        {
            // verify the required parameter 'id' is set
            if (id == null)
            {
                throw new KnetikException(400, "Missing required parameter 'id' when calling UpdateCouponItem");
            }

            mWebCallEvent.WebPath = "/store/coupons/{id}";
            if (!string.IsNullOrEmpty(mWebCallEvent.WebPath))
            {
                mWebCallEvent.WebPath = mWebCallEvent.WebPath.Replace("{format}", "json");
            }
            mWebCallEvent.WebPath = mWebCallEvent.WebPath.Replace("{" + "id" + "}", KnetikClient.ParameterToString(id));

            mWebCallEvent.HeaderParams.Clear();
            mWebCallEvent.QueryParams.Clear();
            mWebCallEvent.AuthSettings.Clear();
            mWebCallEvent.PostBody = null;

            if (cascade != null)
            {
                mWebCallEvent.QueryParams["cascade"] = KnetikClient.ParameterToString(cascade);
            }

            mWebCallEvent.PostBody = KnetikClient.Serialize(couponItem); // http body (model) parameter

            // authentication settings
            mWebCallEvent.AuthSettings.Add("oauth2_client_credentials_grant");

            // authentication settings
            mWebCallEvent.AuthSettings.Add("oauth2_password_grant");

            // make the HTTP request
            mUpdateCouponItemStartTime = DateTime.Now;
            mWebCallEvent.Context      = mUpdateCouponItemResponseContext;
            mWebCallEvent.RequestType  = KnetikRequestType.PUT;

            KnetikLogger.LogRequest(mUpdateCouponItemStartTime, "UpdateCouponItem", "Sending server request...");
            KnetikGlobalEventSystem.Publish(mWebCallEvent);
        }
예제 #16
0
        public static void parseUtl_market(string url, UrlItem urlItem)
        {
            string redirectUrl = ApiUtil.redictUrl(url);

            if (!string.IsNullOrEmpty(redirectUrl))
            {
                string me = StringUtil.subString(redirectUrl, 0, "me=", "&pid=");
                if (!string.IsNullOrEmpty(me))
                {
                    string str = "https://uland.taobao.com/cp/coupon?me={me}";
                    str = str.Replace("{me}", me);

                    WebClient webClient = new WebClient();
                    webClient.Headers.Add("Accept", "*/*");
                    webClient.Headers.Add("X-Requested-With", "XMLHttpRequest");
                    webClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36");
                    webClient.Headers.Add("Accept-Encoding", "gzip, deflate, sdch");
                    webClient.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8");
                    webClient.Headers.Add("Referer", url);
                    //webClient.Headers.Add("Cookie", string.Concat("thw=cn; ctoken=", string_3));
                    string str2     = "";
                    byte[] numArray = webClient.DownloadData(str);
                    str2 = (!"gzip".Equals(webClient.ResponseHeaders["Content-Encoding"]) ? Encoding.UTF8.GetString(numArray) : StringUtil.byte_to_str(numArray, Encoding.UTF8));

                    string   str3      = StringUtil.subString(str2, 0, "\"title\":\"", "\",");
                    string   str4      = StringUtil.subString(str2, 0, "\"discountPrice\":", ",");
                    string   str5      = StringUtil.subString(str2, 0, "\"amount\":", ",");
                    string[] strArrays = new string[] { str3, "原价", str4, "元,抢券立省", str5, "元" };

                    string num_iid = StringUtil.subString(str2, 0, "\"itemId\":", ",");
                    urlItem.num_iid = num_iid;

                    string     money      = StringUtil.subString(str2, 0, "\"amount\":", ",");
                    CouponItem couponItem = new CouponItem();
                    couponItem.money     = (int)double.Parse(money);
                    couponItem.leftCount = 100000;
                    urlItem.couponItem   = couponItem;
                }
            }
        }
예제 #17
0
        protected void BtnSubmitOrder_Click(object sender, EventArgs e)
        {
            OrderFlowInfo flowInfo = this.FlowInfo;

            flowInfo.OrderId   = Order.GetMaxId() + 1;
            flowInfo.BeginDate = DateTime.Today;
            UserInfo usersByUserName = Users.GetUsersByUserName(PEContext.Current.User.UserName);
            int      category        = PaymentType.GetPaymentTypeById(DataConverter.CLng(this.HdnPaymentTypeId.Value)).Category;
            int      couponId        = DataConverter.CLng(this.HdnCouponID.Value);

            switch (Order.Add(flowInfo, usersByUserName, flowInfo.ShoppingCartId, couponId, this.ShoppingCart1.TrueTotalMoney))
            {
            case 1:
            case 2:
            {
                string continueBuy = SiteConfig.ShopConfig.ContinueBuy;
                if (string.IsNullOrEmpty(continueBuy))
                {
                    continueBuy = "~/Category.aspx?id=4";
                }
                DynamicPage.WriteErrMsg("<li>您好!目前您的购物车中没有任何商品,点击返回上一页继续购物?</li>", continueBuy);
                return;
            }

            case 0x63:
                if (couponId > 0)
                {
                    CouponItem.AddUseTimes(this.TxtCouponNum.Text, PEContext.Current.User.UserId);
                }
                switch (category)
                {
                case 1:
                    base.Response.Redirect("../PayOnline/PayOnline.aspx?AddOrder=success&OrderID=" + flowInfo.OrderId.ToString() + "&PayPlatformId=" + this.HdnPayPlatformId.Value);
                    return;
                }
                base.Response.Redirect("OrderSuccess.aspx?OrderID=" + flowInfo.OrderId.ToString());
                return;
            }
        }
예제 #18
0
    public static CouponItem get_coupon(string coupon_url, String num_iid, String pid, out string money)
    {
        money = "";
        CouponItem class2 = null;

        if (!(coupon_url.Contains("coupon") && coupon_url.Contains("taobao.com")))
        {
            coupon_url = get_redirect_url(coupon_url, coupon_url);
        }
        coupon_url = HttpUtility.UrlDecode(coupon_url);
        coupon_url = coupon_url.Replace("seller_id=", "sellerId=").Replace("activity_id=", "activityId=");
        string seller_id   = StringUtil.subString(coupon_url, 0, "sellerId=", "&");
        string activity_id = StringUtil.subString(coupon_url, 0, "activityId=", "&");

        if (!string.IsNullOrEmpty(seller_id) &&
            !string.IsNullOrEmpty(activity_id) &&
            !string.IsNullOrEmpty(num_iid) &&
            !string.IsNullOrEmpty(pid))
        {
            class2 = new CouponItem();
            string out_log;
            string ctoken = AlimamaUtil.smethod_61(activity_id, num_iid, pid, "1", out out_log);
            string str1   = AlimamaUtil.smethod_62(ctoken, activity_id, num_iid, pid, "1", out out_log, out money);
            try
            {
                class2.money     = (int)double.Parse(money);
                class2.leftCount = 100000;
            }
            catch
            {
                class2.money = 0;
            }
            return(class2);
        }

        string    str3    = "http://shop.m.taobao.com/shop/coupon.htm?seller_id={seller_id}&activity_id={activity_id}";
        string    address = str3.Replace("{seller_id}", seller_id).Replace("{activity_id}", activity_id);
        WebClient client  = new WebClient();

        client.Headers.Add("user-agent", "Mozilla/5.0 (iPad; U; CPU OS 3_2_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B500 Safari/531.21.10");
        byte[] buffer = client.DownloadData(address);
        string str5   = "";
        string str6   = client.ResponseHeaders["Content-Encoding"];

        if ("gzip".Equals(str6))
        {
            str5 = GzipUtil.zip_to_string(buffer, Encoding.UTF8);
        }
        else
        {
            str5 = Encoding.UTF8.GetString(buffer);
        }
        class2 = new CouponItem();
        if (!str5.Contains("该优惠券不存在或者已经过期"))
        {
            int index  = str5.IndexOf("元优惠券");
            int length = 1;
            while (regex_0.IsMatch(str5.Substring(index - length, length)))
            {
                length++;
            }
            length--;
            try
            {
                class2.money = int.Parse(str5.Substring(index - length, length));
            }
            catch
            {
                class2.money = 0;
            }
            try
            {
                class2.leftCount = int.Parse(StringUtil.subString(str5, 0, "<span class=\"rest\">", "</span>"));
            }
            catch
            {
                class2.leftCount = 0;
            }
            try
            {
                class2.receiveCount = int.Parse(StringUtil.subString(str5, 0, "<span class=\"count\">", "</span>"));
            }
            catch
            {
                class2.receiveCount = 0;
            }
            class2.endTime = StringUtil.subString(str5, 0, "<dd>有效期:", "</dd>");
        }
        return(class2);
    }
예제 #19
0
 private int[] GetItemIds(Coupon value)
 {
     return(CouponItem.GetAll(value.Id).Select(item => item.ItemId).ToArray());
 }
예제 #20
0
        private void InitializeAvailableCoupons()
        {
            List <Coupon>         allCoupons    = new List <Coupon>(Coupon.GetAll());
            List <CouponCategory> allCategories = new List <CouponCategory>(CouponCategory.GetAll());
            List <CouponItem>     allItems      = new List <CouponItem>(CouponItem.GetAll());

            listBoxAvailable.Items.Clear();
            foreach (Coupon coupon in allCoupons)
            {
                if (!coupon.IsActive)
                {
                    continue;
                }
                List <CouponCategory> couponCategories =
                    new List <CouponCategory>(CouponCategory.FindAllByCouponId(allCategories, coupon.Id));
                List <CouponItem> couponItems =
                    new List <CouponItem>(CouponItem.FindAllByCouponId(allItems, coupon.Id));

                // Check for applied coupons and exclude them
                if ((from FormattedListBoxItem item in listBoxApplied.Items
                     select(Coupon) item.ReferenceObject)
                    .Any(appliedCoupon => appliedCoupon.Id == coupon.Id))
                {
                    continue;
                }

                // Add applicable coupons
                bool add = false;
                if (coupon.ApplyToAll)
                {
                    add = true;
                }
                else if ((SelectedTicketItem == null) && (couponItems.Count == 0) && (couponCategories.Count == 0))
                {
                    add = true;
                }
                else if (SelectedTicketItem != null)
                {
                    Category category = Category.Get(SelectedItem.CategoryId);
                    if (coupon.IsExclusive)
                    {
                        HasRestrictions(coupon, SelectedTicketItem);

                        if (couponItems.Any(couponItem => SelectedTicketItem.ItemId == couponItem.ItemId))
                        {
                            add = true;
                        }
                        if (couponCategories.Any(couponCategory => category.Id == couponCategory.CategoryId))
                        {
                            add = true;
                        }
                    }
                    else
                    {
                        bool found = couponItems.Any(couponItem => SelectedTicketItem.ItemId == couponItem.ItemId) ||
                                     couponCategories.Any(couponCategory => category.Id == couponCategory.CategoryId);
                        if (!found)
                        {
                            add = true;
                        }
                    }
                }
                if (add)
                {
                    AddAvailable(coupon);
                }
            }
        }