public SelectScreeningForm(Cinema cinema)
 {
     this.screeningService = new ScreeningService();
     this.movieService     = new MovieService();
     this.cinema           = cinema;
     InitializeComponent();
 }
        public async void GivenNewScreeningWithTwoScreeningsInDatabase_WhenAddingAThirdScreening_ThenThirdScreeningIsAdded()
        {
            var       testGuid      = Guid.NewGuid();
            Screening testScreening = new CV_Screening("testtess", testGuid);

            testScreening.UpdateStatusToFalse();
            Screening        testScreening2 = new Phone_Screening("ezqdsrezrez", testGuid);
            Screening        testScreening3 = new TestResults_Screening("ezqdsrezrazezaeez", testGuid);
            List <Screening> testList       = new List <Screening>()
            {
                testScreening, testScreening2
            };

            var mockRepo = Substitute.For <ScreeningRepository>();

            mockRepo.AddNewScreeningToDatabase(testScreening3)
            .Returns(Task.FromResult(testScreening3));
            mockRepo.GetAllById(testGuid)
            .Returns(Task.FromResult(testList));
            var mockLogger = Substitute.For <ILoggerManager>();
            var mockJopApp = Substitute.For <IJobApplicationService>();
            var service    = new ScreeningService(mockRepo, mockLogger, mockJopApp);

            var actualScreenings = await service.NewScreening(testGuid.ToString(), testScreening3.Comment);

            Assert.True(actualScreenings.Count == 3);
            Assert.Equal(testScreening3.Comment, actualScreenings[2].Comment);
            Assert.IsType <TestResults_Screening>(actualScreenings[2]);
            Assert.False(actualScreenings[1].Status);
        }
Esempio n. 3
0
 private void EditTicketButton_Click(object sender, EventArgs e)
 {
     try
     {
         int        ticketId          = ticket.Id;
         string     date              = dateComboBox.Text;
         string     time              = timeComboBox.Text;
         DateTime   screeningDateTime = ScreeningService.GetDateTimeFromDateAndTime(date, time);
         string     townName          = townComboBox.Text;
         string     cinemaName        = cinemaComboBox.Text;
         string     movieName         = GetMovieName(movieComboBox.Text);
         int        movieYear         = GetMovieYear(movieComboBox.Text);
         Screening  screening         = ScreeningService.GetScreeningUsingMovieYear(townName, cinemaName, movieName, screeningDateTime, movieYear);
         int        screeningId       = screening.Id;
         int        auditoriumId      = screening.AuditoriumId;
         Seat       seat              = SeatService.GetSeat(auditoriumId, byte.Parse(seatComboBox.Text));
         int        seatId            = seat.Id;
         string     type              = typeComboBox.Text;
         TicketType ticketType        = (TicketType)Enum.Parse(typeof(TicketType), type);
         TicketService.UpdateTicket(ticketId, screeningId, seatId, ticketType);
         MessageBox.Show(Constants.SuccessMessages.TicketUpdatedSuccessfully);
         EditUserTicketsForm ticketsForm = new EditUserTicketsForm(user);
         ticketsForm.TopLevel   = false;
         ticketsForm.AutoScroll = true;
         this.Hide();
         ((Button)sender).Parent.Parent.Controls.Add(ticketsForm);
         ticketsForm.Show();
     }
     catch (Exception exception)
     {
         MessageBox.Show(Constants.ErrorMessages.TicketUpdateErrorMessage);
     }
 }
