public async Task <PagedResult <EducationOrganisation> > FindOrganisations(string searchTerm, int pageSize, int pageNumber)
        {
            return(await Task.Run(async() =>
            {
                var lookUp = await _cacheProvider.GetAsync <EducationalOrganisationLookUp>(nameof(EducationalOrganisationLookUp));

                if (lookUp == null)
                {
                    _logger.Info("Getting educational orgainsations from Azure storage as cache is empty.");
                    lookUp = await _azureService.GetModelFromBlobStorage <EducationalOrganisationLookUp>(ContainerName,
                                                                                                         BlobName);

                    if (lookUp == null)
                    {
                        _logger.Info("No educational organisations were retrieved from Azure.");
                        return new PagedResult <EducationOrganisation>
                        {
                            Data = new List <EducationOrganisation>()
                        };
                    }

                    _logger.Info(
                        $"{lookUp.Organisations.Count()} educational organisations were retrieved from Azure");

                    await _cacheProvider.SetAsync(nameof(EducationalOrganisationLookUp), lookUp, TimeSpan.FromDays(14));
                    _logger.Info($"Cached educational organisations till {DateTime.Now.AddDays(1):R}");
                }

                pageSize = pageSize < 1 ? 1 : pageSize;

                var organisations = lookUp.Organisations.ToList();

                if (!string.IsNullOrEmpty(searchTerm))
                {
                    organisations = organisations
                                    .Where(o => o.Name.IndexOf(searchTerm, StringComparison.CurrentCultureIgnoreCase) >= 0)
                                    .ToList();
                }

                var totalPages = organisations.Count % pageSize;


                var offset = GetPageOffset(pageSize, pageNumber, organisations.Count);

                organisations = organisations.Skip(offset)
                                .Take(pageSize)
                                .ToList();

                return new PagedResult <EducationOrganisation>
                {
                    Data = organisations,
                    Page = pageNumber,
                    TotalPages = totalPages
                };
            }));
        }
        public async Task RefreshCache()
        {
            _logger.Info("Refreshing public sector orgainsations Azure storage cache.");

            var lookUp = await _azureService.GetModelFromBlobStorage <PublicSectorOrganisationLookUp>(ContainerName, BlobName);

            await _cacheProvider.SetAsync(nameof(PublicSectorOrganisationLookUp), lookUp, TimeSpan.FromDays(14));

            _logger.Info($"Cached public sector organisations till {DateTime.Now.AddDays(14):R}");
        }