public SubmitResult UpdatePageRefeneces(long pageId, long tenantId) { IEnumerable <Page> ps = Unit.PageRepository.GetReferencing(pageId, tenantId); foreach (var p in ps) { PageParameterForJson[] pars = Unit.PageParameterRepository.FindForJsonByPage(p.Id).ToArray(); PageRouteDTO r = Unit.PageRouteRepository.FindByPage(p.Id); var fs = Unit.CustomFieldRepository.FindAs(FieldDefinition.Expression, d => d.PageId == p.Id).ToArray(); fs = fs.Any() ? fs : null; Unit.PageRepository.UpdatePageViewParamsJson(p, pars, r, fs); } return(Unit.SaveChanges()); }
public void UpdatePageViewParamsJson(Page p, PageParameterForJson[] ps, PageRouteDTO r, FieldDefinition[] definitions) { var jsonParams = p.ViewParams == null ? new ViewParams() : p.ViewParams.FromJson <ViewParams>(); if (r != null) { jsonParams.AddUrl = r.AddUrlString != null ? "/" + r.AddUrlString : null; jsonParams.DetailsUrl = r.DetailsUrlString != null ? "/" + r.DetailsUrlString : null; jsonParams.EditUrl = r.EditUrlString != null ? "/" + r.EditUrlString : null; jsonParams.ListUrl = r.ListUrlString != null ? "/" + r.ListUrlString : null; } foreach (var pp in ps) { jsonParams.Other[pp.Name] = pp.Value; } if (definitions != null) { jsonParams.Fields = definitions; } p.ViewParams = jsonParams.ToJson(); Update(p); }