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 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 Create(ResourceDirectory model) { //await _resourceDirectoryRepository.InsertManyAsync(new List<ResourceDirectory>() //{ // new ResourceDirectory(){FolderName = @"MongoDB",Parent = "Databases"}, // new ResourceDirectory(){FolderName = @"dbm",Parent = "Databases"}, // new ResourceDirectory(){FolderName = @"Databases",Parent = "Programming"}, // new ResourceDirectory(){FolderName = @"Languages",Parent = "Programming"}, // new ResourceDirectory(){FolderName = @"Programming",Parent = "Books"}, // new ResourceDirectory(){FolderName = @"Books",Parent = null} //}); _resourceDirectoryRepository.Insert(model); return(Ok(new WebResponseModel())); }
public IActionResult Create([FromServices] IHostingEnvironment env, Resource record, IFormFile file) { if (file == null) { throw new Exception("File is empty"); } using (var s = file.OpenReadStream()) { var uuid = _resourceRepository.UploadFile(file.FileName, s); record.FileId = uuid; record.FileName = file.FileName; record.ContentType = file.ContentType; record.Length = file.Length; } _resourceRepository.Insert(record); return(RedirectToAction(nameof(Edit), new { id = record.Id })); }
public IActionResult Create(Settings record) { _settingsRepository.Insert(record); return(RedirectToAction(nameof(Index))); }
public IActionResult Create(Widget record) { _widgetRepository.Insert(record); return(Ok(new WebResponseModel())); }
public IActionResult Create(UrlRecord record) { _urlRecordRepository.Insert(record); return(RedirectToAction(nameof(Edit), new { id = record.Id })); }
public IActionResult Create(Template template) { _templateRepository.Insert(template); return(Ok(new WebResponseModel())); }