Пример #1
0
        /// <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);
        }
Пример #3
0
        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);
            }
        }
Пример #5
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