Пример #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            return;
        }
        try
        {
            var queryString = HttpContext.Current.Request.QueryString;
            if (queryString.Count > 0 && !string.IsNullOrEmpty(queryString["redirect"]))
            {
                RedirectUri = GetRedirectUriFromQueryString(queryString);
            }
            else
            {
                RedirectUri = string.Format("/Index.aspx?lang={0}", Language);
                if (HasSession)
                {
                    Response.Redirect(RedirectUri, false);
                }
            }
        }
        catch (Exception ex)
        {
        }

        lblUsername.Text = RewardsHelper.GetTranslation(TranslationKeys.Label.Username);
        lblPassword.Text = RewardsHelper.GetTranslation(TranslationKeys.Label.Password);
        lblCaptcha.Text  = RewardsHelper.GetTranslation(TranslationKeys.Label.Captcha);
        btnSubmit.Text   = RewardsHelper.GetTranslation(TranslationKeys.Label.Login);
        txtUsername.Focus();
        lblRegister.Text = HttpUtility.HtmlDecode(RewardsHelper.GetTranslation(TranslationKeys.Label.Register));
    }
Пример #2
0
 private void InitFields()
 {
     #region fields
     const string colon = ":";
     lbcat.Text     = RewardsHelper.GetTranslation(TranslationKeys.Redemption.Category) + colon;
     lbproduct.Text = RewardsHelper.GetTranslation(TranslationKeys.Redemption.Product) + colon;
     lbcurr.Text    = RewardsHelper.GetTranslation(TranslationKeys.Redemption.Currency) + colon;
     lbpoint.Text   = RewardsHelper.GetTranslation(TranslationKeys.Label.Points) + colon;
     lbperiod.Text  = RewardsHelper.GetTranslation(TranslationKeys.Redemption.Delivery);
     lbqty.Text     = RewardsHelper.GetTranslation(TranslationKeys.Redemption.Quantity) + colon;
     lbaccount.Text = RewardsHelper.GetTranslation(TranslationKeys.Redemption.Account) + colon;
     tbRName.Attributes.Add("PLACEHOLDER", RewardsHelper.GetTranslation(TranslationKeys.Redemption.EnterName));
     tbAddress.Attributes.Add("PLACEHOLDER", RewardsHelper.GetTranslation(TranslationKeys.Redemption.EnterAddress));
     tbPostal.Attributes.Add("PLACEHOLDER", RewardsHelper.GetTranslation(TranslationKeys.Redemption.EnterPostal));
     tbCity.Attributes.Add("PLACEHOLDER", RewardsHelper.GetTranslation(TranslationKeys.Redemption.EnterCity));
     tbCountry.Attributes.Add("PLACEHOLDER", RewardsHelper.GetTranslation(TranslationKeys.Redemption.EnterCountry));
     tbContact.Attributes.Add("PLACEHOLDER", RewardsHelper.GetTranslation(TranslationKeys.Redemption.EnterContactNumber));
     txtBoxRemarks.Attributes.Add("PLACEHOLDER", RewardsHelper.GetTranslation(TranslationKeys.Redemption.EnterRemarks));
     nameLabel.Text    = RewardsHelper.GetTranslation(TranslationKeys.Label.Name);
     addressLabel.Text = RewardsHelper.GetTranslation(TranslationKeys.Label.Address);
     postalLabel.Text  = RewardsHelper.GetTranslation(TranslationKeys.Label.Postal);
     cityLabel.Text    = RewardsHelper.GetTranslation(TranslationKeys.Label.City);
     countryLabel.Text = RewardsHelper.GetTranslation(TranslationKeys.Label.Country);
     contactLabel.Text = RewardsHelper.GetTranslation(TranslationKeys.Label.ContactNumber);
     redeemButton.Text = RewardsHelper.GetTranslation(TranslationKeys.Redemption.RedeemNow);
     remarksLabel.Text = RewardsHelper.GetTranslation(TranslationKeys.Label.Remarks);
     if ((ProductTypeEnum)int.Parse(ProductType) == ProductTypeEnum.Wishlist)
     {
         remarksLabel.Visible  = true;
         txtBoxRemarks.Visible = true;
     }
     redeemButton.Visible = true;
     #endregion
 }
Пример #3
0
    protected override void SetLabels()
    {
        #region labels
        if (!HasSession)
        {
            return;
        }

        if (string.IsNullOrEmpty(MemberSession.FullName))
        {
            usernameLabel.Visible = false;
        }
        else
        {
            usernameLabel.InnerText = UserSessionInfo.MemberCode;
        }
        var pointsLabelText = RewardsHelper.GetTranslation(TranslationKeys.Label.Points);
        var stringBuilder   = new StringBuilder();

        stringBuilder.Append(pointsLabelText)
        .Append(": ")
        .Append(MemberRewardsInfo != null ? Convert.ToString(MemberRewardsInfo.CurrentPoints) : "0");
        pointsLabel.InnerText = stringBuilder.ToString();

        var pointLevelLabelText = RewardsHelper.GetTranslation(TranslationKeys.Label.PointLevel);
        stringBuilder = new StringBuilder();
        stringBuilder.Append(pointLevelLabelText)
        .Append(" ")
        .Append(MemberRewardsInfo != null ? Convert.ToString(MemberRewardsInfo.CurrentPointLevel) : "0");
        pointLevelLabel.InnerText = stringBuilder.ToString();
        divLvl.Visible            = true;
    }
