Exemplo n.º 1
0
        public void SaveJobWithContent(JobWithContent job)
        {
            _tracer.TraceEvent(TraceEventType.Start, 0);

            var contentRepository = new PageContentRepository(this._settings);

            using (contentRepository.AcquireLock(job.ID))
            {
                using (var scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    if (job.HasTestScraped)
                    {
                        string jsonZones = JsonConvert.SerializeObject(job.TestContent.AdZoneNodes);
                        job.AdsInfo = jsonZones;
                    }

                    InternalSaveJob(job);
                    // save content to files
                    if (job.HasReferenceScraped)
                    {
                        contentRepository.SaveReferenceContent(job.ReferenceContent, job.ID);
                    }

                    if (job.HasTestScraped)
                    {
                        contentRepository.SaveTestContent(job.TestContent, job.ID);
                    }

                    scope.Complete();
                }
            }

            _tracer.TraceEvent(TraceEventType.Stop, 0);
        }
Exemplo n.º 2
0
        public void AddOrUpdateSuccess()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var pageContents          = TestDataRepository.GetPageContents(false);
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();

            foreach (var item in pageContents)
            {
                item.ContentType.Properties = null;
                pageContentRepository.Create(item);
            }

            var itemToUpdate = pageContents.First();

            itemToUpdate.SortOrder = 10;
            var pageContentsToUpdate = TestDataRepository.GetPageContents().First();

            pageContents.Add(pageContentsToUpdate);

            //Act
            var initialCount = dbContext.PageContent.Count();

            pageContentRepository.AddOrUpdate(pageContents);
            var afterCount  = dbContext.PageContent.Count();
            var updatedItem = pageContentRepository.Get(itemToUpdate.Id);

            //Assert
            Assert.True(afterCount > initialCount);
            Assert.True(updatedItem.SortOrder == itemToUpdate.SortOrder);

            //Clean
            dbContext.PageContent.RemoveRange(dbContext.PageContent);
        }
Exemplo n.º 3
0
        public void DeleteJobWithContent(int id)
        {
            _tracer.TraceEvent(TraceEventType.Start, 0);

            var contentRepository = new PageContentRepository(this._settings);

            using (contentRepository.AcquireLock(id))
            {
                using (var scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    Job job;
                    using (var context = new CoreContext())
                    {
                        var repository = new JobRepository(context);
                        job = repository.Load(id);
                        repository.Delete(job);
                        context.SaveChanges();
                    }

                    if (job.HasReferenceScraped)
                    {
                        contentRepository.DeleteReferenceContent(id);
                    }

                    if (job.HasTestScraped)
                    {
                        contentRepository.DeleteTestContent(id);
                    }

                    scope.Complete();
                }
            }

            _tracer.TraceEvent(TraceEventType.Stop, 0);
        }
Exemplo n.º 4
0
        public void UpdateContentPermissionSuccess()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pageContent           = TestDataRepository.GetPageContents(false).First();

            pageContentRepository.Create(pageContent);
            var contentPermissions = TestDataRepository.GetContentPermissions();

            foreach (var cp in contentPermissions)
            {
                cp.PageContentId = pageContent.Id;
            }
            pageContent.InheritEditPermissions = pageContent.InheritViewPermissions = true;
            pageContent.ContentPermissions     = contentPermissions;

            //Act
            pageContentRepository.UpdateContentPermission(pageContent);
            var result = pageContentRepository.Get(pageContent.Id);


            //Assert
            Assert.NotNull(result);
            Assert.True(result.ContentPermissions.Count > 1);
            Assert.True(result.InheritViewPermissions);
            Assert.True(result.InheritEditPermissions);

            //Clean
            dbContext.ContentPermission.RemoveRange(dbContext.ContentPermission);
        }
