Пример #1
0
        public IActionResult Post([FromBody] ScreeningDto request,
                                  [FromServices] IScreeningInsert command)
        {
            _executor.ExecuteCommand(command, request);

            return(StatusCode(201));
        }
Пример #2
0
        public void Execute(ScreeningDto request)
        {
            var splitDate = request.Date.Split('-');

            var searchDate = new DateTime(int.Parse(splitDate[0]), int.Parse(splitDate[1]), int.Parse(splitDate[2]), int.Parse(request.Time), 0, 0);

            var modifiedRequest = new ScreeningDto
            {
                MovieId       = request.MovieId,
                AuditoriumId  = request.AuditoriumId,
                ScreeningTime = searchDate
            };

            _validator.ValidateAndThrow(modifiedRequest);

            var screening = new Screening
            {
                MovieId       = request.MovieId,
                AuditoriumId  = request.AuditoriumId,
                ScreeningTime = searchDate
            };

            _context.Screenings.Add(screening);

            _context.SaveChanges();
        }
Пример #3
0
        public List <ScreeningDto> GetScreenings()
        {
            using (SqlConnection conn = new SqlConnection(_connection.connectionString))
            {
                conn.Open();
                var        screenings = new List <ScreeningDto>();
                SqlCommand command    = new SqlCommand("SELECT Id, IdMovie, IdHall, DateOfScreening, TimeOfScreening FROM Screening", conn);

                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var screening = new ScreeningDto
                        {
                            Id              = (int)reader["Id"],
                            MovieId         = (int)reader["IdMovie"],
                            HallId          = (int)reader["IdHall"],
                            DateOfScreening = (DateTime)reader["DateOfScreening"],
                            TimeOfScreening = (TimeSpan)reader["TimeOfScreening"]
                        };

                        screenings.Add(screening);
                    }
                }
                return(screenings);
            }
        }
Пример #4
0
        public void Execute(ScreeningDto request)
        {
            var screening = _context.Screenings.Find(request.Id);

            if (screening == null)
            {
                throw new NotFoundException(request.Id, typeof(ScreeningDto));
            }


            var splitDate = request.Date.Split('-');

            var searchDate = new DateTime(int.Parse(splitDate[0]), int.Parse(splitDate[1]), int.Parse(splitDate[2]), int.Parse(request.Time), 0, 0);


            var modifiedRequest = new ScreeningDto
            {
                MovieId       = request.MovieId,
                AuditoriumId  = request.AuditoriumId,
                ScreeningTime = searchDate
            };

            _validator.ValidateAndThrow(modifiedRequest);


            screening.MovieId       = request.MovieId;
            screening.AuditoriumId  = request.AuditoriumId;
            screening.ScreeningTime = searchDate;

            _context.SaveChanges();
        }
Пример #5
0
        public List <ScreeningDto> GetScreeningsForMovie(int idMovie)
        {
            using (SqlConnection conn = new SqlConnection(_connection.connectionString))
            {
                conn.Open();
                SqlCommand command;
                var        screenings         = new List <ScreeningDto>();
                DateTime   ScreeningDateCheck = new DateTime(1800, 2, 3);
                command = new SqlCommand(@"SELECT Id, IdMovie, IdHall, DateOfScreening, TimeOfScreening FROM Screening WHERE 
            IdMovie = @IdMovie ORDER BY TimeOfScreening", conn);
                command.Parameters.AddWithValue("@IdMovie", idMovie);


                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var screening = new ScreeningDto
                        {
                            Id              = (int)reader["Id"],
                            MovieId         = (int)reader["IdMovie"],
                            HallId          = (int)reader["IdHall"],
                            DateOfScreening = (DateTime)reader["DateOfScreening"],
                            TimeOfScreening = (TimeSpan)reader["TimeOfScreening"]
                        };

                        screenings.Add(screening);
                    }
                }
                return(screenings);
            }
        }