Пример #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        #region Logout
        if (string.Compare(Convert.ToString(RouteData.DataTokens["logout"]), "true", true) == 0)
        {
            // Do logout logic here
            CookieHelpers.ClearCookies();
            Response.Redirect(string.Format("/Default.aspx?lang={0}", Language), false);
            return;
        }
        if (string.Compare(Convert.ToString(RouteData.DataTokens["expire"]), "true", true) == 0)
        {
            AlertMessage = RewardsHelper.GetTranslation(TranslationKeys.Errors.SessionExpired);
        }
        if (string.Compare(Convert.ToString(RouteData.DataTokens["invalid"]), "true", true) == 0)
        {
            AlertMessage = RewardsHelper.GetTranslation(TranslationKeys.Errors.SessionExpired);
        }
        #endregion

        Language = HttpContext.Current.Request.QueryString["lang"];
        if (string.IsNullOrEmpty(Language))
        {
            Response.Redirect("/Lang.aspx", false);
            return;
        }
        if (IsVipDomain)
        {
            Response.Redirect("/_Secure/VIP/login.aspx", true);
        }
    }
Пример #5
0
        private static void SendRewards(ArenaTeamMember member, bool win)
        {
            ItemInstance SpInstance = null;

            if (member.Session.Character.Inventory != null && member.Session.Character.UseSp)
            {
                SpInstance = (member.Session.Character.Inventory.LoadBySlotAndType((byte)EquipmentType.Sp, InventoryType.Wear));
            }
            if (win)
            {
                member.Session.Character.GetXp(RewardsHelper.ArenaXpReward(member.Session.Character.Level), false);
                member.Session.Character.GetJobExp(RewardsHelper.ArenaXpReward(SpInstance != null ? SpInstance.SpLevel : member.Session.Character.JobLevel), false);
                member.Session.Character.GetReputation(500);
                member.Session.Character.GiftAdd(2800, 1);
                member.Session.Character.GetGold(member.Session.Character.Level * 1000);
                member.Session.Character.TalentWin++;
            }
            else
            {
                member.Session.Character.GetXp(RewardsHelper.ArenaXpReward(member.Session.Character.Level) / 2, false);
                member.Session.Character.GetJobExp(RewardsHelper.ArenaXpReward(SpInstance != null ? SpInstance.SpLevel : member.Session.Character.JobLevel) / 2, false);
                member.Session.Character.GetReputation(200);
                member.Session.Character.GiftAdd(2801, 3);
                member.Session.Character.GetGold(member.Session.Character.Level * 500);
                member.Session.Character.TalentLose++;
            }
        }
Пример #6
0
    protected override void SetLabels()
    {
        #region labels
        if (!HasSession)
        {
            return;
        }

        if (string.IsNullOrEmpty(MemberSession.FullName))
        {
            usernameLabel.Visible = false;
        }
        else
        {
            usernameLabel.InnerText = UserSessionInfo.MemberCode;
        }

        pointsLabel.InnerText = string.Format("{0}: {1}",
                                              RewardsHelper.GetTranslation(TranslationKeys.Label.Points),
                                              MemberRewardsInfo != null ? Convert.ToString(MemberRewardsInfo.CurrentPoints) : "0");
        pointLevelLabel.InnerText = string.Format("{0} {1}",
                                                  RewardsHelper.GetTranslation(TranslationKeys.Label.PointLevel),
                                                  MemberRewardsInfo != null ? Convert.ToString(MemberRewardsInfo.CurrentPointLevel) : "0");
        divLevel.Visible = true;
        #endregion
    }
Пример #7
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!HasSession)
     {
         Response.Redirect(string.Format("/Default.aspx?lang={0}", Language), true);
     }
     PageTitle = RewardsHelper.GetTranslation(TranslationKeys.SpinWheel.WheelLabel, Language);
 }
Пример #8
0
    protected async void Page_Load(object sender, EventArgs e)
    {
        SetLabels();
        #region Catalogue
        Listview1.DataSource = await RewardsHelper.GetCatalogueSet(UserSessionInfo);

        Listview1.DataBind();
        #endregion
    }