Exemplo n.º 5
0
        public void CreatePageContentSuccess()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pageContents          = TestDataRepository.GetPageContents();
            var pageContent           = pageContents.First();


            //Act
            var result = pageContentRepository.Create(pageContent);

            //Assert
            Assert.NotNull(result);
            Assert.NotEqual(result.Id, Guid.Empty);
            Assert.NotNull(result.PageContentTranslation);
            Assert.NotNull(result.ContentType);
            Assert.NotNull(result.ContentPermissions);
            Assert.True(result.ContentPermissions.Count > 0);
            Assert.NotNull(result.Properties);
            Assert.True(result.Properties.Count > 0);
            Assert.True(result.SortOrder > 0);
            Assert.NotEqual(result.ContainerId, Guid.Empty);
            Assert.True(result.CreatedDate > DateTime.MinValue);
            Assert.True(result.LastModifiedDate > DateTime.MinValue);

            //Clean
            dbContext.PageContent.RemoveRange(dbContext.PageContent);
        }
Exemplo n.º 6
0
        public JobWithContent LoadWithContent(int id)
        {
            _tracer.TraceEvent(TraceEventType.Start, 0);
            var contentRepository = new PageContentRepository(this._settings);

            using (contentRepository.AcquireLock(id))
            {
                Job job;
                using (var context = new CoreContext())
                {
                    var repository = new JobRepository(context);
                    job = repository.Load(id);
                }

                PageContent referenceContent = null;
                if (job.HasReferenceScraped)
                {
                    referenceContent = contentRepository.LoadReferenceContent(job.ID);
                }

                PageContent testContent = null;
                if (job.HasTestScraped)
                {
                    testContent = contentRepository.LoadTestContent(job.ID);
                }

                _tracer.TraceEvent(TraceEventType.Stop, 0);

                return(new JobWithContent(job, referenceContent, testContent));
            }
        }
Exemplo n.º 7
0
        private static void LoadFromFile(SettingsModel settingsModel)
        {
            while (true)
            {
                Console.Write("Enter passphrase: ");
                var passPhrase = EnterPassword();
                Encrypter.PassPhrase = Encoding.UTF8.GetBytes(passPhrase);

                try
                {
                    var encryptedData = File.ReadAllBytes(settingsModel.File);

                    var json = encryptedData.Decrypt(settingsModel);

                    var stateModel = Newtonsoft.Json.JsonConvert.DeserializeObject <StateModel>(json);

                    NotebooksRepository.Init(stateModel.Notebooks);
                    PagesRepository.Init(stateModel.Pages);
                    PageContentRepository.Init(stateModel.Content);
                    return;
                }
                catch (Exception)
                {
                    Console.WriteLine("Invalid passphrase. Please try again...");
                }
            }
        }
Exemplo n.º 8
0
        public void AddOrUpdateFail()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);

            List <PageContent> itemToUpdate = null;

            //Act //Assert
            Assert.Throws(typeof(NullReferenceException), () => pageContentRepository.AddOrUpdate(itemToUpdate));
        }
Exemplo n.º 9
0
        public void SetActivePage(Page page)
        {
            if (page == null)
            {
                Value.SetDataSource(null);
                return;
            }

            var dataSource = PageContentRepository.GetDataSource(page.Id);

            Value.SetDataSource(dataSource);
        }
Exemplo n.º 10
0
        public VmPageContent GetById(int id)
        {
            PageContentRepository PageContentRepository = UnitOfWork.GetRepository <PageContentRepository>();

            var result = PageContentRepository.GetById(id);

            var vmPageContent = new VmPageContent
            {
                Id      = result.Id,
                Content = result.Content,
            };

            return(vmPageContent);
        }
Exemplo n.º 11
0
        public bool UpdatePageContent(VmPageContent pageContent)
        {
            PageContentRepository PageContentRepository = UnitOfWork.GetRepository <PageContentRepository>();

            var updateablePageContent = new PageContent
            {
                Id      = pageContent.Id,
                Content = pageContent.Content
            };

            PageContentRepository.UpdatePageContent(updateablePageContent);

            UnitOfWork.Commit();

            return(true);
        }