Esempio n. 4
0
        public MovieForm(Movie movie)
        {
            this.imageService     = new ImageService();
            this.townService      = new TownService();
            this.cinemaService    = new CinemaService();
            this.screeningService = new ScreeningService();

            InitializeComponent();

            if (AuthenticationManager.IsAuthenticated() && !AuthenticationManager.HasSuperRights())
            {
                this.Controls.Add(this.ticketsButton);
                this.Controls.Add(this.townBox);
                this.Controls.Add(this.hourBox);
                this.Controls.Add(this.dateBox);
                this.Controls.Add(this.cinemaComboBox);
            }

            System.Drawing.Image image = imageService.byteArrayToImage(movie.Image.Content);
            this._movie                 = movie;
            this.pictureBox.Image       = imageService.ScaleImage(image, 142, 224);
            this.titleBox.Text          = _movie.Name;
            this.genreBox.Text          = string.Join(", ", this._movie.Categories.Select(c => c.Name));
            this.lengthBox.Text         = _movie.Length.ToString() + " minutes";
            this.yearBox.Text           = _movie.ReleaseYear.ToString();
            this.ratingBox.Text         = _movie.Rating.ToString() + " / 10";
            this.directorBox.Text       = _movie.DirectorName;
            this.ageRestrictionBox.Text = _movie.AgeRestriction.ToString();
            this.castBox.Text           = string.Join(",", this._movie.Cast.Select(c => c.Name));
            this.synopsisBox.Text       = _movie.Synopsis;
            this.townBox.Text           = "Select town";
            this.townBox.Items.AddRange(townService.GetTownsNames());
            this.FormBorderStyle = FormBorderStyle.None;
        }
Esempio n. 5
0
 public static void ValidateScreeningTimeAvailable(DateTime startTime, int auditoriumId, string movieName, int movieYear)
 {
     if (!ScreeningService.IsScreeningAvailableInAuditorium(auditoriumId, startTime, movieName, movieYear))
     {
         throw new InvalidOperationException();
     }
 }
Esempio n. 6
0
 public static void ValidateScreeningDoesntExist(int auditoriumId, DateTime date)
 {
     if (ScreeningService.IsScreeningExisting(auditoriumId, date))
     {
         throw new InvalidOperationException(Constants.ErrorMessages.ScreeningAlreadyExists);
     }
 }
Esempio n. 7
0
 public static void ValidateScreeningAvailable(int screeningId, DateTime startTime)
 {
     if (!ScreeningService.IsScreeningAvailable(screeningId, startTime))
     {
         throw new InvalidOperationException();
     }
 }
Esempio n. 8
0
        public static void ImportScreening(ScreeeningDto screeningDto)
        {
            byte auditoriumNumber = screeningDto.AuditoriumNumber;

            string cinemaTown = screeningDto.CinemaTown;

            TownValidator.CheckTownExisting(cinemaTown);

            int    townId     = TownService.GetTownId(cinemaTown);
            string cinemaName = screeningDto.CinemaName;

            CinemaValidator.CheckCinemaExisting(cinemaName, townId);

            int cinemaId = CinemaService.GetCinemaId(cinemaName, townId);

            AuditoriumValidator.CheckAuditoriumExists(auditoriumNumber, cinemaId, cinemaName);

            string movieName        = screeningDto.MovieName;
            int    movieReleaseYear = screeningDto.MovieReleaseYear;

            MovieValidator.CheckMovieExists(movieName, movieReleaseYear);

            int      auditoriumId = AuditoriumService.GetAuditoriumId(auditoriumNumber, cinemaId);
            DateTime date         = screeningDto.Date;

            ScreeningValidator.ValidateScreeningDoesntExist(auditoriumId, date);

            int movieId = MovieService.GetMovieId(movieName, movieReleaseYear);

            ScreeningService.AddScreening(auditoriumId, movieId, date);

            Console.WriteLine(string.Format(Constants.ImportSuccessMessages.ScreeningAddedSuccess, auditoriumNumber, cinemaName));
        }
