예제 #1
0
        /// <summary>
        /// Get the details of the movie by id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public MovieWithFestivalDetails GetMovieDetailsById(int id)
        {
            MovieWithFestivalDetails completeMovieDetails = null;

            using (var repo = new filmfestivaldbEntities())
            {
                var movie = repo.moviesdetails.Join(repo.festivaldetails, m => m.festival_id, f => f.Id, (m, f) => new { m, f })
                            .Where(x => x.m.Id == id)
                            .Select(y => new
                {
                    About             = y.m.Description,
                    Actors            = y.m.Actors,
                    Award             = y.m.Award,
                    Director          = y.m.Director,
                    Festival          = y.m.FestivalFullName,
                    FestivalBannerUrl = y.f.FestivalArtUrl,
                    Id             = y.m.Id,
                    Location       = y.m.Country,
                    MovieLink      = y.m.MovieLink,
                    Name           = y.m.Title,
                    PosterUrl      = y.m.PosterLink,
                    ReleasingDate  = y.m.Released,
                    RunningTime    = y.m.Runtime,
                    YoutubeLink    = y.m.YoutubeEmbeddedCode,
                    AmazonLinkRent = y.m.AmazonLinkRent
                }).FirstOrDefault();
                if (movie != null)
                {
                    completeMovieDetails = new MovieWithFestivalDetails();
                    // Convert the bytes array into string and store into about
                    completeMovieDetails.About             = System.Text.Encoding.Default.GetString(movie.About);
                    completeMovieDetails.Actors            = movie.Actors;
                    completeMovieDetails.Award             = movie.Award;
                    completeMovieDetails.Director          = movie.Director;
                    completeMovieDetails.Festival          = movie.Festival;
                    completeMovieDetails.Id                = movie.Id;
                    completeMovieDetails.Location          = movie.Location;
                    completeMovieDetails.Name              = movie.Name;
                    completeMovieDetails.PosterUrl         = movie.PosterUrl;
                    completeMovieDetails.ReleasingDate     = movie.ReleasingDate;
                    completeMovieDetails.RunningTime       = movie.RunningTime;
                    completeMovieDetails.MovieLink         = movie.MovieLink;
                    completeMovieDetails.FestivalBannerUrl = movie.FestivalBannerUrl;
                    completeMovieDetails.AmazonLinkRent    = movie.AmazonLinkRent;
                    // Convert the bytes array into string and store into YoutubeEmbedded Link url
                    completeMovieDetails.YoutubeEmbeddedLink = System.Text.Encoding.Default.GetString(movie.YoutubeLink);
                }
                return(completeMovieDetails);
            }
        }
예제 #2
0
        /// <summary>
        /// Get the list of lat and long to show marker on map
        /// </summary>
        /// <returns></returns>
        public List <FestivalMapModel> GetLatLongForMap()
        {
            List <FestivalMapModel> festivalDetails = new List <FestivalMapModel>();

            using (var repo = new filmfestivaldbEntities())
            {
                var list = repo.festivaldetails.ToList();
                foreach (var obj in list)
                {
                    festivalDetails.Add(new FestivalMapModel()
                    {
                        Id = obj.Id, Lat = obj.Lat.ToString(), Long = obj.Lng.ToString(), FestivalName = obj.FestivalName, Country = obj.Country, FestUrl = obj.FestivalArtUrl
                    });
                }
            }
            return(festivalDetails);
        }
예제 #3
0
        /// <summary>
        /// Get the all banner of festival
        /// </summary>
        /// <returns></returns>
        public List <FestivalBannerModel> GetFestivalBanner()
        {
            List <FestivalBannerModel> bannerDetails = new List <FestivalBannerModel>();

            using (var repo = new filmfestivaldbEntities())
            {
                var list = repo.festivaldetails.Where(x => x.HighlightFestival == 1).ToList();
                foreach (var obj in list)
                {
                    bannerDetails.Add(new FestivalBannerModel()
                    {
                        FestivalArtUrl = obj.FestivalArtUrl, Id = obj.Id
                    });
                }
            }
            return(bannerDetails);
        }
