Exemplo n.º 1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            certificateId = GetIdFromQueryString();

            CertificateTableAdapter certificateAdapter = new CertificateTableAdapter();


            DollarSaverDB.CertificateDataTable certificateTable = certificateAdapter.GetCertificate(certificateId);

            if (certificateTable.Count != 1)
            {
                Response.Redirect("~/admin/AdvertiserList.aspx");
            }

            certificate = certificateTable[0];

            if (certificate.Advertiser.StationId != StationId)
            {
                Response.Redirect("~/admin/AdvertiserList.aspx");
            }

            if (certificate.Advertiser.IsDeleted)
            {
                InfoMessage = "Sorry, this advertiser has been deleted";
                Response.Redirect("~/admin/AdvertiserList.aspx");
            }

            if (!Page.IsPostBack)
            {
                returnToCertificateLink.NavigateUrl = "~/admin/CertificateEdit.aspx?id=" + certificate.CertificateId;

                advertiserNameLabel.Text  = certificate.Advertiser.Name;
                certificateNameLabel.Text = certificate.ShortName;

                DollarSaverDB.CertificateNumberDataTable usedNumbers = certificate.UsedNumbers;



                usedCountLabel.Text = usedNumbers.Count.ToString();

                usedNumbers.DefaultView.Sort = "CreateDate";

                var sortedNumbers = from DollarSaverDB.CertificateNumberRow cn in usedNumbers
                                    orderby cn.CreateDate.ToString("yyyyMMdd") descending, cn.OrderId ascending select cn;

                usedNumberGrid.DataSource = sortedNumbers;
                usedNumberGrid.DataBind();
            }
        }
        private void LoadCertificateNumber()
        {
            CertificateNumberTableAdapter certificateNumberAdapter = new CertificateNumberTableAdapter();

            int id       = 0;
            int orderId  = 0;
            int sampleId = 0;

            String cipherText = Request.QueryString["x"];

            if (cipherText != null && cipherText != String.Empty)
            {
                try {
                    String plainText = Server.UrlDecode(Cipher.Decrypt(cipherText));

                    String[] keysAndValues = plainText.Split('&');

                    foreach (String keyAndValueStr in keysAndValues)
                    {
                        String[] keyAndValue = keyAndValueStr.Split('=');

                        if (keyAndValue.Length == 2)
                        {
                            if (keyAndValue[0] == "id")
                            {
                                try {
                                    id = Convert.ToInt32(keyAndValue[1]);
                                } catch { }
                            }
                            else if (keyAndValue[0] == "order_id")
                            {
                                try {
                                    orderId = Convert.ToInt32(keyAndValue[1]);
                                } catch { }
                            }
                            else if (keyAndValue[0] == "sample_id")
                            {
                                try {
                                    sampleId = Convert.ToInt32(keyAndValue[1]);
                                } catch { }
                            }
                        }
                    }
                } catch { }
            }

            if (sampleId == 0)
            {
                if (id == 0 || orderId == 0)
                {
                    // check for old parameters for backward compatibility
                    // viewcertificate?orderNum=13651&certNum=755426&backBtn=no
                    orderId = GetValueFromQueryString("orderNum");
                    id      = 0;

                    // cut off backward compatibility after certain order id
                    if (orderId < 17000)
                    {
                        String number = Convert.ToString(Request.QueryString["certNum"]);

                        if (orderId == 0 || number == String.Empty)
                        {
                            return;
                        }

                        DollarSaverDB.CertificateNumberDataTable numberSearch = certificateNumberAdapter.GetBackward(orderId, number);

                        if (numberSearch.Count == 1)
                        {
                            id = numberSearch[0].CertificateNumberId;
                        }
                        else
                        {
                            return;
                        }
                    }
                }

                DollarSaverDB.CertificateNumberDataTable certNumberTable = certificateNumberAdapter.GetCertificateNumber(id);

                if (certNumberTable.Count != 1)
                {
                    return;
                }

                DollarSaverDB.CertificateNumberRow checkCertNumber = certNumberTable[0];

                OrderTableAdapter orderAdapter = new OrderTableAdapter();

                DollarSaverDB.OrderDataTable orderTable = orderAdapter.GetOrder(orderId);

                if (orderTable.Count != 1)
                {
                    return;
                }

                DollarSaverDB.OrderRow order = orderTable[0];

                if (order.OrderStatusId != (int)OrderStatus.Complete)
                {
                    return;
                }

                if (checkCertNumber.IsOrderLineItemIdNull() || !order.LineItems.Contains(checkCertNumber.OrderLineItemId))
                {
                    return;
                }

                certNumber  = checkCertNumber;
                certificate = certNumber.Certificate;
            }
            else
            {
                CertificateTableAdapter            certAdapter      = new CertificateTableAdapter();
                DollarSaverDB.CertificateDataTable certificateTable = certAdapter.GetCertificate(sampleId);

                if (certificateTable.Count != 1)
                {
                    return;
                }

                certificate = certificateTable[0];
            }
        }