Пример #1
0
        /// <summary>
        /// Adds or updates the given model in the database
        /// depending on its state.
        /// </summary>
        /// <param name="model">The model</param>
        public void Save(Models.PageType model)
        {
            var type = _db.PageTypes
                       .FirstOrDefault(t => t.Id == model.Id);

            if (type == null)
            {
                type = new Data.PageType
                {
                    Id      = model.Id,
                    Created = DateTime.Now
                };
                _db.PageTypes.Add(type);
            }
            type.CLRType      = model.CLRType;
            type.Body         = JsonConvert.SerializeObject(model);
            type.LastModified = DateTime.Now;

            _db.SaveChanges();

            lock (_typesMutex)
            {
                Load();
            }
        }
Пример #2
0
        /// <summary>
        /// Adds or updates the given model in the database
        /// depending on its state.
        /// </summary>
        /// <param name="model">The model</param>
        public void Save(Models.PageType model)
        {
            var type = db.PageTypes
                       .FirstOrDefault(t => t.Id == model.Id);

            if (type == null)
            {
                type = new Data.PageType()
                {
                    Id      = model.Id,
                    Created = DateTime.Now
                };
                db.PageTypes.Add(type);
            }
            type.CLRType      = model.CLRType;
            type.Body         = JsonConvert.SerializeObject(model);
            type.LastModified = DateTime.Now;

            db.SaveChanges();

            if (cache != null)
            {
                cache.Remove(model.Id.ToString());
            }
        }
Пример #3
0
        public void Save_ExistingTypeUpdatesPageType()
        {
            #region Arrange
            Data.PageType   pageTypeData     = pageTypesList[0];
            Extend.PageType existingPageType = JsonConvert.DeserializeObject <Extend.PageType>(pageTypeData.Body);
            #endregion

            #region Act
            repository.Save(existingPageType);
            #endregion

            #region Assert
            mockPageTypeSet.Verify(db => db.Add(It.IsAny <Data.PageType>()), Times.Never());
            mockDb.Verify(db => db.SaveChanges(), Times.Once());
            #endregion
        }
Пример #4
0
        public void GetById_ValidIdGivesProperPageType(int pageTypeIdAsInt)
        {
            #region Arrange
            string          pageTypeId       = $"PageType{pageTypeIdAsInt}";
            Data.PageType   pageType         = pageTypesList.FirstOrDefault(t => t.Id == pageTypeId);
            Extend.PageType expectedPageType = JsonConvert.DeserializeObject <Extend.PageType>(pageType.Body);
            #endregion

            #region Act
            Extend.PageType result = repository.GetById(pageTypeId);
            #endregion

            #region Assert
            AssertPageTypesMatch(expectedPageType, result);
            #endregion
        }
        /// <summary>
        /// Saves the given page type.
        /// </summary>
        /// <param name="pageType">The page type</param>
        public void Save(Extend.PageType pageType)
        {
            var type = db.PageTypes
                       .FirstOrDefault(t => t.Id == pageType.Id);

            if (type == null)
            {
                type = new Data.PageType()
                {
                    Id = pageType.Id
                };
                db.PageTypes.Add(type);
            }
            type.Body = JsonConvert.SerializeObject(pageType);

            db.SaveChanges();
        }
Пример #6
0
        public void Delete_ValidObjectRemovesItem(int pageTypeIdAsInt)
        {
            #region Arrange
            string          pageTypeId     = $"PageType{pageTypeIdAsInt}";
            Data.PageType   dataPageType   = pageTypesList.FirstOrDefault(t => t.Id == pageTypeId);
            Extend.PageType extendPageType = JsonConvert.DeserializeObject <Extend.PageType>(dataPageType.Body);
            #endregion

            #region Act
            repository.Delete(extendPageType);
            #endregion

            #region Assert
            mockPageTypeSet.Verify(db => db.Remove(It.Is <Data.PageType>(
                                                       t => t.Id == pageTypeId
                                                       )), Times.Once());
            mockDb.Verify(db => db.SaveChanges(), Times.Once);
            #endregion
        }
        /// <summary>
        /// Adds or updates the given model in the database
        /// depending on its state.
        /// </summary>
        /// <param name="model">The model</param>
        public async Task Save(PageType model)
        {
            var type = await _db.PageTypes
                       .FirstOrDefaultAsync(t => t.Id == model.Id)
                       .ConfigureAwait(false);

            if (type == null)
            {
                type = new Data.PageType
                {
                    Id      = model.Id,
                    Created = DateTime.Now
                };
                await _db.PageTypes.AddAsync(type).ConfigureAwait(false);
            }
            type.CLRType      = model.CLRType;
            type.Body         = JsonConvert.SerializeObject(model);
            type.LastModified = DateTime.Now;

            await _db.SaveChangesAsync().ConfigureAwait(false);
        }
 private void CreateMockPages()
 {
     for (int i = 0; i < NUM_PAGES; i++)
     {
         Data.PageType typeForNewPage = pageTypesList[i % NUM_PAGE_TYPES];
         Data.Page     newPage        = new Data.Page {
             Id              = ConvertIntToGuid(i + 1),
             TypeId          = typeForNewPage.Id,
             ParentId        = null,
             SortOrder       = i,
             Title           = $"Page Title {i}",
             NavigationTitle = $"Nav title {i}",
             Slug            = $"page-title-{i}",
             Published       = DateTime.Now.AddDays(-(NUM_PAGES - i)),
             LastModified    = DateTime.Now.AddDays(-(NUM_PAGES - i)),
             Type            = typeForNewPage,
             Fields          = new List <Data.PageField>(),
         };
         typeForNewPage.Pages.Add(newPage);
         pagesList.Add(newPage);
     }
 }