Пример #9
0
    private async void RefreshPoints()
    {
        if (MemberRewardsInfo == null)
        {
            MemberRewardsInfo = new MemberRewardsInfo();
        }
        MemberRewardsInfo.CurrentPoints = await MembersHelper.GetRewardsPoints(UserSessionInfo);

        MemberRewardsInfo.CurrentPointLevel = await RewardsHelper.GetPointLevel(MemberSession.MemberId);

        SetLabels();
        SetProductInfo();
    }
Пример #10
0
    private async void SetAccountSummary(string memberCode)
    {
        Title   = RewardsHelper.GetTranslation(TranslationKeys.Redemption.AccountSummary);
        DataSet = await RewardsHelper.GetAccountSummary(memberCode);

        if (DataSet == null)
        {
            lblNoRecord.Visible = true;
        }
        else
        {
            lblNoRecord.Visible        = false;
            ListviewHistory.DataSource = DataSet.Tables[0];
            ListviewHistory.DataBind();
        }
    }
Пример #11
0
    private async void GetProductDetails()
    {
        var productId = HttpContext.Current.Request.QueryString.Get("productId");

        if (string.IsNullOrEmpty(productId))
        {
            Response.Redirect("/Catalogue?categoryId=0&sortBy=2", false);
            return;
        }
        var process = await RewardsHelper.GetProductDetails(UserSessionInfo, productId);

        ProductDetails = process == null || process.Data == null ? new ProductDetails() : (ProductDetails)process.Data;
        SetProductInfo();
        ProductDetails.ProductDescription = HttpUtility.HtmlEncode(ProductDetails.ProductDescription);
        ProductDetailsField.Value         = Common.SerializeObject(ProductDetails);
        InitFields();
    }
Пример #12
0
    private async void SetCatalogueList()
    {
        try
        {
            var catalogueSet = await RewardsHelper.GetCatalogueSet(UserSessionInfo);

            CategoryListView.DataSource = catalogueSet.Tables[0];
            var dataTable  = (DataTable)CategoryListView.DataSource;
            var dataRowAll = dataTable.NewRow();
            dataRowAll["categoryId"]   = "0";
            dataRowAll["categoryName"] = RewardsHelper.GetTranslation(TranslationKeys.Label.All);
            dataRowAll["imagePathOn"]  = string.Empty;
            dataRowAll["imagePathOff"] = string.Empty;
            dataTable.Rows.InsertAt(dataRowAll, 0);
            CategoryListView.DataBind();
        }
        catch (Exception) {}
    }
Пример #13
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            return;
        }

        lbdatefrom.InnerText = string.Format("{0}:", RewardsHelper.GetTranslation(TranslationKeys.Label.DateFrom));
        lbdateto.InnerText   = string.Format("{0}:", RewardsHelper.GetTranslation(TranslationKeys.Label.DateTo));
        submit.Text          = RewardsHelper.GetTranslation(TranslationKeys.Label.Search);

        if (!HasSession)
        {
            Response.Redirect("/Index.aspx", false);
        }

        var type = HttpContext.Current.Request.QueryString.Get("type");

        if (!string.IsNullOrEmpty(type))
        {
            switch (type)
            {
            case "stake":
                break;

            case "redeemed":
                Title = RewardsHelper.GetTranslation(TranslationKeys.Redemption.RedemptionListing);
                break;

            case "expired":
                Title = RewardsHelper.GetTranslation(TranslationKeys.Redemption.PointsExpired);
                break;

            case "adjusted":
                Title = RewardsHelper.GetTranslation(TranslationKeys.Redemption.PointsAdjusted);
                break;

            case "cart":
                Title = "Cart Listing";
                break;
            }
        }
    }
Пример #14
0
    protected async void RedeemButtonOnClick(object sender, EventArgs e)
    {
        #region redeem product
        try
        {
            Status  = string.Empty;
            Message = string.Empty;

            int quantity;
            var isParsed = int.TryParse(tbQuantity.Text.Trim(), out quantity);
            if (!isParsed)
            {
                Status  = Convert.ToString((int)Constants.StatusCode.Error);
                Message = RewardsHelper.GetTranslation(TranslationKeys.Redemption.InvalidQuantity);
                ShowMessage(Status, Message);
                return;
            }

            ProductDetails = Common.DeserializeObject <ProductDetails>(ProductDetailsField.Value);
            if (!HasSession)
            {
                Response.Redirect(string.Format(@"/_Secure/Login.aspx?redirect=/Catalogue/Redeem.aspx&productId={0}", ProductIdField.Value), false);
                return;
            }

            var productType = (ProductTypeEnum)int.Parse(ProductDetails.ProductType);
            var response    = await RedemptionStrategy.Initialize(GetRequest(productType)).Redeem();

            Status  = Convert.ToString(response.Code);
            Message = response.Message;
            ShowMessage(Status, Message);
            RefreshPoints();
        }
        catch (Exception exception)
        {
            Status  = Convert.ToString((int)Constants.StatusCode.Error);
            Message = RewardsHelper.GetTranslation(TranslationKeys.Errors.Exception);
            ShowMessage(Status, Message);
            AuditTrail.AppendLog(exception);
        }
        #endregion
    }
