public bool Write(IEnumerable <TItem> items) { IEnumerable <string> values = _serializer.Serialize(items).ToList(); if (!values.Any()) { return(false); } _fileService.WriteFile(values); return(true); }
public Slice GetSliceFromMemberInfo(MemberInfo memberInfo, object value, bool lookupIndex) { using (var ms = new MemoryStream()) using (var writer = new BinaryWriter(ms)) { IPropertyValueSerializer serializer = null; if (lookupIndex) { if (_indexInfo.IndexAttributeMap.ContainsKey(memberInfo)) { var idxInfo = _indexInfo.IndexAttributeMap[memberInfo][0]; serializer = idxInfo.Serializer; if (serializer != null) { writer.Write(this.GetIndexKeyPrefixSlice(idxInfo).ToByteArray(deepCopy: false)); } } } else { var keyTuple = _idMembers.FirstOrDefault(t => Equals(t.Item1, memberInfo)); serializer = keyTuple?.Item2.Serializer; if (serializer != null) { writer.Write(this.GetKeyPrefixSlice().ToByteArray(deepCopy: false)); } } if (serializer == null) { throw new InvalidOperationException("Serializer for filed " + memberInfo.Name + " is null"); } if (value != null) { var serializedBytes = serializer.Serialize(value); this.VerifySerializedBytes(serializedBytes); writer.Write(serializedBytes); } writer.Flush(); return(Slice.FromByteArray(ms.ToArray())); } }