public static LfMultiText FromMultiITsString(ITsMultiString value, ILgWritingSystemFactory wsManager) { if (value == null || value.StringCount == 0) { return(null); } LfMultiText mt = new LfMultiText(); for (int index = 0; index < value.StringCount; index++) { int wsId; ITsString tss = value.GetStringFromIndex(index, out wsId); string wsStr = wsManager.GetStrFromWs(wsId); if (!string.IsNullOrEmpty(wsStr)) { string valueStr = LfMerge.Core.DataConverters.ConvertLcmToMongoTsStrings.TextFromTsString(tss, wsManager); LfStringField field = LfStringField.FromString(valueStr); if (field != null) { mt.Add(wsStr, field); } } //MainClass.Logger.Warning("Adding multistring ws: {0}, str {1}", wsStr, valueStr); } return(mt); }
public static LfMultiText FromLcmMultiString(IMultiAccessorBase other, ILgWritingSystemFactory wsManager) { LfMultiText newInstance = new LfMultiText(); foreach (int wsid in other.AvailableWritingSystemIds) { string wsstr = wsManager.GetStrFromWs(wsid); ITsString value = other.get_String(wsid); string text = LfMerge.Core.DataConverters.ConvertLcmToMongoTsStrings.TextFromTsString(value, wsManager); LfStringField field = LfStringField.FromString(text); if (field != null) { newInstance.Add(wsstr, field); } } return(newInstance); }
// Used in subclasses to help reduce size of MongoDB JSON serializations protected bool _ShouldSerializeLfMultiText(LfMultiText value) { return(value != null && !value.IsEmpty && value.Values.AsEnumerable().All(field => field != null && !field.IsEmpty)); }