Esempio n. 9
0
        private void EditScreeningButton_Click(object sender, EventArgs e)
        {
            try
            {
                DateTime getDate = DateCalendar.SelectionRange.Start;
                string   date    = getDate.Day.ToString() + " " + getDate.ToString("MMM") + " " + getDate.DayOfWeek.ToString();
                DateTime getTime = TimePicker.Value;
                string   time    = getTime.ToString("hh") + ":" + getTime.ToString("mm") + " " + getTime.ToString("tt", CultureInfo.InvariantCulture);

                DateTime startTime = ScreeningService.GetDateTimeFromDateAndTime(date, time);
                ScreeningValidator.ValidateScreeningAvailable(screening.Id, startTime);
                ScreeningService.UpdateScreening(screening.Id, startTime);
                MessageBox.Show("Screening updated successfully!");
                Cinema cinema = CinemaService.GetCinemaWithScreenings(screening.Auditorium.CinemaId);
                SelectScreeningForm screeningsForm = new SelectScreeningForm(cinema);
                screeningsForm.TopLevel   = false;
                screeningsForm.AutoScroll = true;
                this.Hide();
                ((Button)sender).Parent.Parent.Controls.Add(screeningsForm);
                screeningsForm.Show();
            }
            catch (Exception exception)
            {
                MessageBox.Show("Screening updated failed!");
            }
        }
Esempio n. 10
0
 private void AddScreeningButton_Click(object sender, EventArgs e)
 {
     try
     {
         string   movieName        = GetMovieName(movieComboBox.Text);
         int      year             = GetMovieYear(movieComboBox.Text);
         DateTime getDate          = DateCalendar.SelectionRange.Start;
         string   date             = getDate.Day.ToString() + " " + getDate.ToString("MMM") + " " + getDate.DayOfWeek.ToString();
         DateTime getTime          = TimePicker.Value;
         string   time             = getTime.ToString("hh") + ":" + getTime.ToString("mm") + " " + getTime.ToString("tt", CultureInfo.InvariantCulture);
         DateTime startTime        = ScreeningService.GetDateTimeFromDateAndTime(date, time);
         byte     auditoriumNumber = byte.Parse(auditoriumComboBox.Text);
         int      auditoriumId     = AuditoriumService.GetAuditoriumId(auditoriumNumber, this.cinema.Id);
         int      movieId          = MovieService.GetMovieId(movieName, year);
         ScreeningValidator.ValidateScreeningTimeAvailable(startTime, auditoriumId, movieName, year);
         ScreeningService.AddScreening(auditoriumId, movieId, startTime);
         MessageBox.Show("Screening added successfully!");
         Cinema cinema = CinemaService.GetCinemaWithScreenings(this.cinema.Id);
         SelectScreeningForm screeningsForm = new SelectScreeningForm(cinema);
         screeningsForm.TopLevel   = false;
         screeningsForm.AutoScroll = true;
         this.Hide();
         ((Button)sender).Parent.Parent.Controls.Add(screeningsForm);
         screeningsForm.Show();
     }
     catch (Exception exception)
     {
         MessageBox.Show("Add screening failed!");
     }
 }
Esempio n. 11
0
        private void CheckScreeningAvailable()
        {
            if (movieComboBox.Text == "")
            {
                return;
            }
            if (auditoriumComboBox.Text == "")
            {
                return;
            }
            string   movieName        = GetMovieName(movieComboBox.Text);
            int      year             = GetMovieYear(movieComboBox.Text);
            DateTime getDate          = DateCalendar.SelectionRange.Start;
            string   date             = getDate.Day.ToString() + " " + getDate.ToString("MMM") + " " + getDate.DayOfWeek.ToString();
            DateTime getTime          = TimePicker.Value;
            string   time             = getTime.ToString("hh") + ":" + getTime.ToString("mm") + " " + getTime.ToString("tt", CultureInfo.InvariantCulture);
            DateTime startTime        = ScreeningService.GetDateTimeFromDateAndTime(date, time);
            byte     auditoriumNumber = byte.Parse(auditoriumComboBox.Text);

            int auditoriumId = AuditoriumService.GetAuditoriumId(auditoriumNumber, this.cinema.Id);

            if (!ScreeningService.IsScreeningAvailableInAuditorium(auditoriumId, startTime, movieName, year))
            {
                ScreeningTaken.Visible = true;
                ScreeningTaken.Text    = "Screening is already taken!";
            }
            else
            {
                ScreeningTaken.Visible = false;
            }
        }
