public void Arrange()
        {
            _lookup = new EducationalOrganisationLookUp
            {
                Organisations = new List<EducationOrganisation>
                {
                    new EducationOrganisation {Name = "Test 1"},
                    new EducationOrganisation {Name = "Test 2"},
                    new EducationOrganisation {Name = "Test 3"}
                }
            };

            _azureService = new Mock<IAzureService>();

            _azureService.Setup(x => x.GetModelFromBlobStorage<EducationalOrganisationLookUp>(
                It.IsAny<string>(), 
                It.IsAny<string>()))
                         .ReturnsAsync(_lookup);

            _cacheProvider = new Mock<ICacheProvider>();

            _logger = new Mock<ILog>();

            _repository = new EducationalOrganisationRepository(_cacheProvider.Object, _azureService.Object, _logger.Object);
        }
Exemple #2
0
        public async Task RunUpdate()
        {
            try
            {
                var orgainsations = await _edubaseService.GetOrganisations();

                _logger.Info("Retrieved educational organisations", new Dictionary <string, object> {
                    { "TotalCount", orgainsations.Count }
                });

                if (orgainsations == null || !orgainsations.Any())
                {
                    return;
                }

                var lookup = new EducationalOrganisationLookUp
                {
                    Organisations = orgainsations
                };

                var serialisedJsonData = _serialiser.SerialiseToJson(lookup);

                await _uploader.UploadDataToStorage(serialisedJsonData);
            }
            catch (Exception e)
            {
                _logger.Error(e, "Could not update educational organisations due to an error.");
            }
        }
        public byte[] SerialiseToJson(EducationalOrganisationLookUp organisations)
        {
            try
            {
                using (var stream = new MemoryStream())
                {
                    using (var writer = new StreamWriter(stream))
                    {
                        using (var jsonWriter = new JsonTextWriter(writer))
                        {
                            jsonWriter.Formatting = Formatting.Indented;

                            var serializer = new JsonSerializer();
                            serializer.Serialize(jsonWriter, organisations);
                        }
                    }
                    return(stream.ToArray());
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex, $"An error occurred generating education orgainsation json data: {ex.Message}");
                throw new Exception($"An error occurred generating education orgainsation json data: {ex.Message}");
            }
        }