public BatchPutAttributes ( BatchPutAttributesRequest request ) : BatchPutAttributesResponse | ||
request | BatchPutAttributesRequest | Container for the necessary parameters to execute the BatchPutAttributes service method. |
return | BatchPutAttributesResponse |
private int maxItemsPerRequest = 25; // simpledb has max 25 items per batch put request #endregion Fields #region Methods protected override void SendBuffer(log4net.Core.LoggingEvent[] events) { var client = new AmazonSimpleDBClient(); // access and secret keys in web.config for (var i = 0; i < (events.Count() / maxItemsPerRequest) + 1; i++) { try { var request = new BatchPutAttributesRequest(); foreach (var e in events.Skip(i * maxItemsPerRequest).Take(maxItemsPerRequest)) { var batchItem = new ReplaceableItem() { ItemName = Guid.NewGuid().ToString() }; batchItem.Attribute.Add(GetAttribute("Thread", e.ThreadName)); batchItem.Attribute.Add(GetAttribute("Level", e.Level.Name)); batchItem.Attribute.Add(GetAttribute("CustomLevel", GetCustomProperty(e, "CustomLevel"))); batchItem.Attribute.Add(GetAttribute("Url", GetCustomProperty(e, "Url"))); batchItem.Attribute.Add(GetAttribute("Machine", GetCustomProperty(e, "Machine"))); batchItem.Attribute.Add(GetAttribute("Product", GetCustomProperty(e, "Product"))); batchItem.Attribute.Add(GetAttribute("UserId", GetCustomProperty(e, "UserId"))); batchItem.Attribute.Add(GetAttribute("UserName", GetCustomProperty(e, "UserName"))); batchItem.Attribute.Add(GetAttribute("TimeStamp", e.TimeStamp.ToUniversalTime().ToString("o"))); batchItem.Attribute.Add(GetAttribute("Message", e.RenderedMessage)); batchItem.Attribute.Add(GetAttribute("FormattedMessage", GetCustomProperty(e, "FormattedMessage"))); batchItem.Attribute.Add(GetAttribute("StackTrace", e.GetExceptionString())); request.Item.Add(batchItem); } // Assumes Domain has already been created if(!string.IsNullOrEmpty(ConfigurationManager.AppSettings["SimpleDBLogName"])) request.DomainName = ConfigurationManager.AppSettings["SimpleDBLogName"]; else request.DomainName = "Log"; client.BatchPutAttributes(request); } finally { } } }
public static void SaveNewsStory(string domainName, string bucketName, List<NewsComponents> newsItems, AmazonSimpleDBClient sdbClient, AmazonS3Client s3Client) { //BucketHelper.CheckForBucket(itemName, s3Client); //foreach (var stream in newsItems.Images) //{ // PutObjectRequest putObjectRequest = new PutObjectRequest(); // putObjectRequest.WithBucketName(bucketName); // putObjectRequest.CannedACL = S3CannedACL.PublicRead; // putObjectRequest.Key = stream.fileName; // putObjectRequest.InputStream = stream.photostreams; // S3Response response = s3Client.PutObject(putObjectRequest); // response.Dispose(); //} DomainHelper.CheckForDomain(domainName, sdbClient); BatchPutAttributesRequest batchPutAttributesRequest = new BatchPutAttributesRequest(); batchPutAttributesRequest.WithDomainName(domainName); ReplaceableItem replaceableItem; foreach (var list in newsItems) { replaceableItem = new ReplaceableItem(); replaceableItem.WithItemName(Convert.ToString(list.NewsID)); var list1 = new List<ReplaceableAttribute>{ new ReplaceableAttribute { Name = "NewsID", Value = Convert.ToString(list.NewsID), Replace = false }, new ReplaceableAttribute { Name = "Source", Value = list.Source, Replace = false }, new ReplaceableAttribute { Name = "Section", Value = list.Section, Replace = false }, new ReplaceableAttribute { Name = "NewsItem", Value = list.NewsItem, Replace = false }, new ReplaceableAttribute { Name = "NewsHeadline", Value = list.NewsHeadline, Replace = true }, new ReplaceableAttribute { Name = "NewsAdded", Value = Convert.ToString(list.NewsAdded), Replace = true }, new ReplaceableAttribute { Name = "Photos", Value = list.NewsPhotoUrl, Replace = true } , new ReplaceableAttribute { Name = "Summary", Value = list.Summary, Replace = true }, new ReplaceableAttribute { Name = "Category", Value = list.Category, Replace = true } , new ReplaceableAttribute { Name = "TimeStamp", Value = Convert.ToString(list.TimeStamp), Replace = true } }; replaceableItem.WithAttribute(list1.ToArray()); batchPutAttributesRequest.Item.Add(replaceableItem); } //PutAttributesRequest putAttrRequest = new PutAttributesRequest() // .WithDomainName(domainName) // .WithItemName(Convert.ToString(newsItems.NewsID)); // sdbClient.PutAttributes(putAttrRequest); sdbClient.BatchPutAttributes(batchPutAttributesRequest); }