Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 // 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));
 }