Exemple #1
0
    public YearFilter PopulateFilter()
    {
        YearFilter yearfilter = new YearFilter();

        yearfilter.Year = Convert.ToInt32(this.cbReportYear.SelectedValue);
        return(yearfilter);
    }
Exemple #2
0
 /// <summary>
 ///
 /// </summary>
 public static void SetFilter(HttpResponse response, YearFilter filter)
 {
     if (response != null)
     {
         response.Cookies[HAS_YEARFILTER].Value = "1";
         response.Cookies[YEAR].Value           = filter.Year.ToString();
     }
 }
Exemple #3
0
 //creates header for Year and adds to dictionary
 protected static void addYear(Dictionary <string, string> header, YearFilter filter)
 {
     if (filter != null)
     {
         string key   = Resources.GetGlobal("Common", "Year");
         string value = filter.Year.ToString();
         header.Add(key, value);
     }
 }
Exemple #4
0
 public static YearFilter GetYearFilter(HttpRequest request)
 {
     if (HasYearFilter(request))
     {
         YearFilter filter = new YearFilter();
         filter.Year = toInt(request.QueryString[YEAR]);
         return(filter);
     }
     return(null);
 }
Exemple #5
0
        private static string SerializeToUrl(YearFilter filter)
        {
            string result = String.Empty;

            if (filter != null)
            {
                result += addParameter(YEAR, filter.Year);
            }
            return(result);
        }
Exemple #6
0
        public void Should_Get_Definition_For_Valid_YearFilter(string yearFilter, string expectedOperator, int expectedYear)
        {
            // arrange
            var filter = new YearFilter(yearFilter);

            // act
            var actualDefinition = filter.Definition;

            // assert
            Assert.Equal(expectedOperator, filter.EqualityOperator);
            Assert.Equal(expectedYear, filter.Year);
            Assert.NotNull(actualDefinition);
        }
Exemple #7
0
        /// <summary>
        ///
        /// </summary>
        public static YearFilter GetYearFilter(HttpRequest request)
        {
            // check if browser supports cookies
            YearFilter filter = null;

            if (request.Browser.Cookies)
            {
                if (hasFilter(request, HAS_YEARFILTER))
                {
                    filter      = new YearFilter();
                    filter.Year = Global.ToInt(request.Cookies[YEAR].Value, 0);
                }
            }
            return(filter);
        }
Exemple #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // Look for filter from link search
            Filter = LinkSearchBuilder.GetYearFilter(Request);

            // Only if we have nothing from the links search, look into the cookies
            if (Filter == null)
            {
                Filter = CookieStorage.GetYearFilter(Request);
            }

            // Populate
            populateYear();
        }
    }
        public ActionResult DisplaySearchResults(String SearchTitle, String SearchTagline, Int32 SearchGenreID, MPAARating SearchMPAARating, String SearchStars, StarFilter SearchStarFilter, String SearchActor, YearFilter SearchYearFilter, String SearchYear)
        { // Update Actors and other fields to be multiselectable
            var query = from m in db.Movies
                        select m;
            Boolean SomethingWrong = false;

            //SearchTitle for Movie Name
            if (SearchTitle != null)
            {
                query = query.Where(m => m.Title.Contains(SearchTitle));
            }

            //SearchTagline for Movie Tagline
            if (SearchTagline != null)
            {
                query = query.Where(m => m.Tagline.Contains(SearchTagline));
            }

            // SearchGenreID for Movie Genre
            if (SearchGenreID != 0)
            {
                //Genre ThisGenre = db.Genres.FirstOrDefault(g => g.GenreID == SearchGenreID);
                query = query.Where(m => m.Genres.Any(g => g.GenreID == SearchGenreID));
            } // TODO: fix not being able to filter by Genre


            //YEAR
            //code for year text box
            if (SearchYear != null && SearchYear != "")
            {
                DateTime dtSearchYear;
                try
                {
                    dtSearchYear = new DateTime(Convert.ToInt32(SearchYear), 1, 1);
                }
                catch
                {
                    ViewBag.YearMessage = SearchYear + " is not a valid year. Please try again";

                    ViewBag.AllGenres      = GetAllGenres();
                    ViewBag.AllMPAARatings = GetAllMPAARatings();

                    SomethingWrong = true;
                    dtSearchYear   = DateTime.Now;
                }

                //code for radio buttons of year
                if (SearchYearFilter == YearFilter.After && !SomethingWrong)
                {
                    foreach (Movie m in query.ToList())
                    {
                        if (m.ReleaseDate < dtSearchYear)
                        {
                            query = query.Where(x => x.Title != m.Title);
                        }
                    }
                }
                else if (SearchYearFilter == YearFilter.Before)
                {
                    foreach (Movie m in query.ToList())
                    {
                        if (m.ReleaseDate > dtSearchYear)
                        {
                            query = query.Where(x => x.Title != m.Title);
                        }
                    }
                }
            }



            //code for MPAA Rating selection
            if (SearchMPAARating != MPAARating.None)
            {
                query = query.Where(m => m.MPAARating == SearchMPAARating);
            }

            //code for customer rating text box
            if (SearchStars != null && SearchStars != "")
            {
                Decimal decCustomerRating;
                try
                {
                    decCustomerRating = Convert.ToDecimal(SearchStars);
                }
                catch
                {
                    ViewBag.Message = SearchStars + " is not a valid number. Please try again";

                    ViewBag.AllGenres      = GetAllGenres();
                    ViewBag.AllMPAARatings = GetAllMPAARatings();

                    SomethingWrong    = true;
                    decCustomerRating = -1;
                }

                //code for radio buttons
                if (SearchStarFilter == StarFilter.Greater && !SomethingWrong)
                {
                    foreach (Movie m in query.ToList())
                    {
                        if (m.RatingAverage < decCustomerRating)
                        {
                            query = query.Where(x => x.Title != m.Title);
                        }
                    }
                }
                else if (SearchStarFilter == StarFilter.Less)
                {
                    foreach (Movie m in query.ToList())
                    {
                        if (m.RatingAverage > decCustomerRating)
                        {
                            query = query.Where(x => x.Title != m.Title);
                        }
                    }
                }
            }


            // SearchActors for Movie Actors
            if (SearchActor != null)
            {
                query = query.Where(m => m.Actors.Contains(SearchActor));
            }

            List <Movie> MoviesToDisplay = query.ToList();

            MoviesToDisplay.OrderBy(m => m.Title);

            ViewBag.SelectedMoviesCount = MoviesToDisplay.Count();
            ViewBag.TotalMoviesCount    = db.Movies.ToList().Count();

            if (!SomethingWrong)
            {
                return(View("~/Views/Movies/Index.cshtml", MoviesToDisplay));
            }
            else
            {
                return(View("DetailedSearch"));
            }
        }
Exemple #10
0
 public IActionResult Index(YearFilter yearFilter)
 {
     ViewBag.year = yearFilter.Year;
     return(View());
 }