Пример #15
0
    protected override void SetLabels()
    {
        const string colon = ":";

        lbcurr.Text   = RewardsHelper.GetTranslation(TranslationKeys.Redemption.Currency) + colon;
        lbperiod.Text = RewardsHelper.GetTranslation(TranslationKeys.Redemption.Delivery);

        #region labels
        if (!HasSession)
        {
            return;
        }

        if (string.IsNullOrEmpty(MemberSession.FullName))
        {
            usernameLabel.Visible = false;
        }
        else
        {
            usernameLabel.InnerText = UserSessionInfo.MemberCode;
        }

        pointsLabel.InnerText = string.Format("{0}: {1}",
                                              RewardsHelper.GetTranslation(TranslationKeys.Label.Points),
                                              MemberRewardsInfo != null ? Convert.ToString(MemberRewardsInfo.CurrentPoints) : "0");
        pointLevelLabel.InnerText = string.Format("{0} {1}",
                                                  RewardsHelper.GetTranslation(TranslationKeys.Label.PointLevel),
                                                  MemberRewardsInfo != null ? Convert.ToString(MemberRewardsInfo.CurrentPointLevel) : "0");
        divLevel.Visible = true;
        #endregion

        if (!string.IsNullOrEmpty(HttpContext.Current.Request.QueryString.Get("id")))
        {
            lblDescription.Text = HttpContext.Current.Request.QueryString.Get("id");
        }
    }
Пример #16
0
    private static async Task <string> GetRedemptionList(string memberCode, DateTime dateFrom, DateTime dateTo)
    {
        try
        {
            using (var client = new RewardsServicesClient())
            {
                var dateFromString = string.Format("{0:yyyy/M/d HH:mm:ss}", dateFrom);
                var dateToString   = string.Format("{0:yyyy/M/d HH:mm:ss}", dateTo);
                var dataSet        = await client.getRedemptionFEAsync(Convert.ToString(Settings.OperatorId), memberCode, dateFromString, dateToString);

                if (dataSet.Tables.Count == 0 || dataSet.Tables[0].Rows.Count == 0)
                {
                    return(string.Empty);
                }

                dataSet.Tables[0].Columns.Add("rType");

                var dataTable = dataSet.Tables[0];
                var headers   = string.Empty;
                var rows      = string.Empty;

                for (var i = 0; i < dataTable.Rows.Count; i++)
                {
                    if (dataTable.Rows[i]["rType"].ToString() != "0")
                    {
                        dataTable.Rows[i]["rType"] = "Spin Wheel Prize";
                    }
                    else
                    {
                        dataTable.Rows[i]["rType"] = "Redemption";
                    }

                    rows += "<tr>";

                    for (var j = 0; j < dataTable.Columns.Count; j++)
                    {
                        if (i == 0)
                        {
                            switch (dataTable.Columns[j].ColumnName)
                            {
                            case "createdDateTime":
                                headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Label.Date));
                                break;

                            case "redemptionId":
                                headers += "<td><div class='pointDetailMainHeader'><span>ID</span></div></td>";
                                break;

                            case "categoryCode":
                                headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0} ({1})</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Redemption.Category), RewardsHelper.GetTranslation(TranslationKeys.Label.Points));
                                break;

                            case "statusName":
                                headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Label.Status));
                                break;
                            }
                        }

                        switch (j)
                        {
                        case 0:
                            rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", string.Format("{0:d/M/yyyy}", Convert.ToDateTime(dataTable.Rows[i].ItemArray[0].ToString())));
                            break;

                        case 3:
                            rows += string.Format(@"<td><div class='points'><span>{0} ({1})</span></div></td>", dataTable.Rows[i].ItemArray[j], string.Format("{0:#,###,##0.##}", dataTable.Rows[i].ItemArray[4]));
                            break;

                        case 1:
                            rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", dataTable.Rows[i].ItemArray[j]);
                            break;

                        case 5:
                            rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", dataTable.Rows[i].ItemArray[j]);
                            break;

                        default:
                            rows += string.Empty;
                            break;
                        }
                    }

                    rows += "</tr>";
                }

                return(string.Format(@"<table id='transactions' width='100%'><tr>{0}</tr>{1}</table>", headers, rows));
            }
        }
        catch (Exception)
        {
            return(string.Empty);
        }
    }
