public IActionResult Create(Page pageRecord, [FromServices] MongoDbBaseRepository <UrlRecord> urlRecordRepository) { //需要判断一下url if (!string.IsNullOrEmpty(pageRecord.Url)) { pageRecord.Url = pageRecord.Url.ToLower(); } var filters = Builders <UrlRecord> .Filter.Where(x => x.Type == UrlRecordType.Page && x.Slug == pageRecord.Url); var urlRecord = urlRecordRepository.SigleOrDefault(filters).Result; if (urlRecord != null) { throw new Exception($"URL:{pageRecord.Url} already exists"); } //新的UrlRecord不存在,插入新的UrlRecord urlRecordRepository.Insert(new UrlRecord() { Slug = pageRecord.Url, Type = UrlRecordType.Page, RefValue = pageRecord.Id.ToString() }); _pageRepository.Insert(pageRecord); return(Ok(new WebResponseModel())); }
public IActionResult Edit(Page page, [FromServices] MongoDbBaseRepository <UrlRecord> urlRecordRepository) { if (page.Url != null) { page.Url = page.Url.ToLower(); } var oldPage = _pageRepository.GetByIdAsync(page.Id).Result; var filters = Builders <UrlRecord> .Filter.Where(x => x.Type == UrlRecordType.Page && x.RefValue == oldPage.Id.ToString()); var existsUrlRecord = urlRecordRepository.SigleOrDefault(filters).Result; if (existsUrlRecord == null) { //之前不存在,补充进去 //for fix some page not set urlrecords issue var newUrlRecord = new UrlRecord() { Slug = page.Url, Type = UrlRecordType.Page, RefValue = page.Id.ToString() }; urlRecordRepository.Insert(newUrlRecord); } else if (page.Url != existsUrlRecord.Slug) { //旧页面的Url已存在,但是URL不相同,意味着在新页面编辑的时候更新了URL //旧的URL做301处理 //keep old url, set old url redirect path existsUrlRecord.Type = UrlRecordType.RedirectPermanent; existsUrlRecord.RefValue = page.Url; urlRecordRepository.Update(existsUrlRecord); //并创建新的页面 //create new url for the new page var newUrlRecord = new UrlRecord() { Slug = page.Url, Type = UrlRecordType.Page, RefValue = page.Id.ToString() }; urlRecordRepository.Insert(newUrlRecord); } else { //other no change for url record } page.ModificationTime = DateTime.UtcNow; page.Title = oldPage.Title; _pageRepository.Update(page); return(Ok(new WebResponseModel())); }
public UrlRecordServcie(IMemoryCache memoryCache, MongoDbBaseRepository <UrlRecord> urlRecordRepository, MongoDbBaseRepository <Page> pageRepository, MongoDbBaseRepository <Template> templateRepository, MongoDbBaseRepository <Settings> settingsRepository) { _memoryCache = memoryCache; _urlRecordRepository = urlRecordRepository; _pageRepository = pageRepository; _templateRepository = templateRepository; _settingsRepository = settingsRepository; }
public DynamicContentController(IMemoryCache memoryCache, MongoDbBaseRepository <UrlRecord> urlRecordRepository, MongoDbBaseRepository <Page> pageRepository, MongoDbBaseRepository <Template> templateRepository, MongoDbBaseRepository <Settings> settingsRepository, UrlRecordServcie urlRecordServcie) { _memoryCache = memoryCache; _urlRecordRepository = urlRecordRepository; _pageRepository = pageRepository; _templateRepository = templateRepository; _settingsRepository = settingsRepository; _urlRecordServcie = urlRecordServcie; }
public async Task <IActionResult> Index([FromServices] MongoDbBaseRepository <User, Guid> server) { //var user = new User() //{ // Id = Guid.NewGuid(), // Name = "simple", // Password = "******", // Address = "重庆江北" //}; //await server.InsertAsync(user); var user = await server.GetByIdAsync(new Guid("d06fe44f-d603-4e7b-a4cb-080fd181ab3a")); var userList = await server.SearchAsync(Builders <User> .Filter.Empty); return(View()); }
public async Task <IActionResult> Index([FromServices] MongoDbBaseRepository <User, Guid> server) { //var user = new User() //{ // Id = Guid.NewGuid(), // Name = "alangur", // Password = "******", // Address = "重庆渝中" //}; //await server.InsertAsync(user); var user = await server.GetByIdAsync(new Guid("b787fabf-337d-4bcd-92ec-8571905c87d1")); var userList = await server.SearchAsync(Builders <User> .Filter.Empty); return(View()); }
public CommonController(MongoDbBaseRepository <Page> pageRepository, MongoDbBaseRepository <Template> templateRepository) { this._pageRepository = pageRepository; this._templateRepository = templateRepository; }
public SettingsController(MongoDbBaseRepository <Settings> settingsRepository) { this._settingsRepository = settingsRepository; }
public WidgetsController(MongoDbBaseRepository <Widget> templateRepository) { this._widgetRepository = templateRepository; }
public UrlRoutesController(MongoDbBaseRepository <UrlRecord> urlRecordRepository) { this._urlRecordRepository = urlRecordRepository; }
public ResourcesController(MongoDbBaseRepository <Resource> resourceRepository) { this._resourceRepository = resourceRepository; }
public TemplatesController(MongoDbBaseRepository <Template> templateRepository) { this._templateRepository = templateRepository; }
public ResourceDirectoryController(MongoDbBaseRepository <ResourceDirectory> resourceDirectoryRepository) { _resourceDirectoryRepository = resourceDirectoryRepository; }