Esempio n. 12
0
 public EditScreening(Screening screening)
 {
     this.screeningService   = new ScreeningService();
     this.screeningValidator = new ScreeningValidator(screeningService);
     this.cinemaService      = new CinemaService();
     this.screening          = screening;
     InitializeComponent();
 }
Esempio n. 13
0
        public TicketForm()
        {
            this.cinemaService    = new CinemaService();
            this.screeningService = new ScreeningService();
            this.movieService     = new MovieService();
            this.townService      = new TownService();
            this._movies          = new List <Movie>();

            InitializeComponent();
        }
Esempio n. 14
0
 public ShowScreeningsForm()
 {
     this.cinemaService     = new CinemaService();
     this.townService       = new TownService();
     this.movieService      = new MovieService();
     this.screeningService  = new ScreeningService();
     this._screenings       = new List <Screening>();
     this._screeningsHolder = new ScreeningsHolder();
     InitializeComponent();
 }
Esempio n. 15
0
 public AddScreeningForm(Cinema cinema)
 {
     this.movieService       = new MovieService();
     this.auditoriumService  = new AuditoriumService();
     this.cinemaService      = new CinemaService();
     this.screeningService   = new ScreeningService();
     this.screeningValidator = new ScreeningValidator(screeningService);
     this.cinema             = cinema;
     InitializeComponent();
 }
Esempio n. 16
0
        private void movieComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.dateComboBox.Items.Clear();
            this.timeComboBox.Items.Clear();
            string movieName = GetMovieName(movieComboBox.Text);
            int    movieYear = GetMovieYear(movieComboBox.Text);

            string[] dates = ScreeningService.GetAllDatesForMovieInCinemaByNameAndYear(cinema.Town.Name, cinema.Name, movieName,
                                                                                       movieYear);
            dateComboBox.Items.AddRange(dates);
        }
Esempio n. 17
0
 public EditTicketForm(User user, Ticket ticket)
 {
     this.user             = user;
     this.ticket           = ticket;
     this.townService      = new TownService();
     this.cinemaService    = new CinemaService();
     this.ticketService    = new TicketService();
     this.movieService     = new MovieService();
     this.screeningService = new ScreeningService();
     this.seatService      = new SeatService();
     InitializeComponent();
 }
Esempio n. 18
0
        private void dateComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.timeComboBox.Items.Clear();
            string movieName = GetMovieName(movieComboBox.Text);
            int    movieYear = GetMovieYear(movieComboBox.Text);

            string date = dateComboBox.Text;

            string[] hours = ScreeningService.GetHoursForMoviesByDateMovieNameAndYear(cinema.Town.Name, cinema.Name, movieName,
                                                                                      movieYear, date);
            timeComboBox.Items.AddRange(hours);
        }
        private void movieComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            ClearScreeningsHolder();
            this._movieName = this.movieComboBox.SelectedItem.ToString();

            var screenings = ScreeningService.GetScreeningsByTownCinemaAndMovie(this._townName, this._cinemaName,
                                                                                this._movieName);

            this._screenings = screenings.ToList();

            RenderScreeningsHolder();
        }
 public ScreeningImportService()
 {
     this.auditoriumService   = new AuditoriumService();
     this.cinemaService       = new CinemaService();
     this.auditoriumValidator = new AuditoriumValidator(auditoriumService);
     this.cinemaValidator     = new CinemaValidator(cinemaService);
     this.movieService        = new MovieService();
     this.movieValidator      = new MovieValidator(movieService);
     this.townService         = new TownService();
     this.townValidator       = new TownValidator(townService);
     this.screeningService    = new ScreeningService();
     this.screeningValidator  = new ScreeningValidator(screeningService);
 }
