Пример #1
0
        public void GetLastFMRecentlyPlayedWithAfterParam_CorrectResponseReturned()
        {
            var after = DateTime.UtcNow.AddDays(-1);

            sut = MakeSut();
            var listeningHistory = sut.GetLastFMRecentlyPlayed("SomeUser", after);

            IF.Lastfm.Core.Api.Helpers.PageResponse <IF.Lastfm.Core.Objects.LastTrack> actualHistory = (IF.Lastfm.Core.Api.Helpers.PageResponse <IF.Lastfm.Core.Objects.LastTrack>)listeningHistory.Value;
            actualHistory.Should().NotBeNull();
            actualHistory.Should().BeOfType <IF.Lastfm.Core.Api.Helpers.PageResponse <IF.Lastfm.Core.Objects.LastTrack> >();
            actualHistory.Content.Should().HaveCount(1);
        }
        public JsonResult GetLastFMRecentlyPlayed(string user_name, DateTimeOffset?after = null, double duration = 0)
        {
            List <IF.Lastfm.Core.Objects.LastTrack> validListeningHistory = new List <IF.Lastfm.Core.Objects.LastTrack>();

            IF.Lastfm.Core.Api.Helpers.PageResponse <IF.Lastfm.Core.Objects.LastTrack> returnedHistory = (IF.Lastfm.Core.Api.Helpers.PageResponse <IF.Lastfm.Core.Objects.LastTrack>) this.dataSource.GetLastFMRecentlyPlayed(user_name, after).Result.Value;
            if (duration != 0)
            {
                double actualDuration = (double)duration;
                var    actualAfter    = (DateTimeOffset)after;
                var    end            = actualAfter.AddSeconds(actualDuration);
                foreach (var item in returnedHistory.Content)
                {
                    if (item.TimePlayed >= actualAfter && item.TimePlayed < end)
                    {
                        validListeningHistory.Add(item);
                    }
                }
                return(new JsonResult(new IF.Lastfm.Core.Api.Helpers.PageResponse <IF.Lastfm.Core.Objects.LastTrack>(validListeningHistory)));
            }
            else
            {
                return(new JsonResult(returnedHistory));
            }
        }