protected override async Task OnInitializedAsync()
 {
     if (int.TryParse(WebinarId, out SelectedWebinarId))
     {
         WebinarViewModel = await WebinarService.GetWebinarById(SelectedWebinarId);
     }
 }
        public void When_querying_videos_it_should_not_throw()
        {
            // Arrange
            var service = new WebinarService();
            var keyword = "Raven";
            // Act
            Action method = () => service.FindWebinars(keyword);

            // Assert
            method.ShouldNotThrow();
        }
        public void When_getting_a_list_of_webinars_it_should_not_throw()
        {
            // Arrange
            var service = new WebinarService();

            // Act
            Action action = () => service.GetWebinars();

            // Assert
            action.ShouldNotThrow();
        }
        public void When_getting_a_list_of_webinars_it_should_return()
        {
            // Arrange
            var service = new WebinarService();

            // Act
            Func<IEnumerable<Webinar>> method = service.GetWebinars;
            var webinars = method.Invoke();

            // Assert
            webinars.Should().NotBeNull();
        }
        public void When_querying_videos_it_should_succeed()
        {
            // Arrange
            var service = new WebinarService();
            var keyword = "Raven";

            // Act
            Func<IList<Webinar>> method = () => service.FindWebinars(keyword);
            var webinars = method.Invoke();

            // Assert
            webinars.Count.Should().BeGreaterOrEqualTo(1);
        }
        protected async Task HandleValidSubmit()
        {
            ResponseFromApi <int> response;

            if (SelectedWebinarId == 0)
            {
                response = await WebinarService.CreateWebinar(WebinarViewModel);
            }
            else
            {
                response = await WebinarService.UpdateWebinar(WebinarViewModel);
            }
            HandleResponse(response);
        }
        protected async Task GetWebinars()
        {
            WebinarPagedForDateBlazorVM pagedata;

            if (!string.IsNullOrWhiteSpace(SelectedYear) && !string.IsNullOrWhiteSpace(SelectedMonth))
            {
                DateTime dt = new DateTime(int.Parse(SelectedYear), int.Parse(SelectedMonth), 1);
                pagedata =
                    await WebinarService.GetPagedWebinarForDate(Services.SearchOptionsWebinars._3, dt, pageNumber.Value, 5);
            }
            else if (!string.IsNullOrWhiteSpace(SelectedYear))
            {
                DateTime dt = new DateTime(int.Parse(SelectedYear), 11, 1);
                pagedata =
                    await WebinarService.GetPagedWebinarForDate(Services.SearchOptionsWebinars._2, dt, pageNumber.Value, 5);
            }
            else if (!string.IsNullOrWhiteSpace(SelectedMonth))
            {
                DateTime dt = new DateTime(2020, int.Parse(SelectedMonth), 1);
                pagedata =
                    await WebinarService.GetPagedWebinarForDate(Services.SearchOptionsWebinars._3, dt, pageNumber.Value, 5);
            }
            else
            {
                pagedata =
                    await WebinarService.GetPagedWebinarForDate(Services.SearchOptionsWebinars._1, null, pageNumber.Value, 5);
            }


            var g = pagedata.Webinars.ToList();

            paginatedList = new PaginatedList <WebinarForDateListBlazorVM>(g, pagedata.AllCount, pageNumber.Value, 5);
            webinarsList  = paginatedList.Items;

            StateHasChanged();
        }
        protected async Task DeleteWebinar()
        {
            var response = await WebinarService.DeleteWebinar(SelectedWebinarId);

            HandleResponse(response);
        }