public async Task PutItemsAsync <T>(List <T> itemsToPut) { DocumentBatchWrite batchWrite = InternalTable.CreateBatchWrite(); itemsToPut.ForEach(item => { batchWrite.AddDocumentToPut(GetDocument(item)); }); await batchWrite.ExecuteAsync(); }
public async Task InsertBatchItems(List <Profile> profiles) { try { DocumentBatchWrite request = _table.CreateBatchWrite(); foreach (var profile in profiles) { request.AddDocumentToPut(ConvertToDocument(profile)); } await request.ExecuteAsync(); Console.WriteLine("Items created successfully"); } catch (Exception ex) { Console.WriteLine(ex); } }
public async Task StoreEvents(List <MDBTimelineEvent> timelineEvents) { try { Table table = Table.LoadTable(client, "TimelineEvents"); DocumentBatchWrite batchWrite = table.CreateBatchWrite(); foreach (MDBTimelineEvent tlevent in timelineEvents) { batchWrite.AddDocumentToPut(tlevent.AsDynamoDocument()); } await batchWrite.ExecuteAsync(); } catch (Exception ex) { Console.WriteLine("StoreEvents ERROR: " + ex.Message); throw ex; } }
public async Task InsertNewItems(List <Profile> profiles) { try { List <Document> documents = profiles.Select(ConvertToDocument).ToList(); DocumentBatchWrite batchWrite = _table.CreateBatchWrite(); foreach (var document in documents) { batchWrite.AddDocumentToPut(document); } await batchWrite.ExecuteAsync(); Console.WriteLine("Documents have been inserted successfully"); } catch (AmazonDynamoDBException ex) { Console.WriteLine(ex); } catch (Exception ex) { Console.WriteLine(ex); } }
public async Task <IActionResult> Get([FromHeader] string key, [FromHeader] string payload) { try { return(Ok()); if (key != "enginekey") { return(BadRequest("bad")); } AmazonDynamoDBClient client = new AmazonDynamoDBClient(); Table table = Table.LoadTable(client, "OrderBook"); List <Document> docs = new List <Document>(); int bids = payload.IndexOf("bids"); for (int i = 0; i < payload.Length; i++) { if (payload[i] != '[') { continue; } Document doc = new Document(); string price = new string(""); string volume = new string(""); i += 1; while (true && i < payload.Length) { if (payload[i] == ',') { i += 1; break; } price += payload[i]; i += 1; } while (true && i < payload.Length) { if (payload[i] == ']') { break; } volume += payload[i]; i += 1; } doc["Price"] = price; doc["Volume"] = volume; doc["Side"] = i < bids ? "Buy" : "Sell"; docs.Add(doc); } DocumentBatchWrite write = table.CreateBatchWrite(); foreach (Document doc in docs) { write.AddDocumentToPut(doc); } await write.ExecuteAsync(); return(Ok()); } catch { return(BadRequest("something went wrong")); } }
private void TestMultiTableDocumentBatchWrite(Table hashTable, Table hashRangeTable) { var multiTableDocumentBatchWrite = new MultiTableDocumentBatchWrite(); var doc1a = new Document(); doc1a["Id"] = 5101; doc1a["Data"] = Guid.NewGuid().ToString(); var doc1b = new Document(); doc1b["Id"] = 5102; doc1b["Data"] = Guid.NewGuid().ToString(); { var writer = new DocumentBatchWrite(hashTable); writer.AddDocumentToPut(doc1a); writer.AddDocumentToPut(doc1b); multiTableDocumentBatchWrite.AddBatch(writer); } var doc2a = new Document(); doc2a["Id"] = 5201; doc2a["Data"] = Guid.NewGuid().ToString(); var doc2b = new Document(); doc2b["Id"] = 5202; doc2b["Data"] = Guid.NewGuid().ToString(); { var writer = new DocumentBatchWrite(hashTable); writer.AddDocumentToPut(doc2a); writer.AddDocumentToPut(doc2b); multiTableDocumentBatchWrite.AddBatch(writer); } var doc3a = new Document(); doc3a["Name"] = "Gunnar"; doc3a["Age"] = 77; doc3a["Job"] = "Retired"; doc3a["Data"] = Guid.NewGuid().ToString(); { var writer = new DocumentBatchWrite(hashRangeTable); writer.AddDocumentToPut(doc3a); multiTableDocumentBatchWrite.AddBatch(writer); } multiTableDocumentBatchWrite.Execute(); Document getDoc; getDoc = hashTable.GetItem(5101); Assert.AreEqual(doc1a["Data"].AsString(), getDoc["Data"].AsString()); getDoc = hashTable.GetItem(5102); Assert.AreEqual(doc1b["Data"].AsString(), getDoc["Data"].AsString()); getDoc = hashTable.GetItem(5201); Assert.AreEqual(doc2a["Data"].AsString(), getDoc["Data"].AsString()); getDoc = hashTable.GetItem(5202); Assert.AreEqual(doc2b["Data"].AsString(), getDoc["Data"].AsString()); getDoc = hashRangeTable.GetItem("Gunnar", 77); Assert.AreEqual(doc3a["Data"].AsString(), getDoc["Data"].AsString()); multiTableDocumentBatchWrite = new MultiTableDocumentBatchWrite(); { var deleteWriter = new DocumentBatchWrite(hashTable); deleteWriter.AddItemToDelete(doc1a); deleteWriter.AddItemToDelete(doc1b); deleteWriter.AddItemToDelete(doc2a); deleteWriter.AddItemToDelete(doc2b); multiTableDocumentBatchWrite.AddBatch(deleteWriter); } { var deleteWriter = new DocumentBatchWrite(hashRangeTable); deleteWriter.AddItemToDelete(doc3a); multiTableDocumentBatchWrite.AddBatch(deleteWriter); } multiTableDocumentBatchWrite.Execute(); }