Esempio n. 21
0
        private void timeComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            string        movie             = GetMovieName(movieComboBox.Text);
            int           movieYear         = GetMovieYear(movieComboBox.Text);
            string        cinemaName        = cinema.Name;
            string        townName          = cinema.Town.Name;
            DateTime      date              = ScreeningService.GetDateTimeFromDateAndTime(dateComboBox.Text, timeComboBox.Text);
            Screening     screening         = ScreeningService.GetScreeningUsingMovieYear(townName, cinemaName, movie, date, movieYear);
            EditScreening editScreeningForm = new EditScreening(screening);

            editScreeningForm.TopLevel   = false;
            editScreeningForm.AutoScroll = true;
            this.Hide();
            ((ComboBox)sender).Parent.Parent.Controls.Add(editScreeningForm);
            editScreeningForm.Show();
        }
        public async void GivenNewScreeningWithFiveScreeningsInDatabase_WhenAddingSixthScreening_ThenSixthScreeningIsAdded()
        {
            var testGuid   = Guid.NewGuid();
            var testJobApp = new JobApplication(testGuid, Guid.NewGuid(), Guid.NewGuid(), 4);

            Screening testScreening = new CV_Screening("testtess", testGuid);

            testScreening.UpdateStatusToFalse();
            Screening testScreening2 = new Phone_Screening("ezqdsrezrez", testGuid);

            testScreening2.UpdateStatusToFalse();
            Screening testScreening3 = new TestResults_Screening("ezqdsrezrazezaeez", testGuid);

            testScreening3.UpdateStatusToFalse();
            Screening testScreening4 = new FirstInterview_Screening("eblabla", testGuid);

            testScreening4.UpdateStatusToFalse();
            Screening        testScreening5 = new GroupInterview_Screening("eblabdsdsfdsfla", testGuid);
            Screening        testScreening6 = new FinalDecision_Screening("aangenome", testGuid);
            List <Screening> testList       = new List <Screening>()
            {
                testScreening, testScreening2, testScreening3, testScreening4, testScreening5
            };

            var mockRepo = Substitute.For <ScreeningRepository>();

            mockRepo.AddNewScreeningToDatabase(testScreening6)
            .Returns(Task.FromResult(testScreening6));
            mockRepo.GetAllById(testGuid)
            .Returns(Task.FromResult(testList));
            var mockLogger = Substitute.For <ILoggerManager>();
            var mockJopApp = Substitute.For <IJobApplicationService>();

            mockJopApp.UpdateStatusOfJobApplication(testGuid.ToString(), 4)
            .Returns(Task.FromResult(testJobApp));
            var service = new ScreeningService(mockRepo, mockLogger, mockJopApp);

            var actualScreenings = await service.NewScreening(testGuid.ToString(), testScreening6.Comment);

            Assert.Equal(testJobApp.StatusId, 4);
            Assert.True(actualScreenings.Count == 6);
            Assert.Equal(testScreening6.Comment, actualScreenings[5].Comment);
            Assert.IsType <FinalDecision_Screening>(actualScreenings[5]);
            Assert.False(actualScreenings[4].Status);
            Assert.False(actualScreenings[5].Status);
        }
Esempio n. 23
0
        private void CheckScreening()
        {
            DateTime getDate   = DateCalendar.SelectionRange.Start;
            string   date      = getDate.Day.ToString() + " " + getDate.ToString("MMM") + " " + getDate.DayOfWeek.ToString();
            DateTime getTime   = TimePicker.Value;
            string   time      = getTime.ToString("hh") + ":" + getTime.ToString("mm") + " " + getTime.ToString("tt", CultureInfo.InvariantCulture);
            DateTime startTime = ScreeningService.GetDateTimeFromDateAndTime(date, time);

            if (!ScreeningService.IsScreeningAvailable(screening.Id, startTime))
            {
                ScreeningTaken.Visible = true;
                ScreeningTaken.Text    = "Screening is already taken!";
            }
            else
            {
                ScreeningTaken.Visible = false;
            }
        }
