Exemple #1
0
        public void Localize(Models.Page o, Models.Site targetSite)
        {
            var serviceContext = CloudTableHelper.GetTableServiceContext();

            LocalizeWithChildPages(serviceContext, o, targetSite);
            serviceContext.SaveChangesWithRetries();
        }
Exemple #2
0
        static LabelRepository()
        {
            CloudTableClient tableClient = CloudTableHelper.GetTableClient();

            tableClient.CreateTableIfNotExist <CategoryEntity>(LabelCategoryTable);
            tableClient.CreateTableIfNotExist <LabelEntity>(LabelTable);
        }
Exemple #3
0
 private IEnumerable <Page> QueryBySite(Site site)
 {
     return(CloudTableHelper.GetTableServiceContext().CreateQuery <PageEntity>(PageTable)
            .Where(it => it.PartitionKey == site.FullName && it.ParentPage == "")
            .ToArray()
            .Select(it => PageEntityHelper.ToPage(it)));
 }
Exemple #4
0
 private IEnumerable <HtmlBlock> QueryBySite(Site site)
 {
     return(CloudTableHelper.GetTableServiceContext().CreateQuery <HtmlBlockEntity>(HtmlBlockTable)
            .Where(it => it.PartitionKey == site.FullName)
            .ToArray()
            .Select(it => it.ToHtmlBlock()));
 }
Exemple #5
0
        public Models.HtmlBlock Get(Models.HtmlBlock dummy)
        {
            var entity = CloudTableHelper.GetTableServiceContext().CreateQuery <HtmlBlockEntity>(HtmlBlockTable)
                         .Where(it => it.PartitionKey == dummy.Site.FullName && it.RowKey == dummy.Name)
                         .FirstOrDefault();

            return(entity == null ? null : entity.ToHtmlBlock());
        }
Exemple #6
0
 private IQueryable <Page> AllPagesNested(Site site)
 {
     return(CloudTableHelper.GetTableServiceContext().CreateQuery <PageEntity>(PageTable)
            .Where(it => it.SiteName == site.FullName)
            .ToArray()
            .Select(it => PageEntityHelper.ToPage(it))
            .AsQueryable());
 }
Exemple #7
0
        public Models.Page Get(Models.Page dummy)
        {
            var entity = CloudTableHelper.GetTableServiceContext().CreateQuery <PageEntity>(PageTable)
                         .Where(it => it.PartitionKey == dummy.Site.FullName && it.RowKey == dummy.FullName)
                         .FirstOrDefault();

            return(PageEntityHelper.ToPage(entity));
        }
Exemple #8
0
        public Models.User Get(Models.User dummy)
        {
            var entity = CloudTableHelper.GetTableServiceContext().CreateQuery <SiteUserEntity>(SiteUsersTable)
                         .Where(it => it.SiteName == dummy.Site.FullName && it.UserName == dummy.UserName)
                         .FirstOrDefault();

            return(entity == null ? null : SiteUserHelper.ToUser(entity));
        }
Exemple #9
0
 public IEnumerable <Models.User> All(Models.Site site)
 {
     return(CloudTableHelper.GetTableServiceContext().CreateQuery <SiteUserEntity>(SiteUsersTable)
            .Where(it => it.SiteName == site.FullName)
            .ToArray()
            .Select(it => SiteUserHelper.ToUser(it))
            .AsQueryable());
 }
Exemple #10
0
        public void Move(Models.Site site, string pageFullName, string newParent)
        {
            var serviceContext = CloudTableHelper.GetTableServiceContext();

            MovePageRecursively(site, pageFullName, newParent, serviceContext);

            serviceContext.SaveChangesWithRetries();
        }
Exemple #11
0
 public IQueryable <ElementCategory> Categories()
 {
     return(CloudTableHelper.GetTableServiceContext().CreateQuery <CategoryEntity>(LabelCategoryTable)
            .Where(it => it.PartitionKey == SiteName)
            .ToArray()
            .Select(it => it.ToElementCategory())
            .AsQueryable());
 }
Exemple #12
0
        static PageProvider()
        {
            CloudTableClient tableClient = CloudTableHelper.GetTableClient();

            tableClient.CreateTableIfNotExist <PageEntity>(PageTable);

            tableClient.CreateTableIfNotExist <PageEntity>(PageDraftTable);
        }