Пример #17
0
    protected async void btnSubmit_Click(object sender, EventArgs e)
    {
        try
        {
            var formats = new[] { "MM/dd/yyyy" };

            DateTime fromDate;
            var      isParsed = DateTime.TryParseExact(dateFrom.Value, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out fromDate);

            if (!isParsed)
            {
                ShowMessage("wrongfromdate");
                return;
            }

            DateTime toDate;
            isParsed = DateTime.TryParseExact(dateTo.Value, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out toDate);

            if (!isParsed)
            {
                ShowMessage("wrongtodate");
                return;
            }

            if (fromDate > toDate)
            {
                ShowMessage("wrongdaterange");
                return;
            }

            var memberCode = UserSessionInfo == null ? string.Empty : UserSessionInfo.MemberCode;
            toDate = toDate.AddHours(23).AddMinutes(59).AddSeconds(59);

            var type = HttpContext.Current.Request.QueryString.Get("type");
            if (string.IsNullOrEmpty(type))
            {
                return;
            }

            var html = string.Empty;
            switch (type)
            {
            case "redeemed":
                Title = RewardsHelper.GetTranslation(TranslationKeys.Redemption.RedemptionListing);
                html  = await GetRedemptionList(memberCode, fromDate, toDate);

                break;

            case "expired":
                Title = RewardsHelper.GetTranslation(TranslationKeys.Redemption.PointsExpired);
                html  = await GetExpiredList(memberCode, fromDate, toDate);

                break;

            case "adjusted":
                Title = RewardsHelper.GetTranslation(TranslationKeys.Redemption.PointsAdjusted);
                html  = await GetAdjustmentList(memberCode, fromDate, toDate);

                break;
            }

            if (!string.IsNullOrEmpty(html))
            {
                resultpanel.InnerHtml = html;
            }
            else
            {
                ShowMessage("nodata");
                resultpanel.InnerHtml = string.Empty;
            }
        }
        catch (Exception exception)
        {
            ShowMessage("FAIL");
            AuditTrail.AppendLog(exception);
        }
    }
Пример #18
0
    private static async Task <string> GetExpiredList(string memberCode, DateTime dateFrom, DateTime dateTo)
    {
        try
        {
            using (var client = new RewardsServicesClient())
            {
                var dateFromString = String.Format("{0:yyyy/M/d HH:mm:ss}", dateFrom);
                var dateToString   = String.Format("{0:yyyy/M/d HH:mm:ss}", dateTo);
                var dataSet        = await client.getExpiredFEAsync(Convert.ToString(Settings.OperatorId), memberCode, dateFromString, dateToString);

                if (dataSet.Tables.Count == 0 || dataSet.Tables[0].Rows.Count == 0)
                {
                    return(string.Empty);
                }

                var dataTable = dataSet.Tables[0];
                var headers   = string.Empty;
                var rows      = string.Empty;

                for (var i = 0; i < dataTable.Rows.Count; i++)
                {
                    if (string.IsNullOrEmpty(dataTable.Rows[i]["remarks"].ToString()))
                    {
                        dataTable.Rows[i]["remarks"] = "-";
                    }

                    rows += "<tr>";

                    for (var j = 0; j < dataTable.Columns.Count; j++)
                    {
                        if (i == 0)
                        {
                            switch (dataTable.Columns[j].ColumnName)
                            {
                            case "createdDateTime":
                                headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Label.Date));
                                break;

                            case "pointsExpired":
                                headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Redemption.PointsExpired));
                                break;

                            case "remarks":
                                headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Label.Remarks));
                                break;
                            }
                        }

                        switch (j)
                        {
                        case 8:
                            rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", string.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(dataTable.Rows[i].ItemArray[j].ToString())));
                            break;

                        case 5:
                            rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", dataTable.Rows[i].ItemArray[j]);
                            break;

                        case 6:
                            rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", dataTable.Rows[i].ItemArray[j]);
                            break;

                        default:
                            rows += string.Empty;
                            break;
                        }
                    }

                    rows += "</tr>";
                }

                return(string.Format(@"<table id='transactions' width='100%'><tr>{0}</tr>{1}</table>", headers, rows));
            }
        }
        catch (Exception)
        {
            return(string.Empty);
        }
    }
