コード例 #1
0
        private IEnumerable <Billboard> BuildBillboards(GetIntelligentBillboardRequest request, List <MovieInfo> movies)
        {
            var startDate  = _dateService.Now();
            var weekLength = 7;
            var totalWeeks = request.TimePeriod;

            for (int week = 0; week < totalWeeks; week++)
            {
                var billboard = Billboard.Create(startDate,
                                                 GetMoviesWithValidReleaseDateAndSize(movies, request.BigRooms, startDate, MovieInfo.BigScreen)
                                                 .ValueOr(() => new List <MovieInfo>()),
                                                 GetMoviesWithValidReleaseDateAndSize(movies, request.SmallRooms, startDate, MovieInfo.SmallScreen)
                                                 .ValueOr(() => new List <MovieInfo>()));
                movies = movies.Where(m =>
                                      !billboard.BigScreenMovies.Contains(m) && !billboard.SmallScreenMovies.Contains(m)).ToList();
                startDate = startDate.AddDays(weekLength);
                yield return(billboard);
            }
        }
コード例 #2
0
 private GetIntelligentBillboardResponse IntelligentBillboardResultSeed()
 {
     return(new GetIntelligentBillboardResponse(
                new List <Billboard>
     {
         Billboard.Create(new DateTime(2020, 4, 20),
                          new List <MovieInfo>()
         {
             MovieInfo.Create("Title1",
                              "Overview 1",
                              new List <string>()
             {
                 "Action", "Adventure"
             },
                              "es",
                              new DateTime(2020, 4, 20),
                              800,
                              MovieInfo.SmallScreen),
             MovieInfo.Create("Title2",
                              "Overview 2",
                              new List <string>()
             {
                 "Action", "Adventure"
             },
                              "es",
                              new DateTime(2020, 4, 20),
                              700,
                              MovieInfo.SmallScreen)
         },
                          new List <MovieInfo>()
         {
             MovieInfo.Create("Title3",
                              "Overview 3",
                              new List <string>()
             {
                 "Action", "Adventure"
             },
                              "es",
                              new DateTime(2020, 4, 20),
                              600,
                              MovieInfo.BigScreen),
             MovieInfo.Create("Title4",
                              "Overview 4",
                              new List <string>()
             {
                 "Action", "Adventure"
             },
                              "es",
                              new DateTime(2020, 4, 20),
                              500,
                              MovieInfo.BigScreen)
         }),
         Billboard.Create(new DateTime(2020, 4, 27),
                          new List <MovieInfo>()
         {
             MovieInfo.Create("Title5",
                              "Overview 5",
                              new List <string>()
             {
                 "Action", "Adventure"
             },
                              "es",
                              new DateTime(2020, 4, 27),
                              400,
                              MovieInfo.SmallScreen),
             MovieInfo.Create("Title6",
                              "Overview 6",
                              new List <string>()
             {
                 "Action", "Adventure"
             },
                              "es",
                              new DateTime(2020, 4, 27),
                              300,
                              MovieInfo.SmallScreen)
         },
                          new List <MovieInfo>()
         {
             MovieInfo.Create("Title7",
                              "Overview 7",
                              new List <string>()
             {
                 "Action", "Adventure"
             },
                              "es",
                              new DateTime(2020, 4, 27),
                              200,
                              MovieInfo.BigScreen),
             MovieInfo.Create("Title8",
                              "Overview 8",
                              new List <string>()
             {
                 "Action", "Adventure"
             },
                              "es",
                              new DateTime(2020, 4, 27),
                              100,
                              MovieInfo.BigScreen)
         })
     }.SomeNotNull()));
 }