예제 #4
0
        /// <summary>
        /// Get the award winner movies of previous year by festival name
        /// </summary>
        /// <param name="festivalname"></param>
        /// <returns></returns>
        public List <MovieModel> GetAllMoviesByFestivalName(string festivalname, int incrementIndex)
        {
            List <MovieModel> movielist = new List <MovieModel>();

            byte[] empty = { };
            //using (var repo = new filmfestivaldbEntities())
            //{
            //    var list = from t in repo.moviesdetails
            //               where t.FestivalFullName == festivalname
            //               && t.Title != ""
            //               && t.PosterLink != ""
            //               && t.YoutubeEmbeddedCode != empty
            //               && t.DisplayFilm == true
            //               group t by t.Title into g
            //               select g.FirstOrDefault();

            //    foreach (var obj in list)
            //    {
            //        movielist.Add(new MovieModel() { Id = obj.Id, Actors = obj.Actors, Award = obj.Award, Director = obj.Director, Festival = obj.FestivalFullName, Name = obj.Title, ReleasingDate = obj.Released, PosterUrl = obj.PosterLink, RunningTime = obj.Runtime });
            //    }
            //}
            using (var repo = new filmfestivaldbEntities())
            {
                var list = repo.moviesdetails.Where(x => x.FestivalFullName == festivalname &&
                                                    x.Title != "" &&
                                                    x.PosterLink != "" &&
                                                    x.YoutubeEmbeddedCode != empty &&
                                                    x.DisplayFilm == true
                                                    )
                           .ToList();

                list = list.GroupBy(g => g.Title)
                       .Select(s => s.FirstOrDefault())
                       .OrderBy(o => o.Id)
                       .Skip(MAXIMUM_ROWS * incrementIndex).Take(MAXIMUM_ROWS).ToList();

                foreach (var obj in list)
                {
                    movielist.Add(new MovieModel()
                    {
                        Id = obj.Id, Actors = obj.Actors, Award = obj.Award, Director = obj.Director, Festival = obj.FestivalFullName, Name = obj.Title, ReleasingDate = obj.Released, PosterUrl = obj.PosterLink, RunningTime = obj.Runtime
                    });
                }
            }
            return(movielist);
        }
예제 #5
0
        /// <summary>
        /// Get highlighted movies from database
        /// </summary>
        /// <returns></returns>
        public List <HighlightMovieModel> GetHighlightMovies()
        {
            List <HighlightMovieModel> highlightedMovieDetails = new List <HighlightMovieModel>();

            using (var repo = new filmfestivaldbEntities())
            {
                var list = repo.moviesdetails.Where(x => x.HighlightFilm == true && x.PosterLink != "").ToList();
                foreach (var obj in list)
                {
                    highlightedMovieDetails.Add(new HighlightMovieModel()
                    {
                        MoviePosterUrl = obj.PosterLink, Id = obj.Id
                    });
                }
                return(highlightedMovieDetails);
            }
        }
예제 #6
0
        /// <summary>
        /// Search the movies list by search criteria provided by the user.
        /// </summary>
        /// <param name="requestModel">searchModel</param>
        /// <param name="incrementIndex">incrementIndex</param>
        /// <returns></returns>
        public List <MovieDetailsModel> GetMoviesBySearchCriteria(SearchModel requestModel, int incrementIndex)
        {
            //Empty bytes array
            byte[] emptyByte = { };
            List <MovieDetailsModel> movieslist = new List <MovieDetailsModel>();

            using (var repo = new filmfestivaldbEntities())
            {
                var list = repo.moviesdetails.Where(x => (requestModel.Actor == null || x.Actors.Contains(requestModel.Actor)) &&
                                                    (requestModel.Award == null || x.Award.Equals(requestModel.Award)) &&
                                                    (requestModel.Director == null || x.Director.Contains(requestModel.Director)) &&
                                                    (requestModel.Festival == null || x.FestivalFullName.Equals(requestModel.Festival)) &&
                                                    (requestModel.FilmTitle == null || x.Title.Equals(requestModel.FilmTitle)) &&
                                                    (requestModel.Genre == null || x.Genre.Contains(requestModel.Genre)) &&
                                                    (requestModel.Year == null || x.AwardYear.Equals(requestModel.Year)) &&
                                                    (x.YoutubeEmbeddedCode != emptyByte) &&
                                                    (x.PosterLink != "") &&
                                                    (x.DisplayFilm == true)
                                                    ).ToList();

                list = list.GroupBy(g => g.Title)
                       .Select(s => s.FirstOrDefault())
                       .OrderBy(z => z.Id)
                       .Skip(incrementIndex * MAXIMUM_ROWS).Take(MAXIMUM_ROWS).ToList();


                foreach (var obj in list)
                {
                    movieslist.Add(new MovieDetailsModel()
                    {
                        About         = Encoding.Default.GetString(obj.Description),
                        Actors        = obj.Actors,
                        Award         = obj.Award,
                        Director      = obj.Director,
                        Festival      = obj.FestivalFullName,
                        Id            = obj.Id,
                        Location      = obj.Country,
                        Name          = obj.Title,
                        PosterUrl     = obj.PosterLink,
                        ReleasingDate = obj.Released,
                        RunningTime   = obj.Runtime
                    });
                }
            }
            return(movieslist);
        }
