/// <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); } }
/// <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); }
/// <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); }
/// <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); }
/// <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); } }
/// <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); }
/// <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); }
/// <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(); //} }
/// <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); } }