Пример #6
0
        public ScreeningDto GetScreeningById(int id)
        {
            using (SqlConnection conn = new SqlConnection(_connection.connectionString))
            {
                conn.Open();

                SqlCommand command = new SqlCommand("SELECT Id, IdMovie, IdHall, DateOfScreening, TimeOfScreening FROM Screening WHERE Id = @Id", conn);
                command.Parameters.AddWithValue("@Id", id);
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var screening = new ScreeningDto
                        {
                            Id              = (int)reader["Id"],
                            MovieId         = (int)reader["IdMovie"],
                            HallId          = (int)reader["IdHall"],
                            DateOfScreening = (DateTime)reader["DateOfScreening"],
                            TimeOfScreening = (TimeSpan)reader["TimeOfScreening"]
                        };
                        return(screening);
                    }
                }
                return(null);
            }
        }
        public void given_source_is_null_then_Translate_returns_null()
        {
            ScreeningDto source = default;
            var          actual = ScreeningViewModel.Translate(source);

            actual.Should().BeNull();
        }
 public NewReservationPage(ScreeningDto screening)
 {
     InitializeComponent();
     _screening     = screening;
     BindingContext = model = new NewReservationViewModel {
         Screening = screening
     };
 }
Пример #9
0
        public IActionResult Put(int id,
                                 [FromBody] ScreeningDto request,
                                 [FromServices] IScreeningUpdate command)
        {
            request.Id = id;
            _executor.ExecuteCommand(command, request);

            return(NoContent());
        }
Пример #10
0
        public async Task UpdateScreeningAsync(ScreeningDto screening)
        {
            HttpResponseMessage response = await _client.PutAsJsonAsync($"api/Screenings/{screening.Id}", screening);

            if (!response.IsSuccessStatusCode)
            {
                throw new NetworkException("Service returned response: " + response.StatusCode);
            }
        }
Пример #11
0
        public async Task CreateScreeningAsync(ScreeningDto screening)
        {
            HttpResponseMessage response = await _client.PostAsJsonAsync("api/Screenings/", screening);

            screening.Id = (await response.Content.ReadAsAsync <ScreeningDto>()).Id;

            if (!response.IsSuccessStatusCode)
            {
                throw new NetworkException("Service returned response: " + response.StatusCode);
            }
        }
Пример #12
0
 private TimingStatus GetTimingStatus(ScreeningDto screening)
 {
     if (screening.DateAndTime > DateTime.UtcNow)
     {
         return(TimingStatus.SCHEDULED);
     }
     else
     {
         return(TimingStatus.STARTED);
     }
 }