Exemple #13
0
        public void AddCategory(string category, string culture)
        {
            var serviceContext = CloudTableHelper.GetTableServiceContext();
            var entity         = new CategoryEntity(SiteName, category);

            serviceContext.AddObject(LabelCategoryTable, entity);
            serviceContext.SaveChangesWithRetries();
        }
Exemple #14
0
 public IQueryable <Models.Page> ChildPages(Models.Page parentPage)
 {
     return(CloudTableHelper.GetTableServiceContext().CreateQuery <PageEntity>(PageTable)
            .Where(it => it.PartitionKey == parentPage.Site.FullName && it.ParentPage == parentPage.FullName)
            .ToArray()
            .Select(it => PageEntityHelper.ToPage(it))
            .AsQueryable());
 }
Exemple #15
0
        public async Task CreatesAnEntryInTheTable_IfNew()
        {
            await _sut.RunAsync(CloudTableHelper.BeyondPodPodCast, _cloudTable, _collector, _logger.Object);

            var list = await CloudTableHelper.GetAllCloudTableEntities(_cloudTable);

            Assert.Single(list);
            Assert.Equal(CloudTableHelper.BeyondPodPodCast.EpisodeName, list.First().EpisodeName);
        }
        public async Task WillSaveNewRecord()
        {
            await _sut.Save(CloudTableHelper.TableEntityPodCast);

            var list = await CloudTableHelper.GetAllCloudTableEntities(_cloudTable);

            Assert.Single(list);
            Assert.Equal(CloudTableHelper.BeyondPodPodCast.EpisodeName, list.First().EpisodeName);
        }
Exemple #17
0
        public Models.Page GetDefaultPage(Models.Site site)
        {
            var entity = CloudTableHelper.GetTableServiceContext().CreateQuery <PageEntity>(PageTable)
                         .Where(it => it.PartitionKey == site.FullName)
                         .Where(it => it.IsDefault == true)
                         .FirstOrDefault();

            return(PageEntityHelper.ToPage(entity));
        }
Exemple #18
0
        public Element Get(string name, string category, string culture)
        {
            var entity = new LabelEntity(SiteName, name, "", category);

            return(CloudTableHelper.GetTableServiceContext().CreateQuery <LabelEntity>(LabelTable)
                   .Where(it => it.PartitionKey == entity.SiteName && it.RowKey == entity.RowKey)
                   .ToArray()
                   .Select(it => it.ToElement())
                   .FirstOrDefault());
        }
Exemple #19
0
        public void Clear(Site site)
        {
            var serviceContext = CloudTableHelper.GetTableServiceContext();
            var entities       = serviceContext.CreateQuery <HtmlBlockEntity>(HtmlBlockTable)
                                 .Where(it => it.PartitionKey == site.FullName);

            foreach (var item in entities)
            {
                serviceContext.DeleteObject(item);
            }
            serviceContext.SaveChangesWithRetries();
        }
Exemple #20
0
        public void Clear()
        {
            var serviceContext = CloudTableHelper.GetTableServiceContext();
            var entities       = serviceContext.CreateQuery <LabelEntity>(LabelTable)
                                 .Where(it => it.SiteName == SiteName);

            foreach (var item in entities)
            {
                serviceContext.DeleteObject(item);
            }
            serviceContext.SaveChangesWithRetries();
        }
Exemple #21
0
        public void Localize(Models.HtmlBlock o, Models.Site targetSite)
        {
            var htmlBlock = Get(o);
            var entity    = new HtmlBlockEntity(htmlBlock);

            entity.SiteName = targetSite.FullName;

            var serviceContext = CloudTableHelper.GetTableServiceContext();

            serviceContext.AddObject(HtmlBlockTable, entity);
            serviceContext.SaveChangesWithRetries();
        }
Exemple #22
0
        public void RemoveDraft(Models.Page page)
        {
            var serviceContext = CloudTableHelper.GetTableServiceContext();
            var entity         = serviceContext.CreateQuery <PageEntity>(PageDraftTable)
                                 .Where(it => it.PartitionKey == page.Site.FullName && it.RowKey == page.FullName)
                                 .Select(it => PageEntityHelper.ToPage(it)).FirstOrDefault();

            if (entity != null)
            {
                serviceContext.DeleteObject(entity);
                serviceContext.SaveChangesWithRetries();
            }
        }
