public async Task <ReturnPeriodViewModel> GetCurrentPeriodAsync(string collectionName)
        {
            try
            {
                var data = await _httpClient.GetDataAsync($"{_baseUrl}/returns-calendar/{collectionName}/current");

                ReturnPeriodViewModel result = null;

                if (!string.IsNullOrEmpty(data))
                {
                    var returnPeriod = _serializationService.Deserialize <ReturnPeriod>(data);
                    result = new ReturnPeriodViewModel(returnPeriod.PeriodNumber);
                }

                return(result);
            }
            catch (Exception e)
            {
                return(null);
            }
        }
        public async Task <IViewComponentResult> InvokeAsync()
        {
            var collection = await _collectionManagementService.GetCollectionFromTypeAsync(CollectionTypes.ILR);

            if (collection != null)
            {
                var currentPeriod =
                    await _collectionManagementService.GetPeriodAsync(collection.CollectionTitle, _dateTimeProvider.GetNowUtc());

                if (currentPeriod != null)
                {
                    var returnWindow = new ReturnPeriodViewModel(currentPeriod.PeriodNumber)
                    {
                        DaysToClose     = (currentPeriod.EndDateTimeUtc - _dateTimeProvider.GetNowUtc()).Days,
                        PeriodCloseDate = currentPeriod.EndDateTimeUtc.AddMinutes(-5).ToDateTimeDisplayFormat()
                    };

                    return(View(returnWindow));
                }
            }

            return(View(new ReturnPeriodViewModel(0)));
        }
        public async Task <ReturnPeriodViewModel> GetNextPeriodAsync(string collectionName)
        {
            try
            {
                var data = await _httpClient.GetDataAsync($"{_baseUrl}/returns-calendar/{collectionName}/next");

                ReturnPeriodViewModel result = null;

                if (!string.IsNullOrEmpty(data))
                {
                    var returnPeriod = _serializationService.Deserialize <ReturnPeriod>(data);
                    result = new ReturnPeriodViewModel(returnPeriod.PeriodNumber)
                    {
                        NextOpeningDate = returnPeriod.StartDateTimeUtc.ToDateDisplayFormat()
                    };
                }

                return(result);
            }
            catch (Exception e)
            {
                return(null);
            }
        }