protected void ProductsGridView_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string key = (string)ProductsGridView.DataKeys[e.Row.RowIndex].Value;
                ProductFile file = MTApp.CatalogServices.ProductFiles.FindByBvinAndProductBvin((string)ViewState["id"], key);

                TextBox tb = (TextBox)e.Row.FindControl("MaxDownloadsTextBox");
                BVAdmin_Controls_TimespanPicker tp = (BVAdmin_Controls_TimespanPicker)e.Row.FindControl("TimespanPicker");

                if (tb != null)
                {
                    tb.Text = file.MaxDownloads.ToString();
                }

                if (tp != null)
                {
                    int minutes = file.AvailableMinutes;
                    tp.Months = minutes / 43200;
                    minutes = minutes % 43200;
                    tp.Days = minutes / 1440;
                    minutes = minutes % 1440;
                    tp.Hours = minutes / 60;
                    minutes = minutes % 60;
                    tp.Minutes = minutes;
                }
            }
        }
        protected void ProductsGridView_RowUpdating(object sender, System.Web.UI.WebControls.GridViewUpdateEventArgs e)
        {
            if (Page.IsValid)
            {
                string key = (string)ProductsGridView.DataKeys[e.RowIndex].Value;
                ProductFile file = MTApp.CatalogServices.ProductFiles.FindByBvinAndProductBvin((string)ViewState["id"], key);

                GridViewRow row = ProductsGridView.Rows[e.RowIndex];
                TextBox tb = (TextBox)row.FindControl("MaxDownloadsTextBox");
                BVAdmin_Controls_TimespanPicker tp = (BVAdmin_Controls_TimespanPicker)row.FindControl("TimespanPicker");

                if (tb != null)
                {
                    int val = 0;
                    if (int.TryParse(tb.Text, out val))
                    {
                        file.MaxDownloads = val;
                    }
                    else
                    {
                        file.MaxDownloads = 0;
                    }
                }

                if (tp != null)
                {
                    file.SetMinutes(tp.Months, tp.Days, tp.Hours, tp.Minutes);
                }

                if (MTApp.CatalogServices.ProductFiles.Update(file))
                {
                    MessageBox1.ShowOk("File was successfully updated!");
                }
                else
                {
                    MessageBox1.ShowError("File update failed. Unknown error.");
                }
                BindProductsGrid();
            }
        }