Exemple #23
0
        public void Remove(Models.HtmlBlock item)
        {
            var serviceContext = CloudTableHelper.GetTableServiceContext();
            var entity         = serviceContext.CreateQuery <HtmlBlockEntity>(HtmlBlockTable)
                                 .Where(it => it.PartitionKey == item.Site.FullName && it.RowKey == item.Name)
                                 .FirstOrDefault();

            if (entity != null)
            {
                serviceContext.DeleteObject(entity);
                serviceContext.SaveChangesWithRetries();
            }
        }
Exemple #24
0
        public void Remove(Models.Page item)
        {
            var serviceContext = CloudTableHelper.GetTableServiceContext();
            var entity         = serviceContext.CreateQuery <PageEntity>(PageTable)
                                 .Where(it => it.PartitionKey == item.Site.FullName && it.RowKey == item.FullName)
                                 .FirstOrDefault();

            if (entity != null)
            {
                RemovePageWithChildPages(serviceContext, entity);

                serviceContext.SaveChangesWithRetries();
            }
        }
Exemple #25
0
        public bool Remove(Element element)
        {
            var entity         = new LabelEntity(SiteName, element);
            var serviceContext = CloudTableHelper.GetTableServiceContext();

            entity = serviceContext.CreateQuery <LabelEntity>(LabelTable)
                     .Where(it => it.PartitionKey == SiteName && it.RowKey == entity.RowKey)
                     .FirstOrDefault();
            if (entity != null)
            {
                serviceContext.DeleteObject(entity);
                serviceContext.SaveChangesWithRetries();
            }
            return(true);
        }
Exemple #26
0
        private void InsertOrUpdate(Models.User @new, Models.User old)
        {
            var entity         = SiteUserHelper.ToEntity(@new);
            var serviceContext = CloudTableHelper.GetTableServiceContext();

            if (Get(old) == null)
            {
                serviceContext.AddObject(SiteUsersTable, entity);
            }
            else
            {
                serviceContext.AttachTo(SiteUsersTable, entity, "*");
                serviceContext.UpdateObject(entity);
            }
            serviceContext.SaveChangesWithRetries();
        }
Exemple #27
0
        private void InsertOrUpdate(Models.HtmlBlock @new, Models.HtmlBlock old)
        {
            var serviceContext = CloudTableHelper.GetTableServiceContext();
            var entity         = new HtmlBlockEntity(@new);

            if (Get(old) == null)
            {
                serviceContext.AddObject(HtmlBlockTable, entity);
            }
            else
            {
                serviceContext.AttachTo(HtmlBlockTable, entity, "*");
                serviceContext.UpdateObject(entity);
            }
            serviceContext.SaveChangesWithRetries();
        }
        public async Task WillUpdateExistingRecord()
        {
            await CloudTableHelper.AddToCloudTableEntities(_cloudTable, CloudTableHelper.TableEntityPodCast);

            var existingRecord = await _sut.Get(CloudTableHelper.TableEntityPodCast.PartitionKey,
                                                CloudTableHelper.TableEntityPodCast.RowKey);

            existingRecord.EpisodePosition = 1000;

            await _sut.Save(existingRecord);

            var list = await CloudTableHelper.GetAllCloudTableEntities(_cloudTable);

            Assert.Single(list);
            Assert.Equal(1000, list.First().EpisodePosition);
        }
        public async Task WillThrowExceptionIfRecordHasChanged()
        {
            await CloudTableHelper.AddToCloudTableEntities(_cloudTable, CloudTableHelper.TableEntityPodCast);

            var v1 = await _sut.Get(CloudTableHelper.TableEntityPodCast.PartitionKey,
                                    CloudTableHelper.TableEntityPodCast.RowKey);

            var v2 = await _sut.Get(CloudTableHelper.TableEntityPodCast.PartitionKey,
                                    CloudTableHelper.TableEntityPodCast.RowKey);

            v1.EpisodePosition = 1000;
            v2.EpisodePosition = 1001;

            await _sut.Save(v2);

            await Assert.ThrowsAsync <StorageException>(() => _sut.Save(v1));
        }
Exemple #30
0
        public void SaveAsDraft(Models.Page page)
        {
            var entity         = PageEntityHelper.ToPageEntity(page);
            var serviceContext = CloudTableHelper.GetTableServiceContext();

            if (GetDraft(page) != null)
            {
                serviceContext.AttachTo(PageDraftTable, entity);
                serviceContext.UpdateObject(entity);
            }
            else
            {
                serviceContext.AddObject(PageDraftTable, entity);
            }

            serviceContext.SaveChangesWithRetries();
        }