Example #1
0
        protected void MovieDetailsView_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
        {
            try
            {
                MovieCatalogBL contextBL     = new MovieCatalogBL();
                var            movieToUpdate = contextBL.GetMovieByID(movieID);

                string contentProvider = null;
                if (e.NewValues["ContentProvider"] == null || e.NewValues["ContentProvider"].ToString() == "")
                {
                    contentProvider = "";
                }
                else
                {
                    contentProvider = e.NewValues["ContentProvider"].ToString();
                }

                string title = e.NewValues["OriginalName"].ToString();
                string genre = e.NewValues["Genre"].ToString();

                //msdn.microsoft.com/en-us/library/system.timespan%28v=vs.110%29.aspx
                //string value = "12:12:15";
                //TimeSpan ts = TimeSpan.Parse(value);
                TimeSpan movieDuration = TimeSpan.Zero;

                // find DropDownList control inside DetailsView
                DropDownList ddlHours   = (DropDownList)MovieDetailsView.FindControl("ddlHours");
                DropDownList ddlMinutes = (DropDownList)MovieDetailsView.FindControl("ddlMinutes");
                DropDownList ddlSeconds = (DropDownList)MovieDetailsView.FindControl("ddlSeconds");

                string hours   = ddlHours.SelectedValue.ToString().Trim();
                string minutes = ddlMinutes.SelectedValue.ToString().Trim();
                string seconds = ddlSeconds.SelectedValue.ToString().Trim();

                //string value = "12:12:15";
                //TimeSpan ts = TimeSpan.Parse(value);
                string duration1 = hours + ":" + minutes + ":" + seconds;
                movieDuration = TimeSpan.Parse(duration1);


                string country = e.NewValues["Country"].ToString();

                string rightsIPTV = null;
                if (e.NewValues["RightsIPTV"] == null || e.NewValues["RightsIPTV"].ToString() == "")
                {
                    rightsIPTV = string.Empty;
                }
                else
                {
                    rightsIPTV = e.NewValues["RightsIPTV"].ToString();
                }

                string rightsVOD = null;
                if (e.NewValues["RightsVOD"] == null || e.NewValues["RightsVOD"].ToString() == "")
                {
                    rightsVOD = string.Empty;
                }
                else
                {
                    rightsVOD = e.NewValues["RightsVOD"].ToString();
                }

                string svodRights = null;
                if (e.NewValues["SVODRights"] == null || e.NewValues["SVODRights"].ToString() == "")
                {
                    svodRights = string.Empty;
                }
                else
                {
                    svodRights = e.NewValues["SVODRights"].ToString();
                }

                string ancillaryRights = null;
                if (e.NewValues["AncillaryRights"] == null || e.NewValues["AncillaryRights"].ToString() == "")
                {
                    ancillaryRights = string.Empty;
                }
                else
                {
                    ancillaryRights = e.NewValues["AncillaryRights"].ToString();
                }


                DateTime startDate    = Convert.ToDateTime(e.NewValues["StartDate"]);
                DateTime expireDate   = Convert.ToDateTime(e.NewValues["ExpireDate"]);
                int      result       = DateTime.Compare(startDate, expireDate);
                string   relationship = "Expiry Date is earlier than Start Date !";
                //msdn.microsoft.com/en-us/library/5ata5aya%28v=vs.110%29.aspx
                // if startDate is later than expireDate result is (1) greater than 0 (zero)
                if (result > 0)
                {
                    // instead of "e.Cancel = true;" can be -> ((DetailsViewInsertEventArgs)e).Cancel = true;
                    // www.noordam.it/validating-detailsview-field-NewValues-during-insert-and-update/
                    // has to be 'return' after 'e.Cancel = true;'  -> at least in some cases
                    e.Cancel = true;
                    ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + relationship + "');", true);
                    return;
                }


                string comment = null;
                if (e.NewValues["Comment"] == null || e.NewValues["Comment"].ToString() == "")
                {
                    comment = string.Empty;
                }
                else
                {
                    comment = e.NewValues["Comment"].ToString();
                }

                Int16 year = Convert.ToInt16(e.NewValues["Year"]);

                contextBL.UpdateMovieByID(movieID, contentProvider, title, genre, movieDuration, country, rightsIPTV, rightsVOD, svodRights, ancillaryRights, startDate, expireDate, comment, year);
                lblMessage.ForeColor = System.Drawing.Color.Black;
                lblMessage.Text      = "Movie " + title + " updated.";
            }
            catch (DbUpdateException)
            {
                lblMessage.Text = "Update Exception. Error while updating movie data. Please try again.";
            }
            catch (NullReferenceException)
            {
                lblMessage.Text = "An error occurred while updating movie. Make sure that movie exists.";
            }
            catch (ArgumentNullException)
            {
                lblMessage.Text = "ArgumentNullException: An error occurred while updating movie. Make sure that movie exists.";
            }
            catch (Exception)
            {
                lblMessage.Text = "An error occurred while updating movie. Please try again.";
            }
        }