Пример #19
0
    private async void SetProductInfo()
    {
        try
        {
            var productId = HttpContext.Current.Request.QueryString.Get("id");

            if (string.IsNullOrEmpty(productId))
            {
                Response.Redirect("/Catalogue?categoryId=0&sortBy=2", false);
                return;
            }

            RedirectUri = !HasSession
                            ? string.Format(@"/_Secure/Login.aspx?redirect=/Catalogue/Redeem.aspx&productId={0}", productId)
                            : string.Format(@"/Catalogue/Redeem.aspx?productId={0}", productId);

            var process = await RewardsHelper.GetProductDetails(UserSessionInfo, productId);

            if (process == null || process.Data == null)
            {
                return;
            }

            var productDetails = (ProductDetails)process.Data;
            // Set label and image values
            if (!string.IsNullOrEmpty(productDetails.CurrencyCode))
            {
                lblCurrency.Text    = productDetails.CurrencyCode;
                CurrencyDiv.Visible = true;
            }

            imgPic.ImageUrl = productDetails.ImageUrl;

            var pointsLabelText = RewardsHelper.GetTranslation(TranslationKeys.Label.Points);
            if (!string.IsNullOrEmpty(productDetails.DiscountPoints) && int.Parse(productDetails.DiscountPoints) != 0)
            {
                lblPointCenter.Text    = string.Format(@"{0:#,###,##0.##} {1}", productDetails.DiscountPoints, pointsLabelText);
                lblBeforeDiscount.Text = string.Format(@"{0:#,###,##0.##} {1}", productDetails.PointsRequired, pointsLabelText);
            }
            else
            {
                lblPointCenter.Text    = string.Format(@"{0:#,###,##0.##} {1}", productDetails.PointsRequired, pointsLabelText);
                lblBeforeDiscount.Text = string.Empty;
            }

            if (!string.IsNullOrEmpty(productDetails.DeliveryPeriod))
            {
                lblDelivery.Text    = productDetails.DeliveryPeriod;
                DeliveryDiv.Visible = true;
            }

            lblDescription.Text = productDetails.ProductDescription;
            lblName.Text        = productDetails.ProductName;

            IsVipOnly         = productDetails.Status == (int)Constants.ProductStatus.VipOnly;
            IsValidRedemption = !IsVipOnly;
            VipOnlyMessage    = RewardsHelper.GetTranslation(TranslationKeys.Redemption.VipOnly);

            var vipCategoryId = Common.GetAppSetting <string>("vipCategoryId");
            if (!productDetails.CategoryId.Equals(vipCategoryId))
            {
                return;
            }
            var redemptionLimitResult = await RewardsHelper.CheckRedemptionLimitForVipCategory(UserSessionInfo.MemberCode, vipCategoryId);

            switch (redemptionLimitResult)
            {
            case 0:
                VipOnlyMessage = RewardsHelper.GetTranslation(TranslationKeys.Redemption.BirthdayItemRedeemed);
                IsLimitReached = true;
                break;

            case 1:
                VipOnlyMessage = RewardsHelper.GetTranslation(TranslationKeys.Redemption.BirthdayItemPending);
                IsPending      = true;
                break;
            }
        }
        catch (Exception exception)
        {
            AuditTrail.AppendLog(exception);
        }
    }
Пример #20
0
    private static async Task <string> GetTotalStakeDetail(string memberCode, string walletId, string yearMonth)
    {
        using (var client = new RewardsServicesClient())
        {
            var year    = int.Parse(yearMonth.Substring(0, 4));
            var month   = (yearMonth.Length > 5) ? int.Parse(yearMonth.Substring(4, 2)) : int.Parse(yearMonth.Substring(4, 1));
            var dataSet = await client.getEarnDetailFEAsync(Convert.ToString(Settings.OperatorId), memberCode, walletId, month, year);

            if (dataSet.Tables.Count == 0 || dataSet.Tables[0].Rows.Count == 0)
            {
                return(string.Empty);
            }

            var dataTable = dataSet.Tables[0];
            var headers   = string.Empty;
            var rows      = string.Empty;

            for (var i = 0; i < dataTable.Rows.Count; i++)
            {
                rows += "<tr>";

                for (var j = 0; j < dataTable.Columns.Count; j++)
                {
                    if (i == 0)
                    {
                        switch (dataTable.Columns[j].ColumnName)
                        {
                        case "createdDateTime":
                            headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Label.Date));
                            break;

                        case "transactionDateTime":
                            headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Redemption.BetDate));
                            break;

                        case "totalStake":
                            headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Redemption.TotalStake));
                            break;

                        case "pointsAwarded":
                            headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Redemption.PointsEarned));
                            break;
                        }
                    }

                    switch (j)
                    {
                    case 2:
                        rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", string.Format("{0:#,###,##0.##}", dataTable.Rows[i].ItemArray[j]));
                        break;

                    case 3:
                        rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", string.Format("{0:#,###,##0.##}", dataTable.Rows[i].ItemArray[j]));
                        break;

                    default:
                        rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", Convert.ToString(DateTime.Parse(dataTable.Rows[i].ItemArray[j].ToString()).ToString("yyyy/MM/dd")));
                        break;
                    }
                }

                rows += "</tr>";
            }

            return(string.Format(@"<table id='transactions' width='100%'><tr>{0}</tr>{1}</table>", headers, rows));
        }
    }
