/// <summary>
        /// Loads a JSON string from blob storage (or cache)
        /// </summary>
        /// <param name="cacheManager"></param>
        /// <param name="fileRepository"></param>
        /// <param name="cacheKey"></param>
        /// <param name="blobContainer"></param>
        /// <param name="blobName"></param>
        /// <returns></returns>
        public List <T> LoadJsonFile <T>(
            Interface.Cache.ICacheManager cacheManager,
            Interface.Repository.IFileRepository fileRepository,
            string cacheKey,
            string blobContainer,
            string blobName,
            TimeSpan timeSpan)
        {
            // Try to get from cache
            if (cachingStrategy == Interface.GlobalEnum.CachingStrategy.Near)
            {
                List <T> cacheResult = cacheManager
                                       .GetNearCache <List <T> >(cacheKey, timeSpan);
                if (cacheResult != null)
                {
                    return(cacheResult);
                }
            }

            Model.File.FileModel fileModel = fileRepository.GetFileAsText(blobContainer, blobName);
            if (fileModel == null)
            {
                fileModel = CreateDefaultData();
            }

            Common.JSON.JSONService jsonService = new Common.JSON.JSONService();
            List <T> result = jsonService.Deserialize <List <T> >(fileModel.Text);

            if (cachingStrategy != Interface.GlobalEnum.CachingStrategy.None)
            {
                cacheManager.Set(cacheKey, result, TimeSpan.FromMinutes(60));
            }

            return(result);
        }
        public IndexerRepository(Interface.Repository.IQueueRepository queueRepository,
                                 Interface.Repository.IFileRepository fileRepository,
                                 Interface.Service.IExceptionLogService exceptionLogService)
        {
            this.queueRepository     = queueRepository;
            this.fileRepository      = fileRepository;
            this.exceptionLogService = exceptionLogService;

            serviceClient = new SearchServiceClient(Common.Setting.SettingService.AzureSearchName,
                                                    new SearchCredentials(Common.Setting.SettingService.AzureSearchApiKey));
        }
Beispiel #3
0
        public void ExerciseBlobStorage()
        {
            Interface.Repository.IFileRepository fileRepository = DI.Container.Resolve <Interface.Repository.IFileRepository>();
            string jsonText  = "{ \"name\" : \"test\" }";
            string container = "unittest";
            string fileName  = Guid.NewGuid().ToString() + ".json";;

            Model.File.FileModel fileModel = new Model.File.FileModel();
            fileModel.Container = container;
            fileModel.Name      = fileName;
            fileModel.Text      = jsonText;
            fileRepository.PutFileAsText(fileModel);

            Model.File.FileModel loadedFileModel = fileRepository.GetFileAsText(container, fileName);

            Assert.IsTrue(loadedFileModel != null);
            Assert.AreEqual(fileModel.Text, loadedFileModel.Text);

            fileRepository.DeleteFile(container, null, fileName);

            Model.File.FileModel loadedDeleteModel = fileRepository.GetFileAsText(container, fileName);

            Assert.IsTrue(loadedDeleteModel == null);
        } // ExerciseBlobStorage
 public CustomerRepository(Interface.Repository.IFileRepository fileRepository)
 {
     this.fileRepository = fileRepository;
 }
Beispiel #5
0
 public LargeObjectRepository(Interface.Repository.IFileRepository fileRepository)
 {
     this.fileRepository = fileRepository;
 }