Example #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // check QueryString not null OR empty - if null OR empty redirect to Previous page
            if (Request.QueryString["Id"] == null || Request.QueryString["Id"] == "")
            {
                Response.Redirect("Default.aspx");
            }

            movieID = Convert.ToInt32(Request.QueryString["Id"]);

            if (!IsPostBack)
            {
                MovieCatalogBL contextBL = new MovieCatalogBL();

                try
                {
                    var queryMovieByID2 = contextBL.GetMovieByID(movieID);
                    // needs to be List
                    MovieDetailsView.DataSource = queryMovieByID2.ToList();
                    MovieDetailsView.DataBind();

                    // find DropDownList control inside DetailsView
                    DropDownList ddlHours   = (DropDownList)MovieDetailsView.FindControl("ddlHours");
                    DropDownList ddlMinutes = (DropDownList)MovieDetailsView.FindControl("ddlMinutes");
                    DropDownList ddlSeconds = (DropDownList)MovieDetailsView.FindControl("ddlSeconds");
                    // Time DropDownList
                    for (int index = 0; index < 24; index++)
                    {
                        ddlHours.Items.Add(index.ToString("00"));
                    }
                    for (int index = 0; index < 60; index++)
                    {
                        ddlMinutes.Items.Add(index.ToString("00"));
                        ddlSeconds.Items.Add(index.ToString("00"));
                    }

                    // for Calendar control -- Year & Month DropDownLists
                    LoadYears();
                    LoadMonths();

                    // for movie production (make) year
                    LoadProductionYears();
                    DropDownList ddlProductionYear = (DropDownList)MovieDetailsView.FindControl("DropDownListProductionYear");
                    // set year in DropDownListProductionYear
                    ddlProductionYear.Text = queryMovieByID2.FirstOrDefault().Year.ToString();

                    // get Duration of movie
                    TimeSpan duration = queryMovieByID2.FirstOrDefault().Duration.Value;
                    // set the text of ddl's for hours, minutes and seconds
                    ddlHours.Text   = duration.Hours.ToString("00");
                    ddlMinutes.Text = duration.Minutes.ToString("00");
                    ddlSeconds.Text = duration.Seconds.ToString("00");

                    // Fill CheckBoxLists with countries
                    CheckBoxList ddlCountry = (CheckBoxList)MovieDetailsView.FindControl("ddlCountry");
                    ddlCountry.DataSource = CountriesList();
                    ddlCountry.DataBind();

                    CheckBoxList ddlCountriesIPTV = (CheckBoxList)MovieDetailsView.FindControl("ddlCountriesIPTV");
                    ddlCountriesIPTV.DataSource = CountriesList();
                    ddlCountriesIPTV.DataBind();

                    CheckBoxList ddlCountriesVOD = (CheckBoxList)MovieDetailsView.FindControl("ddlCountriesVOD");
                    ddlCountriesVOD.DataSource = CountriesList();
                    ddlCountriesVOD.DataBind();


                    // select countries in ddlCountry
                    string countriesMovie = queryMovieByID2.FirstOrDefault().Country;
                    //Convert the string into an array of words
                    string[] countryArray = countriesMovie.Split(new char[] { '?', '!', ';', ':', ',' }, StringSplitOptions.RemoveEmptyEntries);

                    // has to be 'ListItem' "(ListItem item in ddlCountry.Items)" -> NOT "var"(var item in ddlCountries.Items)
                    foreach (ListItem item in ddlCountry.Items)
                    {
                        for (int k = 0; k < countryArray.Length; k++)
                        {
                            if (item.ToString().ToUpperInvariant() == countryArray[k].ToUpperInvariant().Trim())
                            {
                                item.Selected = true;
                            }
                        }
                    }

                    // select countries in ddlIPTV
                    string countriesIPTV = queryMovieByID2.FirstOrDefault().RightsIPTV;
                    //Convert the string into an array of words
                    string[] iptvArray = countriesIPTV.Split(new char[] { '?', '!', ';', ':', ',' }, StringSplitOptions.RemoveEmptyEntries);
                    // has to be 'ListItem' "(ListItem item in ddlcountriesIPTV.Items)" -> NOT "var"(var item in ddlCountries.Items)
                    foreach (ListItem item in ddlCountriesIPTV.Items)
                    {
                        for (int k = 0; k < iptvArray.Length; k++)
                        {
                            if (item.ToString().ToUpperInvariant() == iptvArray[k].ToUpperInvariant().Trim())
                            {
                                item.Selected = true;
                            }
                        }
                    }


                    // select countries in ddlVOD
                    string countriesVOD = queryMovieByID2.FirstOrDefault().RightsVOD;
                    //Convert the string into an array of words
                    string[] VODArray = countriesVOD.Split(new char[] { '?', '!', ';', ':', ',' }, StringSplitOptions.RemoveEmptyEntries);
                    // has to be 'ListItem' "(ListItem item in ddlCountriesVOD.Items)" -> NOT "var"(var item in ddlCountriesVOD.Items)
                    foreach (ListItem item in ddlCountriesVOD.Items)
                    {
                        for (int k = 0; k < VODArray.Length; k++)
                        {
                            if (item.ToString().ToUpperInvariant() == VODArray[k].ToUpperInvariant().Trim())
                            {
                                item.Selected = true;
                            }
                        }
                    }

                    // set text/value in DropdDownCheckBox Controls: ddlAncillaryRights and ddlSVODRights
                    string       svodRights         = queryMovieByID2.FirstOrDefault().SVODRights.ToString();
                    string       ancillaryRights    = queryMovieByID2.FirstOrDefault().AncillaryRights.ToString();
                    DropDownList ddlAncillaryRights = (DropDownList)MovieDetailsView.FindControl("ddlAncillaryRights");
                    DropDownList ddlSVODRights      = (DropDownList)MovieDetailsView.FindControl("ddlSVODRights");
                    ddlAncillaryRights.Text = ancillaryRights;
                    ddlSVODRights.Text      = svodRights;

                    // set the date in startDateCalendar and make it visible in control
                    DateTime startDate = (DateTime)queryMovieByID2.First().StartDate;
                    System.Web.UI.WebControls.Calendar startDateCalendar = (System.Web.UI.WebControls.Calendar)MovieDetailsView.FindControl("startDateCalendar");
                    startDateCalendar.SelectedDate = startDate;
                    startDateCalendar.VisibleDate  = startDate;
                    // set the Year and Month in ddlStartYear and ddlStartMonth
                    DropDownList ddlStartYear  = (DropDownList)MovieDetailsView.FindControl("DropDownListYear");
                    DropDownList ddlStartMonth = (DropDownList)MovieDetailsView.FindControl("DropDownListMonth");
                    ddlStartYear.Text  = startDate.Year.ToString();
                    ddlStartMonth.Text = startDate.Month.ToString();



                    // set the date in expiryDateCalendar and make it visible in control
                    DateTime expiryDate = (DateTime)queryMovieByID2.First().ExpireDate;
                    System.Web.UI.WebControls.Calendar expiryDateCalendar = (System.Web.UI.WebControls.Calendar)MovieDetailsView.FindControl("expireDateCalendar");
                    expiryDateCalendar.SelectedDate = expiryDate;
                    expiryDateCalendar.VisibleDate  = expiryDate;
                    // set the Year and Month in ddlExpiryYear and ddlExpiryMonth
                    DropDownList ddlExpiryYear  = (DropDownList)MovieDetailsView.FindControl("DropDownListExpireYear");
                    DropDownList ddlExpiryMonth = (DropDownList)MovieDetailsView.FindControl("DropDownListExpireMonth");
                    ddlExpiryYear.Text  = expiryDate.Year.ToString();
                    ddlExpiryMonth.Text = expiryDate.Month.ToString();
                }
                catch (Exception)
                {
                    lblMessage.Text = "An error occurred. Please try again.";
                }
            }
        }