Пример #21
0
    private static async Task <string> GetTotalStakeByMonth(string memberCode, string walletId)
    {
        using (var client = new RewardsServicesClient())
        {
            var dataSet = await client.getEarnMonthFEAsync(Convert.ToString(Settings.OperatorId), memberCode, walletId);

            if (dataSet.Tables.Count == 0 || dataSet.Tables[0].Rows.Count == 0)
            {
                return(string.Empty);
            }

            var dataTable = dataSet.Tables[0];
            var headers   = string.Empty;
            var rows      = string.Empty;

            for (var i = 0; i < dataTable.Rows.Count; i++)
            {
                rows += "<tr>";

                for (var j = 0; j < dataTable.Columns.Count; j++)
                {
                    if (i == 0)
                    {
                        switch (dataTable.Columns[j].ColumnName)
                        {
                        case "pointsYear":
                            headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Label.Year));
                            break;

                        case "pointsMonth":
                            headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Label.Month));
                            break;

                        case "totalStake":
                            headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Redemption.TotalStake));
                            break;

                        case "pointsAwarded":
                            headers += string.Format(@"<td><div class='pointDetailMainHeader'><span>{0}</span></div></td>", RewardsHelper.GetTranslation(TranslationKeys.Redemption.PointsEarned));
                            break;
                        }
                    }

                    switch (j)
                    {
                    case 2:
                        rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", string.Format("{0:#,###,##0.##}", dataTable.Rows[i].ItemArray[j]));
                        break;

                    case 3:
                        rows += string.Format(@"<td><a href='/Account?type=stake&walletid={0}&yearmonth={1}'><div class='points'><span>{2}</span></div></a></td>",
                                              walletId,
                                              ((string)dataTable.Rows[i].ItemArray[0] + (string)dataTable.Rows[i].ItemArray[1]),
                                              string.Format("{0:#,###,##0.##}", dataTable.Rows[i].ItemArray[j]));
                        break;

                    default:
                        rows += string.Format(@"<td><div class='points'><span>{0}</span></div></td>", dataTable.Rows[i].ItemArray[j]);
                        break;
                    }
                }

                rows += "</tr>";
            }

            return(string.Format(@"<table id='transactions' width='100%'><tr>{0}</tr>{1}</table>", headers, rows));
        }
    }
Пример #22
0
    protected async void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            return;
        }

        if (!HasSession)
        {
            Response.Redirect("/Index.aspx", false);
        }

        var type       = HttpContext.Current.Request.QueryString.Get("type");
        var memberCode = UserSessionInfo == null ? string.Empty : UserSessionInfo.MemberCode;

        if (!string.IsNullOrEmpty(type))
        {
            var walletId  = string.IsNullOrEmpty(HttpContext.Current.Request.QueryString.Get("walletid")) ? "" : HttpContext.Current.Request.QueryString.Get("walletid");
            var yearMonth = string.IsNullOrEmpty(HttpContext.Current.Request.QueryString.Get("yearmonth")) ? "" : HttpContext.Current.Request.QueryString.Get("yearmonth");
            var html      = string.Empty;

            switch (type)
            {
            case "stake":
                if (string.IsNullOrEmpty(walletId))     //all stakes
                {
                    // "Earning Listing by Product";
                    Title = string.Format(@"{0} ({1})",
                                          RewardsHelper.GetTranslation(TranslationKeys.Redemption.EarningListing),
                                          RewardsHelper.GetTranslation(TranslationKeys.Redemption.Product));
                    html = await GetTotalStake(memberCode);
                }
                else if (!string.IsNullOrEmpty(walletId) && string.IsNullOrEmpty(yearMonth))     //stakes by walletid
                {
                    // "Earning Listing by Month";
                    Title = string.Format(@"{0} ({1})",
                                          RewardsHelper.GetTranslation(TranslationKeys.Redemption.EarningListing),
                                          RewardsHelper.GetTranslation(TranslationKeys.Label.Month));
                    html = await GetTotalStakeByMonth(memberCode, walletId);
                }
                else     //stakes detail
                {
                    // "Earning Listing Detail";
                    Title = string.Format(@"{0} ({1})",
                                          RewardsHelper.GetTranslation(TranslationKeys.Redemption.EarningListing),
                                          RewardsHelper.GetTranslation(TranslationKeys.Label.Details));
                    html = await GetTotalStakeDetail(memberCode, walletId, yearMonth);
                }

                if (!string.IsNullOrEmpty(html))
                {
                    resultpanel.InnerHtml = html;
                }
                else
                {
                    lblNoRecord.Visible     = true;
                    ListviewHistory.Visible = false;
                }
                break;

            case "redeemed":
                Title = RewardsHelper.GetTranslation(TranslationKeys.Redemption.RedemptionListing);
                resultpanel.InnerHtml = html;
                break;

            case "expired":
                Title = RewardsHelper.GetTranslation(TranslationKeys.Redemption.PointsExpired);
                resultpanel.InnerHtml = html;
                break;

            case "adjusted":
                Title = RewardsHelper.GetTranslation(TranslationKeys.Redemption.PointsAdjusted);
                resultpanel.InnerHtml = html;
                break;

            case "cart":
                Title = "Points in your cart";
                resultpanel.InnerHtml = html;
                break;

            default:
                SetAccountSummary(memberCode);
                break;
            }
        }
        else
        {
            SetAccountSummary(memberCode);
        }
    }