Exemplo n.º 12
0
        public void AddContentPermissionsFail()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();
            List <ContentPermission> contentPermissions = null;

            //Act
            var result = pageContentRepository.AddContentPermissions(contentPermissions);

            //Assert
            Assert.Null(result);

            //Clean
            dbContext.ContentPermission.RemoveRange(dbContext.ContentPermission);
        }
Exemplo n.º 13
0
        public void AddContentPermissionsSuccess()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var contentPermissions    = TestDataRepository.GetContentPermissions();

            //Act
            var result = pageContentRepository.AddContentPermissions(contentPermissions);

            //Assert
            Assert.NotNull(result);
            Assert.True(result.Count > 0);

            //Clean
            dbContext.ContentPermission.RemoveRange(dbContext.ContentPermission);
        }
Exemplo n.º 14
0
        public void CreateTranslationFail()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pageContents          = TestDataRepository.GetPageContents();
            PageContentTranslation pageContentTranslation = null;


            //Act
            var result = pageContentRepository.CreateTranslation(pageContentTranslation);

            //Assert
            Assert.Null(result);

            //Clean
            dbContext.PageContentTranslation.RemoveRange(dbContext.PageContentTranslation);
        }
Exemplo n.º 15
0
        public void UpdatePageContentFail()
        {
            //Arrange
            var         pageContentRepository = new PageContentRepository(_container);
            var         dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var         pageContents          = TestDataRepository.GetPageContents();
            PageContent pageContent           = null;


            //Act
            var result = pageContentRepository.Update(pageContent);

            //Assert
            Assert.Null(result);

            //Clean
            dbContext.PageContent.RemoveRange(dbContext.PageContent);
        }
Exemplo n.º 16
0
        public void GetOptionListFail()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var pageContents          = TestDataRepository.GetPageContents();
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();

            foreach (var item in pageContents)
            {
                pageContentRepository.Create(item);
            }
            var pageContentId = Guid.NewGuid();

            //Act
            var result = pageContentRepository.Get(pageContentId);

            //Assert
            Assert.Null(result);
        }
Exemplo n.º 17
0
        public void GetByPageLocaleFail()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var pageContents          = TestDataRepository.GetPageContents();
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();

            foreach (var item in pageContents)
            {
                pageContentRepository.Create(item);
            }
            var pageId = Guid.NewGuid();

            //Act
            var result = pageContentRepository.Get(pageId, "");

            //Assert
            Assert.NotNull(result);
            Assert.True(result.Count == 0);
        }
Exemplo n.º 18
0
        public static void SaveState()
        {
            var stateModel = new StateModel
            {
                Notebooks = NotebooksRepository.Get(),
                Pages     = PagesRepository.Get(),
                Content   = PageContentRepository.GetAll()
            };

            var json = Newtonsoft.Json.JsonConvert.SerializeObject(stateModel);

            var settingsModel = GetSettingsModel();

            var dataToSave = json.Encrypt(settingsModel);

            File.WriteAllBytes(settingsModel.File, dataToSave);

            UiNotifications.Notify(ConsoleColor.Red, ConsoleColor.Black, "Saved to Disk...", 5);

            Task.Run(() => dataToSave.SaveToBlobAsync(settingsModel));
        }
