public async Task CreateMetaData() { var m = new MetaData() { Key = "keywords", SiteId = SITE_ID, Value = "test keyword", ItemId = 1, Type = MetaDataTypes.Page }; var result = await _metasService.SaveAsync(m, TEST_USER); Assert.NotNull(result); Assert.True(result.Succeeded); Assert.True(result.NewId > 0); }
/// <summary> /// /// </summary> /// <param name="page"></param> /// <param name="userName"></param> /// <returns></returns> public async Task <Result> SaveAsync(Page page, string userName) { page.Audit(userName); bool isNew = page.IsNew; var result = _validator.Validate(page); if (result.IsValid) { try { page.Id = result.NewId = await _pageDataAccess.SaveAsync(page, page.IsNew?DataAccessActions.Insert : DataAccessActions.Update); if (page.Contents != null && page.Contents.Count > 0) { foreach (var c in page.Contents) { // save content c.SiteId = page.SiteId; var res = await _contentService.SaveAsync(c, userName); if (!res.Succeeded) { throw new Exception(res.Errors[0].Message); } c.Id = res.NewId; if (isNew) { var resMapping = await _contentService.MapToPage(c.Id, page.Id); if (!resMapping.Succeeded) { throw new Exception(resMapping.Errors[0].Message); } } } } // save meta data if (null != page.MetaData && page.MetaData.Count > 0) { foreach (var metaKey in page.MetaData.Keys) { var m = page.MetaData[metaKey]; if (m.IsNew) { m.Key = metaKey; m.ItemId = page.Id; m.Type = MetaDataTypes.Page; m.CreatedOn = DateTime.Now; m.CreatedBy = userName; m.SiteId = page.SiteId; } await _metaService.SaveAsync(m, userName); } } } catch (Exception ex) { _logger.LogError($"SaveAsync error: {ex.Message}, stack: {ex.StackTrace}"); result.Errors.Add(new ErrorItem(ex.Message)); } } return(result); }