Пример #23
0
    private async void SetProductInfo()
    {
        var memberCode   = UserSessionInfo == null ? "" : UserSessionInfo.MemberCode;
        var countryCode  = MemberSession == null ? "0" : MemberSession.CountryCode;
        var currencyCode = MemberSession == null ? "0" : MemberSession.CurrencyCode;

        try
        {
            ProductType = ProductDetails.ProductType;
            if (ProductType == "1" && (ProductDetails.CurrencyCode != currencyCode))
            {
                Response.Redirect("/Catalogue?categoryId=53&sortBy=2", false);
                return;
            }

            if (ProductDetails.CountryCode.Trim() != "All")
            {
                if (!ProductDetails.CountryCode.Contains(countryCode))
                {
                    Response.Redirect(string.Format("/Catalogue?categoryId={0}&sortBy=2", ProductDetails.CategoryId), false);
                    return;
                }
            }

            ProductIdField.Value = ProductDetails.ProductId;

            /**
             *  freebet show  currency, hide recipient panel , hide delivery, hide account
             *  normal product show recipient, show delivery if any,  hide currency, hide account
             *  online show account, hide delivery, hide recipient, hide currency
             **/
            switch (ProductType)
            {
            case "1":     //freebet
                CurrencyDiv.Visible  = true;
                RecipientDiv.Visible = false;
                DeliveryDiv.Visible  = false;
                AccountDiv.Visible   = false;
                break;

            case "2":     //normal
                RecipientDiv.Visible = true;
                CurrencyDiv.Visible  = false;
                AccountDiv.Visible   = false;
                break;

            case "3":     //wishlist same as normal
                RecipientDiv.Visible = true;
                CurrencyDiv.Visible  = false;
                AccountDiv.Visible   = false;
                break;

            case "4":     //online
                AccountDiv.Visible   = true;
                CurrencyDiv.Visible  = false;
                RecipientDiv.Visible = false;
                DeliveryDiv.Visible  = false;
                break;
            }

            //vip cannot select quantity
            var vipCategoryId = Common.GetAppSetting <string>("vipCategoryId");
            if (ProductDetails.CategoryId == vipCategoryId)
            {
                tbQuantity.Enabled = false;
            }

            imgPic.ImageUrl = ProductDetails.ImageUrl;

            var pointsLabelText = RewardsHelper.GetTranslation(TranslationKeys.Label.Points);
            if (!string.IsNullOrEmpty(ProductDetails.DiscountPoints) && int.Parse(ProductDetails.DiscountPoints) != 0)
            {
                lblPointCenter.Text    = string.Format(@"{0:#,###,##0.##} {1}", ProductDetails.DiscountPoints, pointsLabelText);
                lblBeforeDiscount.Text = string.Format(@"{0:#,###,##0.##} {1}", ProductDetails.PointsRequired, pointsLabelText);
            }
            else
            {
                lblPointCenter.Text    = string.Format(@"{0:#,###,##0.##} {1}", ProductDetails.PointsRequired, pointsLabelText);
                lblBeforeDiscount.Text = string.Empty;
            }

            lblName.Text     = ProductDetails.ProductName;
            lblCategory.Text = ProductDetails.ProductCategoryName;

            if (!string.IsNullOrEmpty(ProductDetails.DeliveryPeriod))
            {
                lblDelivery.Text    = ProductDetails.DeliveryPeriod;
                DeliveryDiv.Visible = true;
            }

            if (!string.IsNullOrEmpty(ProductDetails.CurrencyCode))
            {
                lblCurrency.Text = ProductDetails.CurrencyCode;
            }

            if (ProductType != "2" && ProductType != "3") //normal & wishlist
            {
                return;
            }

            #region memberInfo
            var redemptionDetails = await RewardsHelper.GetMemberRedemptionDetails(memberCode);

            if (redemptionDetails == null)
            {
                return;
            }
            tbRName.Text    = redemptionDetails.FullName;
            tbAddress.Value = redemptionDetails.Address;
            tbPostal.Text   = redemptionDetails.Postal;
            tbCity.Text     = redemptionDetails.City;
            tbCountry.Text  = redemptionDetails.CountryCode;
            tbContact.Text  = redemptionDetails.Mobile;

            if (ProductDetails.Status != (int)Constants.ProductStatus.VipOnly)
            {
                return;
            }

            Status  = Convert.ToString((int)Constants.StatusCode.MemberVip);
            Message = RewardsHelper.GetTranslation(TranslationKeys.Redemption.VipOnly);
            ShowMessage(Status, Message);
            redeemButton.Visible = false;
            #endregion
        }
        catch (Exception exception)
        {
            AuditTrail.AppendLog(exception);
        }
    }