Пример #13
0
        public ActionResult <ScreeningDto> PostScreening(ScreeningDto screeningDto)
        {
            var screening = _service.CreateScreening((Screening)screeningDto);

            if (screening is null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
            else
            {
                return(CreatedAtAction(nameof(GetScreening), new { id = screening.Id }, (ScreeningDto)screening));
            }
        }
Пример #14
0
 public static ScreeningViewModel Translate(ScreeningDto source)
 {
     return(source == null ? default : new ScreeningViewModel
            {
                Id = source.Id,
                TheaterId = source.TheaterId,
                TheaterName = source.TheaterName,
                ScreeningTime = source.ScreeningTime,
                DefaultFee = source.DefaultFee,
                ChildrenFee = source.ChildrenFee,
                CreatedAt = source.CreatedAt,
            });
 }
        private void LoadPropertyValues(ScreeningDto result)
        {
            LoadComboboxLists();

            dtpScreeningDate.Value = result.DateAndTime;
            dtpScreeningTime.Value = result.DateAndTime;
            cmbMovie.SelectedValue = result.Movie.Id;
            cmbHall.SelectedValue  = result.Hall.Id;
            cmbPrice.SelectedValue = result.Pricing.Id;

            if (result != null && result.Movie != null && result.Movie.Poster.Length > 0)
            {
                picPoster.Image = result.Movie.Poster.ToImage();
            }
        }
Пример #16
0
        public async Task <IActionResult> FindScreening(
            [FromRoute] Guid movieId,
            [FromRoute] Guid screeningId,
            [FromServices] MovieReadModelFacade readModelFacade)
        {
            MovieDto movie = await readModelFacade.FindMovie(movieId);

            ScreeningDto screening = movie?
                                     .Screenings
                                     .SingleOrDefault(s => s.Id == screeningId);

            return(screening == null
                ? NotFound()
                : (IActionResult)Ok(screening));
        }
Пример #17
0
        public void PostScreeningTest()
        {
            // Arrange
            var newScreening = new ScreeningDto {
                StartTime = DateTime.Now, MovieId = 1, RoomId = 1
            };
            var count = _context.Screenings.Count();

            // Act
            var result = _screeningController.PostScreening(newScreening);

            // Assert
            var objectResult = Assert.IsAssignableFrom <CreatedAtActionResult>(result.Result);
            var content      = Assert.IsAssignableFrom <ScreeningDto>(objectResult.Value);

            Assert.Equal(count + 1, _context.Screenings.Count());
        }
        public void Translate_sets_simple_type_properties_correctly(
            ScreeningDto source)
        {
            // Act
            var actual = ScreeningViewModel.Translate(source);

            // Assert
            actual.Should().BeEquivalentTo(new
            {
                source.Id,
                source.TheaterId,
                source.TheaterName,
                source.ScreeningTime,
                source.DefaultFee,
                source.ChildrenFee,
                source.CreatedAt,
            });
        }
        public ActionResult <ScreeningDto> PostScreening(ScreeningDto screeningDto)
        {
            if (!screeningDto.IsValid())
            {
                return(StatusCode(StatusCodes.Status406NotAcceptable));
            }

            var screening = _service.CreateScreening((Screening)screeningDto);

            if (screening == null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
            else
            {
                return(CreatedAtAction("GetScreening", new { id = screening.Id }, (ScreeningDto)screening));
            }
        }
        public void Should_ReturnTrue_WhenNotAddingAScreeningOnTheSameTimeInTheSameHall()
        {
            //Arrange
            ScreeningDto screening = new ScreeningDto
            {
                Id              = 2,
                MovieId         = 1,
                HallId          = 1,
                DateOfScreening = new DateTime(2020, 1, 1),
                TimeOfScreening = new TimeSpan(4, 0, 0)
            };

            //Act
            bool timeAvailable = screeningLogic.IsThisDateAndTimeAvailable(screening.HallId, screening.DateOfScreening, screening.TimeOfScreening, screening.MovieId, screening.Id);

            //Assert
            Assert.True(timeAvailable);
        }
Пример #21
0
        public ScreeningDto Execute(int search)
        {
            var screning = _context.Screenings.Find(search);

            if (screning == null)
            {
                new NotFoundException(search, typeof(Screening));
            }

            var response = new ScreeningDto
            {
                Id            = screning.Id,
                MovieId       = screning.MovieId,
                AuditoriumId  = screning.AuditoriumId,
                ScreeningTime = screning.ScreeningTime
            };

            return(response);
        }
        public IActionResult PutScreening(int id, ScreeningDto screeningDto)
        {
            if (id != screeningDto.Id)
            {
                return(BadRequest());
            }

            if (!screeningDto.IsValid())
            {
                return(StatusCode(StatusCodes.Status406NotAcceptable));
            }

            if (_service.UpdateScreening((Screening)screeningDto))
            {
                return(Ok());
            }
            else
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
Пример #23
0
        public async Task <GoodsInfoCategoryListDto> GetCategoryByParams(GoodsInfoCategoryParam param = null)
        {
            if (param == null)
            {
                return(null);
            }

            GoodsInfoCategoryListDto dto       = new GoodsInfoCategoryListDto();
            ScreeningDto             screenDto = new ScreeningDto();

            screenDto.price_grade = new List <GradeDto>();

            List <int> ids = new List <int>();

            await Task.Run(() =>
            {
                IEnumerable <CategoryItemInBrands> inBrands = goodsCategoryService.GetCategoryItemInBrandsByCategoryItemId(param.CategoryItemid);
                foreach (var inBrandItem in inBrands)
                {
                    ids.Add(inBrandItem.BrandsId);
                }
                var brands = goodsCategoryService.GetCategoryItemBrandsIds(ids);
                ids.Clear();
                Mapper.Initialize(c => c.CreateMap <CategoryItemBrands, BrandDto>()
                                  .ForMember(dest => dest.brand_id, opt => opt.MapFrom(src => src.BrandsId))
                                  .ForMember(dest => dest.brand_name, opt => opt.MapFrom(src => src.BrandsName))
                                  );
                screenDto.brands = Mapper.Map <IEnumerable <CategoryItemBrands>, List <BrandDto> >(brands);
            });

            await Task.Run(() =>
            {
                IEnumerable <CategoryItemInChara> inCharas = goodsCategoryService.GetCategoryItemInCharaByCategoryItemId(param.CategoryItemid);
                foreach (var inCharaItem in inCharas)
                {
                    ids.Add(inCharaItem.CharaId);
                }
                var charas = goodsCategoryService.GetCategoryItemCharaIds(ids);
                ids.Clear();
                Mapper.Initialize(c => c.CreateMap <CategoryItemChara, CharaDto>()
                                  .ForMember(dest => dest.chara, opt => opt.MapFrom(src => src.CharaId))
                                  .ForMember(dest => dest.name, opt => opt.MapFrom(src => src.CharaName))
                                  );
                screenDto.characteristic = Mapper.Map <IEnumerable <CategoryItemChara>, List <CharaDto> >(charas);
            });



            await Task.Run(() =>
            {
                PagingDataSet <GoodsInfo> pageing = goodsInfoService.GetPageGoodsInfoAPI(ParamsToKeyValue(param), ParamsSortValue(param.Sort), param.PageIndex, param.PageSize);
                dto.page_total  = pageing.PageCount;
                dto.c_total     = (int)pageing.TotalRecords;
                dto.c_page_next = param.PageIndex + 1;

                var pageings = pageing.ToList();
                Mapper.Initialize(c => c.CreateMap <GoodsInfo, GoodsInfoCategoryDto>()
                                  .ForMember(dest => dest.is_vedio, opt => opt.MapFrom(src => false))
                                  .ForMember(dest => dest.goods_id, opt => opt.MapFrom(src => src.Goodsid))
                                  .ForMember(dest => dest.goods_name, opt => opt.MapFrom(src => src.GoodsName))
                                  .ForMember(dest => dest.app_price, opt => opt.MapFrom(src => src.GoodsRealPrice))
                                  .ForMember(dest => dest.comment_num, opt => opt.MapFrom(src => src.CommenCount))
                                  .ForMember(dest => dest.img_url, opt => opt.MapFrom(src => src.ImageUrl))
                                  .ForMember(dest => dest.is_free_shipping, opt => opt.MapFrom(src => true))
                                  .ForMember(dest => dest.is_new, opt => opt.MapFrom(src => false))
                                  .ForMember(dest => dest.is_promote, opt => opt.MapFrom(src => false))
                                  .ForMember(dest => dest.sold_num, opt => opt.MapFrom(src => src.BuyCount))
                                  .ForMember(dest => dest.is_hot, opt => opt.MapFrom(src => src.IsHot))
                                  );
                dto.goods_list = Mapper.Map <List <GoodsInfo>, List <GoodsInfoCategoryDto> >(pageings);
            });

            dto.screening = screenDto;
            return(dto);
        }