Ejemplo n.º 1
0
        public async Task <List <Program> > GetAllPrograms(ProgramQuery query, int count)
        {
            var programs = new List <Program>();
            var updates  = await GetLatestUpdates();

            try
            {
                programs = await _context.Programs.Where(elem => updates.Contains(elem.Update.Id) &&
                                                         (!string.IsNullOrEmpty(query.Actor) ? elem.Actors.Contains(query.Actor) : true) &&
                                                         (!string.IsNullOrEmpty(query.Director) ? elem.Director.Contains(query.Director) : true) &&
                                                         (!string.IsNullOrEmpty(query.Genre) ? elem.Genre.Contains(query.Genre) : true) &&
                                                         (!string.IsNullOrEmpty(query.Language) ? elem.Language.Contains(query.Language) : true) &&
                                                         (query.MinRating.HasValue ? elem.ImdbRating >= query.MinRating : true) &&
                                                         (query.MaxRating.HasValue ? elem.ImdbRating <= query.MaxRating : true) &&
                                                         (query.Year.HasValue ? elem.Year >= query.Year : true))
                           .OrderByDescending(elem => elem.ImdbRating)
                           .ProjectToListAsync <Program>(_mapper.ConfigurationProvider);

                programs = programs.Where(elem => query.MinVotes.HasValue ? ConvertToNumber(elem.ImdbVotes, VotesSeparator) >= query.MinVotes : true)
                           .Take(count)
                           .ToList();
            }
            catch
            {
            }

            return(programs);
        }
Ejemplo n.º 2
0
        public object Get(GetPrograms request)
        {
            var query = new ProgramQuery
            {
                ChannelIdList = (request.ChannelIds ?? string.Empty).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray(),
                UserId        = request.UserId
            };

            if (!string.IsNullOrEmpty(request.MinStartDate))
            {
                query.MinStartDate = DateTime.Parse(request.MinStartDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();
            }

            if (!string.IsNullOrEmpty(request.MinEndDate))
            {
                query.MinEndDate = DateTime.Parse(request.MinEndDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();
            }

            if (!string.IsNullOrEmpty(request.MaxStartDate))
            {
                query.MaxStartDate = DateTime.Parse(request.MaxStartDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();
            }

            if (!string.IsNullOrEmpty(request.MaxEndDate))
            {
                query.MaxEndDate = DateTime.Parse(request.MaxEndDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();
            }

            var result = _liveTvManager.GetPrograms(query, CancellationToken.None).Result;

            return(ToOptimizedSerializedResultUsingCache(result));
        }
        private async Task GetProgrammes(bool refresh)
        {
            if (!NavigationService.IsNetworkAvailable || (_programmesLoaded && !refresh))
            {
                return;
            }

            try
            {
                SetProgressBar(AppResources.SysTrayGettingProgrammes);

                var query = new ProgramQuery
                {
                    UserId     = AuthenticationService.Current.LoggedInUserId,
                    ChannelIds = new[] { SelectedChannel.Id },
                    MaxEndDate = DateTime.Now.AddDays(1).Date
                };
                var items = await ApiClient.GetLiveTvProgramsAsync(query);

                if (items != null && !items.Items.IsNullOrEmpty())
                {
                    Programmes = items.Items.ToObservableCollection();
                }

                _programmesLoaded = true;
            }
            catch (HttpException ex)
            {
                Utils.HandleHttpException(ex, "GetProgrammes()", NavigationService, Log);
            }

            SetProgressBar();
        }
Ejemplo n.º 4
0
        public async Task MovieMeterService_WhenGetAllPrograms_ShouldCallRepository()
        {
            var query   = new ProgramQuery();
            var service = new MovieMeterService(_repository, _programProvider);

            var programs = await service.GetAllPrograms(query, 25);

            Assert.IsTrue(_repository.GetAllProgramsCalled);
        }
Ejemplo n.º 5
0
        public async Task <IHttpActionResult> Get([FromBody] ProgramQuery query, int count = 25)
        {
            try
            {
                var result = await _service.GetAllPrograms(query, count);

                return(Ok(result));
            }
            catch (Exception)
            {
                return(InternalServerError());
            }
        }
Ejemplo n.º 6
0
        public async Task <object> Get(GetPrograms request)
        {
            var query = new ProgramQuery
            {
                ChannelIds             = (request.ChannelIds ?? string.Empty).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray(),
                UserId                 = request.UserId,
                HasAired               = request.HasAired,
                EnableTotalRecordCount = request.EnableTotalRecordCount
            };

            if (!string.IsNullOrEmpty(request.MinStartDate))
            {
                query.MinStartDate = DateTime.Parse(request.MinStartDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();
            }

            if (!string.IsNullOrEmpty(request.MinEndDate))
            {
                query.MinEndDate = DateTime.Parse(request.MinEndDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();
            }

            if (!string.IsNullOrEmpty(request.MaxStartDate))
            {
                query.MaxStartDate = DateTime.Parse(request.MaxStartDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();
            }

            if (!string.IsNullOrEmpty(request.MaxEndDate))
            {
                query.MaxEndDate = DateTime.Parse(request.MaxEndDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();
            }

            query.StartIndex = request.StartIndex;
            query.Limit      = request.Limit;
            query.SortBy     = (request.SortBy ?? String.Empty).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            query.SortOrder  = request.SortOrder;
            query.IsMovie    = request.IsMovie;
            query.IsKids     = request.IsKids;
            query.IsSports   = request.IsSports;
            query.Genres     = (request.Genres ?? String.Empty).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

            var result = await _liveTvManager.GetPrograms(query, GetDtoOptions(request), CancellationToken.None).ConfigureAwait(false);

            return(ToOptimizedResult(result));
        }
Ejemplo n.º 7
0
        public async Task <List <Program> > GetAllPrograms(ProgramQuery query, int count)
        {
            var programs = await Repository.GetAllPrograms(query, count);

            return(programs);
        }
Ejemplo n.º 8
0
        public ActionResult Edit(int id)
        {
            var query = new ProgramQuery { ProgramId = id };

            return HandleBusResult(_bus.Request(query), result => View(result.Data));
        }
Ejemplo n.º 9
0
 public Task <List <Program> > GetAllPrograms(ProgramQuery query, int count)
 {
     throw new NotImplementedException();
 }