Exemplo n.º 19
0
        public void GetByPageLocaleSuccess()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var pageContents          = TestDataRepository.GetPageContents();
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();

            foreach (var item in pageContents)
            {
                pageContentRepository.Create(item);
            }
            var pageContentId = pageContents.First().PageId;
            var locale        = pageContents.First().PageContentTranslation.First().CultureCode;

            //Act
            var result     = pageContentRepository.Get(pageContentId, locale);
            var resultItem = result.First();

            //Assert
            Assert.NotNull(result);
            Assert.True(result.Count > 0);
            Assert.NotNull(resultItem);
            Assert.NotEqual(resultItem.Id, Guid.Empty);
            Assert.NotNull(resultItem.PageContentTranslation);
            Assert.NotNull(resultItem.ContentType);
            //Assert.NotNull(resultItem.ContentType.ContentDataType);
            Assert.NotNull(resultItem.ContentType.Properties);
            Assert.True(resultItem.ContentType.Properties.Count > 0);
            Assert.NotNull(resultItem.ContentPermissions);
            Assert.True(resultItem.ContentPermissions.Count > 0);
            Assert.NotNull(resultItem.Properties);
            Assert.True(resultItem.Properties.Count > 0);
            Assert.True(resultItem.SortOrder > 0);
            Assert.NotEqual(resultItem.ContainerId, Guid.Empty);
            Assert.True(resultItem.CreatedDate > DateTime.MinValue);
            Assert.True(resultItem.LastModifiedDate > DateTime.MinValue);

            //Clean
            dbContext.PageContent.RemoveRange(dbContext.PageContent);
        }
Exemplo n.º 20
0
        public void GetTranslationByIdSuccess()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var pageContents          = TestDataRepository.GetPageContents();
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();

            foreach (var item in pageContents)
            {
                pageContentRepository.Create(item);
            }
            var translationId = pageContents.First().PageContentTranslation.First().Id;

            //Act
            var result = pageContentRepository.GetTranslation(translationId);

            //Assert
            Assert.NotNull(result);
            Assert.NotEqual(result.Id, Guid.Empty);
            Assert.True(!string.IsNullOrEmpty(result.ContentData));
            Assert.True(!string.IsNullOrEmpty(result.CultureCode));
        }
Exemplo n.º 21
0
        public void UpdatePageContentSuccess()
        {
            //Arrange
            var pageContentRepository = new PageContentRepository(_container);
            var pageContents          = TestDataRepository.GetPageContents(false);
            var dbContext             = _serviceProvider.GetRequiredService <DeviserDbContext>();

            foreach (var item in pageContents)
            {
                item.ContentType.Properties = null;
                item.ContentPermissions     = null;
                item.PageContentTranslation = null;
                pageContentRepository.Create(item);
            }
            var pageContent = pageContents.First();

            var itemToUpdate = pageContentRepository.Get(pageContent.Id);

            itemToUpdate.IsDeleted = true;


            //Act
            var result = pageContentRepository.Update(itemToUpdate);

            //Assert
            Assert.NotNull(result);
            Assert.NotEqual(result.Id, Guid.Empty);
            Assert.NotNull(result.Properties);
            Assert.True(result.Properties.Count > 0);
            Assert.True(result.SortOrder > 0);
            Assert.NotEqual(result.ContainerId, Guid.Empty);
            Assert.True(result.CreatedDate > DateTime.MinValue);
            Assert.True(result.LastModifiedDate > DateTime.MinValue);
            Assert.True(result.IsDeleted == itemToUpdate.IsDeleted);

            //Clean
            dbContext.PageContent.RemoveRange(dbContext.PageContent);
        }
Exemplo n.º 22
0
        public void CreateTranslationSuccess()
        {
            //Arrange
            var pageContentRepository  = new PageContentRepository(_container);
            var dbContext              = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pageContents           = TestDataRepository.GetPageContents();
            var pageContentTranslation = pageContents.First().PageContentTranslation.First();


            //Act
            var result = pageContentRepository.CreateTranslation(pageContentTranslation);

            //Assert
            Assert.NotNull(result);
            Assert.NotEqual(result.Id, Guid.Empty);
            Assert.True(!string.IsNullOrEmpty(result.ContentData));
            Assert.True(!string.IsNullOrEmpty(result.CultureCode));
            Assert.True(result.CreatedDate > DateTime.MinValue);
            Assert.True(result.LastModifiedDate > DateTime.MinValue);

            //Clean
            dbContext.PageContentTranslation.RemoveRange(dbContext.PageContentTranslation);
        }