public TStream StreamFilledFrames(FilledProjectionFrame filledFrame, string nmspc) { var stream = _writer.Open(nmspc); StreamFilledFrame(filledFrame); _writer.Close(); return(stream); }
private FilledProjectionFrame FillFrame(FrameNode frame) { FilledProjectionFrame filledFrame; if (frame.MatchedElement is ResourceProjectionElement) { var filler = _cachier.GetLater( (frame.MatchedElement as ResourceProjectionElement).ResourceType, frame.Key); filledFrame = new FilledProjectionFrame(frame.MatchedElement, frame.Key, filler); } else { filledFrame = new FilledProjectionFrame(frame.MatchedElement, frame.Key); } var childFrames = frame.ChildNodes.Select(FillFrame).ToArray(); filledFrame.ChildFrames = childFrames; return(filledFrame); }
private void StreamFilledFrame(FilledProjectionFrame filledFrame) { _writer.StartWritingNode(filledFrame.Name, filledFrame.Key); foreach (var key in filledFrame.Keys.Where(k => k != "Id" && k != RegistrationStorage.DefinitlyNoChildren)) { _writer.WriteAttribute(key, filledFrame[key]); } if (filledFrame.ChildFrames.Any()) { foreach (var child in filledFrame.ChildFrames) { StreamFilledFrame(child); } } else { if ((bool)filledFrame[RegistrationStorage.DefinitlyNoChildren]) { _writer.WriteAttribute(RegistrationStorage.DefinitlyNoChildren, true); } } _writer.EndWritingNode(); }