/// <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(); } }
/// <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()); } }
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 }
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(); }
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); } }