/// <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 void InsertOrReplace(Sample.Azure.Model.Customer.CustomerModel customerModel) { Common.JSON.JSONService jsonService = new Common.JSON.JSONService(); string json = jsonService.Serialize <Model.Customer.CustomerModel>(customerModel); Model.File.FileModel fileModel = new Model.File.FileModel(); string fileName = customerModel.CustomerId.ToString().ToLower() + ".json"; string container = "customer"; fileModel.Container = container; fileModel.Name = fileName; fileModel.Text = json; fileRepository.PutFileAsText(fileModel); }
public void InsertOrReplace(Sample.Azure.Model.LargeObject.LargeObjectModel largeObjectModel) { Common.JSON.JSONService jsonService = new Common.JSON.JSONService(); string json = jsonService.Serialize <Model.LargeObject.LargeObjectModel>(largeObjectModel); Model.File.FileModel fileModel = new Model.File.FileModel(); string fileName = largeObjectModel.LargeObjectId.ToString().ToLower() + ".json"; string container = "largeobject"; fileModel.Container = container; fileModel.Name = fileName; fileModel.Text = json; fileRepository.PutFileAsText(fileModel); }
public Sample.Azure.Model.Customer.CustomerModel Select(Guid customerId) { string fileName = customerId.ToString().ToLower() + ".json"; string container = "customer"; Common.JSON.JSONService jsonService = new Common.JSON.JSONService(); Model.File.FileModel loadedFileModel = fileRepository.GetFileAsText(container, fileName); if (loadedFileModel == null) { return(null); } else { string loadedJson = loadedFileModel.Text; Model.Customer.CustomerModel loadedModel = jsonService.Deserialize <Model.Customer.CustomerModel>(loadedJson); return(loadedModel); } }
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