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()));
        }
Beispiel #4
0
        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)));
 }
Beispiel #6
0
 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 }));
 }
Beispiel #8
0
 public IActionResult Create(Template template)
 {
     _templateRepository.Insert(template);
     return(Ok(new WebResponseModel()));
 }