Esempio n. 24
0
        private void ticketsButton_Click(object sender, EventArgs e)
        {
            string selectedDate = this.dateBox.SelectedItem.ToString();
            string selectedTime = this.hourBox.SelectedItem.ToString();

            DateTime screeningDate = ScreeningService.GetDateTimeFromDateAndTime(selectedDate, selectedTime);

            //var screeningDate = new DateTime(2017, 4, 21, 16, 0, 0); //hardcode

            TicketForm.Screening = ScreeningService.GetScreening(this._townName, this._cinemaName, this._movieName, screeningDate);

            TicketTypeForm ticketTypeForm = new TicketTypeForm();

            ticketTypeForm.TopLevel   = false;
            ticketTypeForm.AutoScroll = true;
            this.Parent.Controls.Add(ticketTypeForm);
            ticketTypeForm.Show();
            this.Hide();
        }
        public async void GivenGetAllScreeningsById_WhenRequestingAllScreenings_ThenReturnAllScreenings()
        {
            var testGuid = Guid.NewGuid();
            List <Screening> testScreen = new List <Screening>()
            {
                new CV_Screening("blabla", testGuid)
            };

            var mockRepo = Substitute.For <ScreeningRepository>();

            mockRepo.GetAllById(testGuid)
            .Returns(Task.FromResult(testScreen));
            var mockLogger = Substitute.For <ILoggerManager>();
            var mockJopApp = Substitute.For <IJobApplicationService>();
            var service    = new ScreeningService(mockRepo, mockLogger, mockJopApp);

            var actualScreenings = await service.GetAllScreeningsById(testGuid.ToString());

            Assert.Equal(testScreen, actualScreenings);
        }
        public async void GivenNewScreening_WhenAddingANewScreening_ThenNewScreeningIsAdded()
        {
            var              testGuid      = Guid.NewGuid();
            Screening        testScreening = new CV_Screening("testtess", testGuid);
            List <Screening> testList      = new List <Screening>();

            var mockRepo = Substitute.For <ScreeningRepository>();

            mockRepo.AddNewScreeningToDatabase(testScreening)
            .Returns(Task.FromResult(testScreening));
            mockRepo.GetAllById(testGuid)
            .Returns(Task.FromResult(testList));
            var mockLogger = Substitute.For <ILoggerManager>();
            var mockJopApp = Substitute.For <IJobApplicationService>();
            var service    = new ScreeningService(mockRepo, mockLogger, mockJopApp);

            var actualScreenings = await service.NewScreening(testGuid.ToString(), testScreening.Comment);

            Assert.Single <Screening>(actualScreenings);
            Assert.Equal(testScreening.Comment, actualScreenings[0].Comment);
        }
Esempio n. 27
0
        private void selectTicketTypeButton_Click(object sender, EventArgs e)
        {
            var dateTime = ScreeningService.GetDateTimeFromDateAndTime(_date, _time);

            TicketForm.Screening = ScreeningService.GetScreening(this._townName, this._cinemaName, this._movieName,
                                                                 dateTime);
            TicketTypeForm ticketTypeForm = new TicketTypeForm();

            ticketTypeForm.TopLevel   = false;
            ticketTypeForm.AutoScroll = true;
            this.Hide();
            var contentHolder = ((Button)sender).Parent.Parent;
            var formsCount    = contentHolder.Controls.Count;

            if (formsCount - 1 <= contentHolder.Controls.IndexOf(this))
            {
                contentHolder.Controls.Add(ticketTypeForm);
                ticketTypeForm.Show();
            }
            else
            {
                contentHolder.Controls[contentHolder.Controls.IndexOf(this) + 1].Show();
            }
        }
Esempio n. 28
0
 public ScreeningValidator(ScreeningService screeningService)
 {
     this.screeningService = screeningService;
 }