static void Main(string[] args)
        {
            try
            {
                DynamoDBContext context = new DynamoDBContext(client);

                // 1. Create a book.
                DimensionType myBookDimensions = new DimensionType()
                {
                    Length    = 8M,
                    Height    = 11M,
                    Thickness = 0.5M
                };

                Book myBook = new Book
                {
                    Id          = 501,
                    Title       = "AWS SDK for .NET Object Persistence Model Handling Arbitrary Data",
                    ISBN        = "999-9999999999",
                    BookAuthors = new List <string> {
                        "Author 1", "Author 2"
                    },
                    Dimensions = myBookDimensions
                };

                context.Save(myBook);

                // 2. Retrieve the book.
                Book bookRetrieved = context.Load <Book>(501);

                // 3. Update property (book dimensions).
                bookRetrieved.Dimensions.Height    += 1;
                bookRetrieved.Dimensions.Length    += 1;
                bookRetrieved.Dimensions.Thickness += 0.2M;
                // Update the book.
                context.Save(bookRetrieved);

                Console.WriteLine("To continue, press Enter");
                Console.ReadLine();
            }
            catch (AmazonDynamoDBException e) { Console.WriteLine(e.Message); }
            catch (AmazonServiceException e) { Console.WriteLine(e.Message); }
            catch (Exception e) { Console.WriteLine(e.Message); }
        }
        public DynamoDBEntry ToEntry(object value)
        {
            DimensionType bookDimensions = value as DimensionType;

            if (bookDimensions == null)
            {
                throw new ArgumentOutOfRangeException();
            }

            string data = string.Format("{1}{0}{2}{0}{3}", " x ",
                                        bookDimensions.Length, bookDimensions.Height, bookDimensions.Thickness);

            DynamoDBEntry entry = new Primitive
            {
                Value = data
            };

            return(entry);
        }
        public object FromEntry(DynamoDBEntry entry)
        {
            Primitive primitive = entry as Primitive;

            if (primitive == null || !(primitive.Value is String) || string.IsNullOrEmpty((string)primitive.Value))
            {
                throw new ArgumentOutOfRangeException();
            }

            string[] data = ((string)(primitive.Value)).Split(new string[] { " x " }, StringSplitOptions.None);
            if (data.Length != 3)
            {
                throw new ArgumentOutOfRangeException();
            }

            DimensionType complexData = new DimensionType
            {
                Length    = Convert.ToDecimal(data[0]),
                Height    = Convert.ToDecimal(data[1]),
                Thickness = Convert.ToDecimal(data[2])
            };

            return(complexData);
        }