예제 #7
0
        /// <summary>
        /// Get the details of the festival by the festival id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public FestivalDetailsModel GetDetailsById(int id)
        {
            FestivalDetailsModel details = null;

            using (var repo = new filmfestivaldbEntities())
            {
                details = new FestivalDetailsModel();
                if (details != null)
                {
                    var festival = repo.festivaldetails.Where(x => x.Id == id).FirstOrDefault();
                    details.About            = System.Text.Encoding.Default.GetString(festival.About);
                    details.Address          = festival.City + ", " + festival.State + " " + festival.Country;
                    details.FestivalArtUrl   = festival.FestivalArtUrl;
                    details.Name             = festival.FestivalName;
                    details.Website          = festival.Website;
                    details.NextFestivalDate = festival.NextFestival;
                }
            }
            return(details);
        }
예제 #8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="searchModel"></param>
 /// <param name="incrementIndex"></param>
 /// <returns></returns>
 public List <FestivalMapModel> SearchDataForMap(MapSearchModel searchModel)
 {
     using (var repo = new filmfestivaldbEntities())
     {
         return(repo.festival_held.Join(repo.festivaldetails, fh => fh.FestivalId, fd => fd.Id, (fh, fd) => new { fh, fd })
                .Where(x => (searchModel.City == null || x.fd.City.Equals(searchModel.City)) &&
                       (searchModel.Country == null || x.fd.Country.Contains(searchModel.Country)) &&
                       (searchModel.FestivalName == null || x.fd.FestivalName.Contains(searchModel.FestivalName)) &&
                       (searchModel.Region == null || x.fd.Region.Equals(searchModel.Region)) &&
                       (searchModel.Month == null || x.fh.FestMonth.Equals(searchModel.Month))
                       ).OrderBy(z => z.fd.Id)
                .Select(y => new FestivalMapModel()
         {
             Country = y.fd.Country,
             FestivalName = y.fd.FestivalName,
             FestUrl = y.fd.FestivalArtUrl,
             Id = y.fd.Id,
             Lat = y.fd.Lat.ToString(),
             Long = y.fd.Lng.ToString()
         })
                .ToList());
     }
     //using (var repo = new filmfestivaldbEntities())
     //{
     //    return repo.festivaldetails.Where(x => (searchModel.City == null || x.City.Equals(searchModel.City))
     //                                           && (searchModel.Country == null || x.Country.Contains(searchModel.Country))
     //                                           && (searchModel.FestivalName == null || x.FestivalName.Contains(searchModel.FestivalName))
     //                                           && (searchModel.Region == null || x.Region.Equals(searchModel.Region))
     //                                           ).OrderBy(z => z.Id)
     //                                           .Select(y => new FestivalMapModel()
     //                                           {
     //                                               Country = y.Country,
     //                                               FestivalName = y.FestivalName,
     //                                               FestUrl = y.FestivalArtUrl,
     //                                               Id = y.Id,
     //                                               Lat = y.Lat.ToString(),
     //                                               Long = y.Lng.ToString()
     //                                           })
     //                                           .ToList();
     //}
 }
예제 #9
0
        /// <summary>
        /// Get current year movies
        /// </summary>
        /// <param name="incrementIndex"></param>
        /// <returns></returns>
        public List <MovieDetailsModel> GetAllMoviesCurrentYear(int incrementIndex)
        {
            byte[] emptyBytes = { };
            List <MovieDetailsModel> movieslist = new List <MovieDetailsModel>();

            using (var repo = new filmfestivaldbEntities())
            {
                var list = repo.moviesdetails.Where(x => x.AwardYear == "2015" &&
                                                    x.PosterLink != "" &&
                                                    x.YoutubeEmbeddedCode != emptyBytes &&
                                                    x.DisplayFilm == true)
                           .ToList();

                list = list.GroupBy(g => g.Title)
                       .Select(s => s.FirstOrDefault())
                       .OrderBy(z => z.Id)
                       .Skip(incrementIndex * MAXIMUM_ROWS).Take(MAXIMUM_ROWS).ToList();


                foreach (var obj in list)
                {
                    movieslist.Add(new MovieDetailsModel()
                    {
                        About         = Encoding.Default.GetString(obj.Description),
                        Actors        = obj.Actors,
                        Award         = obj.Award,
                        Director      = obj.Director,
                        Festival      = obj.FestivalFullName,
                        Id            = obj.Id,
                        Location      = obj.Country,
                        Name          = obj.Title,
                        PosterUrl     = obj.PosterLink,
                        ReleasingDate = obj.Released,
                        RunningTime   = obj.Runtime
                    });
                }
                return(movieslist);
            }
        }