public object FromEntry (DynamoDBEntry entry) { PrimitiveList pList = entry as PrimitiveList; if (pList != null) { double lat = 0, lon = 0, accuracy = 0; for (int i = 0; i < pList.Entries.Count; i++) { switch (i) { case 0: lat = pList [i].AsDouble (); break; case 1: lon = pList [i].AsDouble (); break; case 2: accuracy = pList [i].AsDouble (); break; default: break; } } return new Coordinate (lat, lon, accuracy); } else { return null; } }
/// <summary> /// Converts the <c>entry</c> to <see cref="DateTime"/>. /// </summary> /// <param name="entry">The entry to convert.</param> /// <returns>The date time of the entry.</returns> public object FromEntry(DynamoDBEntry entry) { var entryString = entry.AsString(); if (string.IsNullOrEmpty(entryString)) return null; else return DateTime.ParseExact(entryString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind); }
public object FromEntry (DynamoDBEntry entry) { PrimitiveList pList = entry as PrimitiveList; if (pList == null) throw new ArgumentOutOfRangeException (); var sList = pList.AsListOfString (); var hashSet = new HashSet<string> (); foreach (var item in sList) { hashSet.Add (item); } return hashSet; }
// ReSharper disable UnusedParameter.Local private CacheDynamoDbEntryWrapper(SerializationInfo info, StreamingContext context) // ReSharper restore UnusedParameter.Local { var primitiveList = new List<Primitive>(); var en = info.GetEnumerator(); while (en.MoveNext()) { if (en.Name == "Primitive") { this.Entry = ((CachePrimitiveWrapper)en.Value).Primitive; return; } primitiveList.Add(((CachePrimitiveWrapper)en.Value).Primitive); } this.Entry = primitiveList; }
public object FromEntry (DynamoDBEntry entry) { Primitive p = entry as Primitive; return p != null; }
public object FromEntry(DynamoDBEntry entry) { return Enum.Parse(typeof(Stars), entry.AsString()); }
public object FromEntry(DynamoDBEntry entry) { if (entry == null) { return null; } var list = entry.AsListOfString(); var dictionary = new Dictionary<string, TimeSpan>(); foreach (var record in list) { var split = record.Split('@'); var key = split[0]; var value = TimeSpan.Parse(split[1]); dictionary.Add(key, value); } return dictionary; }
public object FromEntry (DynamoDBEntry entry) { return entry == null ? 0 : entry.AsInt(); }
// Attempts to decode a particular DynamoDBEntry. // May throw exceptions, in particular if the data is not base64 encoded private static bool TryDecodeBase64(DynamoDBEntry entry, out DynamoDBEntry decodedEntry) { decodedEntry = null; // Convert string primitive (S) to binary primitive (B) var primitive = entry as Primitive; if (primitive != null && primitive.Type == DynamoDBEntryType.String) { // Decode the contents var base64 = primitive.Value as string; byte[] bytes; if (!TryDecodeBase64(base64, out bytes)) { return(false); } // Store as binary primitive (B) decodedEntry = new Primitive(bytes); return(true); } // Convert string set (SS) to binary set (BS) var primitiveList = entry as PrimitiveList; if (primitiveList != null && primitiveList.Type == DynamoDBEntryType.String) { var decodedList = new PrimitiveList(DynamoDBEntryType.Binary); foreach (var item in primitiveList.Entries) { // Attempt to decode DynamoDBEntry decodedItem; if (!TryDecodeBase64(item, out decodedItem)) { return(false); } // The decoded item must be a Primitive Primitive decodedPrimitive = decodedItem as Primitive; if (decodedPrimitive == null) { return(false); } decodedList.Add(decodedPrimitive); } decodedEntry = decodedList; return(true); } // In a given list (L), convert every string primitive (S) to binary primitive (B) // Non-strings and strings that cannot be converted will be left as-is var dynamoDBList = entry as DynamoDBList; if (dynamoDBList != null) { var decodedList = new DynamoDBList(); foreach (var item in dynamoDBList.Entries) { DynamoDBEntry decodedItem; if (!TryDecodeBase64(item, out decodedItem)) { // if decoding could not succeed, store same item decodedItem = item; } decodedList.Add(decodedItem); } decodedEntry = decodedList; return(true); } return(false); }
public object FromEntry(DynamoDBEntry entry) { Primitive primitive = entry as Primitive; if (primitive == null) return null; if (primitive.Type != DynamoDBEntryType.String) throw new InvalidCastException(); string xml = primitive.AsString(); using (StringReader reader = new StringReader(xml)) { return _serializer.Deserialize(reader); } }
public CacheDynamoDbEntryWrapper(DynamoDBEntry entry) { this.Entry = entry; }
/// <summary> /// Converts the <c>entry</c> to <see cref="DateTime"/>. /// </summary> /// <param name="entry">The entry to convert.</param> /// <returns>The date time of the entry.</returns> public object FromEntry(DynamoDBEntry entry) { return DateTime.ParseExact(entry.AsString(), "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind); }
public object FromEntry (DynamoDBEntry entry) { Primitive p = entry as Primitive; return new TimeSpan (p.AsLong ()); }
public object FromEntry (DynamoDBEntry entry) { var str = entry.AsString(); var list = string.IsNullOrWhiteSpace(str) ? new List<int>() : str.Split(',').Select(int.Parse).ToList(); return list; }
// Attempts to decode a particular DynamoDBEntry. // May throw exceptions, in particular if the data is not base64 encoded private static bool TryDecodeBase64(DynamoDBEntry entry, out DynamoDBEntry decodedEntry) { decodedEntry = null; // Convert string primitive (S) to binary primitive (B) var primitive = entry as Primitive; if (primitive != null && primitive.Type == DynamoDBEntryType.String) { // Decode the contents var base64 = primitive.Value as string; byte[] bytes; if (!TryDecodeBase64(base64, out bytes)) return false; // Store as binary primitive (B) decodedEntry = new Primitive(bytes); return true; } // Convert string set (SS) to binary set (BS) var primitiveList = entry as PrimitiveList; if (primitiveList != null && primitiveList.Type == DynamoDBEntryType.String) { var decodedList = new PrimitiveList(DynamoDBEntryType.Binary); foreach(var item in primitiveList.Entries) { // Attempt to decode DynamoDBEntry decodedItem; if (!TryDecodeBase64(item, out decodedItem)) return false; // The decoded item must be a Primitive Primitive decodedPrimitive = decodedItem as Primitive; if (decodedPrimitive == null) return false; decodedList.Add(decodedPrimitive); } decodedEntry = decodedList; return true; } // In a given list (L), convert every string primitive (S) to binary primitive (B) // Non-strings and strings that cannot be converted will be left as-is var dynamoDBList = entry as DynamoDBList; if (dynamoDBList != null) { var decodedList = new DynamoDBList(); foreach(var item in dynamoDBList.Entries) { DynamoDBEntry decodedItem; if (!TryDecodeBase64(item, out decodedItem)) { // if decoding could not succeed, store same item decodedItem = item; } decodedList.Add(decodedItem); } decodedEntry = decodedList; return true; } return false; }
// Writes a JSON representation of the given DynamoDBEntry private static void WriteJson(DynamoDBEntry entry, JsonWriter writer, DynamoDBEntryConversion conversion) { entry = entry.ToConvertedEntry(conversion); var document = entry as Document; if (document != null) { writer.WriteObjectStart(); // Both item attributes and entries in M type are unordered, so sorting by key // http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes foreach (var kvp in document) { var name = kvp.Key; var value = kvp.Value; writer.WritePropertyName(name); WriteJson(value, writer, conversion); } writer.WriteObjectEnd(); return; } var primitive = entry as Primitive; if (primitive != null) { var type = primitive.Type; var value = primitive.Value; WritePrimitive(writer, type, value); return; } var primitiveList = entry as PrimitiveList; if (primitiveList != null) { var itemType = primitiveList.Type; writer.WriteArrayStart(); foreach (var item in primitiveList.Entries) { var itemValue = item.Value; WritePrimitive(writer, itemType, itemValue); } writer.WriteArrayEnd(); return; } var ddbList = entry as DynamoDBList; if (ddbList != null) { writer.WriteArrayStart(); foreach(var item in ddbList.Entries) { WriteJson(item, writer, conversion); } writer.WriteArrayEnd(); return; } var ddbBool = entry as DynamoDBBool; if (ddbBool != null) { writer.Write(ddbBool.Value); return; } var ddbNull = entry as DynamoDBNull; if (ddbNull != null) { writer.Write(null); return; } throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "Unable to convert entry of type {0} to JSON", entry.GetType().FullName)); }
public object FromEntry(DynamoDBEntry entry) { var ticks = entry.AsLong(); return new DateTimeOffset(ticks, DateTimeOffset.UtcNow.Offset); }
/// <summary> /// Adds a DynamoDB to the end of the list. /// </summary> /// <param name="value">DynamoDB to add.</param> public void Add(DynamoDBEntry value) { this.Entries.Add(value); }
public object FromEntry(DynamoDBEntry entry) { return new Guid(entry.AsString()); }
// Writes a JSON representation of the given DynamoDBEntry private static void WriteJson(DynamoDBEntry entry, JsonWriter writer, DynamoDBEntryConversion conversion) { entry = entry.ToConvertedEntry(conversion); var document = entry as Document; if (document != null) { writer.WriteObjectStart(); // Both item attributes and entries in M type are unordered, so sorting by key // http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes foreach (var kvp in document) { var name = kvp.Key; var value = kvp.Value; writer.WritePropertyName(name); WriteJson(value, writer, conversion); } writer.WriteObjectEnd(); return; } var primitive = entry as Primitive; if (primitive != null) { var type = primitive.Type; var value = primitive.Value; WritePrimitive(writer, type, value); return; } var primitiveList = entry as PrimitiveList; if (primitiveList != null) { var itemType = primitiveList.Type; writer.WriteArrayStart(); foreach (var item in primitiveList.Entries) { var itemValue = item.Value; WritePrimitive(writer, itemType, itemValue); } writer.WriteArrayEnd(); return; } var ddbList = entry as DynamoDBList; if (ddbList != null) { writer.WriteArrayStart(); foreach (var item in ddbList.Entries) { WriteJson(item, writer, conversion); } writer.WriteArrayEnd(); return; } var ddbBool = entry as DynamoDBBool; if (ddbBool != null) { writer.Write(ddbBool.Value); return; } var ddbNull = entry as DynamoDBNull; if (ddbNull != null) { writer.Write(null); return; } throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "Unable to convert entry of type {0} to JSON", entry.GetType().FullName)); }
public object FromEntry (DynamoDBEntry entry) { Primitive p = entry as Primitive; return StringToDateTime (p.AsString ()); }