/// <summary> /// Get or create <see cref="ILineInlines"/> section in the <paramref name="line"/>. /// </summary> /// <param name="line"></param> /// <param name="inlines">inlines with dictionary</param> /// <returns><paramref name="line"/> or inlines key</returns> /// <exception cref="LineException">If <paramref name="line"/> doesn't implement <see cref="ILineInlines"/></exception> public static ILine GetOrCreateInlines(this ILine line, out ILineInlines inlines) { ILineInlines _inlines = line.FindInlines(); if (_inlines != null) { inlines = _inlines; return(line); } inlines = _inlines = line.Append <ILineInlines>(); return(_inlines); }
/// <summary> /// Create inlined <paramref name="subkey"/> resource. /// </summary> /// <param name="lineFactory"></param> /// <param name="subkey">subkey in parametrized format, e.g. "Culture:en"</param> /// <param name="value">(optional) value to append, if null removes previously existing the inline</param> /// <returns>new line with inlines or <paramref name="lineFactory"/></returns> /// <exception cref="LineException">If key can't be inlined.</exception> public static ILine Inline(this ILineFactory lineFactory, ILine subkey, byte[] value) { ILineInlines inlines = lineFactory.Create <ILineInlines>(null); if (value != null) { subkey = subkey.Resource(value); } if (subkey != null) { inlines[subkey] = subkey; } return(inlines); }
/// <summary> /// Inline <paramref name="value"/> to <paramref name="culture"/>. /// </summary> /// <param name="lineFactory"></param> /// <param name="culture">subkey in parametrized format, e.g. "Culture:en", or "Culture:en:N:One"</param> /// <param name="value">(optional) value to append, if null removes previously existing the inline</param> /// <returns>new line with inlines or <paramref name="lineFactory"/></returns> /// <exception cref="LineException">If key can't be inlined.</exception> public static ILine InlineCulture(this ILineFactory lineFactory, string culture, IString value) { ILineInlines inlines = lineFactory.Create <ILineInlines>(null); ILine subkey = lineFactory.Create <ILineNonCanonicalKey, string, string>(null, "Culture", culture); if (value != null) { subkey = subkey.String(value); } if (subkey != null) { inlines[subkey] = subkey; } return(inlines); }
/// <summary> /// Append part. /// </summary> /// <param name="appender"></param> /// <param name="previous"></param> /// <param name="line"></param> /// <returns></returns> public virtual bool TryCreate(ILineFactory appender, ILine previous, out ILineInlines line) { line = new LineInlines(appender, previous, new Dictionary <ILine, ILine>(LineComparer.Default)); return(true); }
/// <summary> /// Append part. /// </summary> /// <param name="appender"></param> /// <param name="previous"></param> /// <param name="inlines"></param> /// <param name="line"></param> /// <returns></returns> public virtual bool TryCreate(ILineFactory appender, ILine previous, IDictionary <ILine, ILine> inlines, out ILineInlines line) { line = new LineInlines(appender, previous, inlines); return(true); }