public static void Execute( out HttpStatusCode hsc, out string status, out string url, string awsAccessKey, string awsSecretKey, Amazon.RegionEndpoint re, string bucketName, byte[] ba, string key, S3CannedACL acl, string contentType = null ) { hsc = HttpStatusCode.BadRequest; status = ""; url = ""; try { using (var ms = new MemoryStream(ba)) { var uploadMultipartRequest = new TransferUtilityUploadRequest { BucketName = bucketName, Key = key, CannedACL = acl, InputStream = ms, //PartSize = 123? }; if (!string.IsNullOrWhiteSpace(contentType)) { uploadMultipartRequest.ContentType = contentType; } using (var tu = new TransferUtility(awsAccessKey, awsSecretKey, re)) { tu.Upload(uploadMultipartRequest); } //why encoding? url = HttpUtility.UrlDecode(Constants.S3_BASE + bucketName + "/" + HttpUtility.UrlEncode(key)); hsc = HttpStatusCode.OK; return; } } catch (Exception ex) { LogIt.E(ex); hsc = HttpStatusCode.InternalServerError; status = "unexecpected error"; return; } finally { LogIt.I(JsonConvert.SerializeObject( new { hsc, status, url, //ipAddress = GetPublicIpAddress.Execute(hc), //executedBy = GetExecutingUsername.Execute() }, Formatting.Indented)); } }
public static void Execute( string numberE164, out HttpStatusCode hsc, out string status ) { hsc = HttpStatusCode.BadRequest; status = ""; try { if (string.IsNullOrWhiteSpace(numberE164)) { hsc = HttpStatusCode.BadRequest; status = "number not found"; return; } if (numberE164[0] != '+') { hsc = HttpStatusCode.BadRequest; status = "e164 format number should start with +"; return; } var pnu = PhoneNumberUtil.GetInstance(); var pn = pnu.Parse(numberE164, null); if (!pnu.IsValidNumber(pn)) { hsc = HttpStatusCode.BadRequest; status = "number is not valid"; return; } hsc = HttpStatusCode.OK; return; } catch (Exception ex) { hsc = HttpStatusCode.InternalServerError; //status = "unexpected error"; //maybe pass the ex.message here status = ex.Message; LogIt.E(ex); } finally { LogIt.I(JsonConvert.SerializeObject(new { hsc, status, numberE164 })); } }
public static void Execute( out HttpStatusCode hsc, out string status, out string url, string awsAccessKey, string awsSecretKey, string bucketName, string key, Amazon.RegionEndpoint re, HttpContext hc = null, int numberOfMinutes = 30 ) { url = ""; hsc = HttpStatusCode.BadRequest; status = ""; try { using (var s3Client = new AmazonS3Client(awsAccessKey, awsSecretKey, re)) { var gpsur = new GetPreSignedUrlRequest { BucketName = bucketName, Key = key, Expires = DateTime.UtcNow.AddMinutes(numberOfMinutes) }; url = s3Client.GetPreSignedURL(gpsur); } hsc = HttpStatusCode.OK; return; } catch (Exception ex) { LogIt.E(ex); hsc = HttpStatusCode.InternalServerError; status = "unexecpected error"; return; } finally { LogIt.I(JsonConvert.SerializeObject( new { hsc, status, bucketName, key, url, numberOfMinutes, ipAddress = GetPublicIpAddress.Execute(hc), executedBy = GetExecutingUsername.Execute() }, Formatting.Indented)); } }
public static void Execute( request m, out HttpStatusCode hsc, out string status, string awsAccessKey, string awsSecretKey, out byte[] ba ) { ba = null; hsc = HttpStatusCode.BadRequest; status = ""; try { using (var s3c = new AmazonS3Client(awsAccessKey, awsSecretKey, m.re)) { var request = new Amazon.S3.Model.GetObjectRequest { BucketName = m.bucketName, Key = m.key, }; var response = s3c.GetObjectAsync(request).Result; using (var rs = response.ResponseStream) { using (var ms = new MemoryStream()) { rs.CopyTo(ms); ba = ms.ToArray(); } } } hsc = HttpStatusCode.OK; return; } catch (Exception ex) { LogIt.E(ex); hsc = HttpStatusCode.InternalServerError; status = "unexecpected error"; return; } finally { LogIt.I(JsonConvert.SerializeObject( new { hsc, status, m, //ipAddress = GetPublicIpAddress.Execute(hc), //executedBy = GetExecutingUsername.Execute() }, Formatting.Indented)); } }
public static void Execute( request m, out HttpStatusCode hsc, out string status, string awsAccessKey, string awsSecretKey ) { hsc = HttpStatusCode.BadRequest; status = ""; try { using (var s3c = new AmazonS3Client(awsAccessKey, awsSecretKey, m.re)) { var request = new Amazon.S3.Model.DeleteObjectRequest { BucketName = m.bucketName, Key = m.key, }; var dor = s3c.DeleteObjectAsync(request).Result; hsc = dor.HttpStatusCode == System.Net.HttpStatusCode.NoContent ? HttpStatusCode.OK : HttpStatusCode.BadRequest ; } return; } catch (Exception ex) { LogIt.E(ex); hsc = HttpStatusCode.InternalServerError; status = "unexecpected error"; return; } finally { LogIt.I(JsonConvert.SerializeObject( new { hsc, status, m, //ipAddress = GetPublicIpAddress.Execute(hc), //executedBy = GetExecutingUsername.Execute() }, Formatting.Indented)); } }
/// <summary> /// Cannot use async from MVC, only from svc /// </summary> public static void Execute( out HttpStatusCode hsc, out string status, MailMessage mm, string username, string password, string host, int port, int max_retries = 3, bool sendAsync = false ) { hsc = HttpStatusCode.BadRequest; status = ""; try { using (var sc = new SmtpClient()) { sc.Host = host; sc.Port = port; sc.EnableSsl = true; sc.Credentials = new NetworkCredential(username, password); for (int i = 0; i < max_retries; i++) { try { sc.SendCompleted += new SendCompletedEventHandler(SendCompleted); if (sendAsync) { var state = new object { }; sc.SendAsync(mm, state); } else { sc.Send(mm); //log as sent? } hsc = HttpStatusCode.OK; return; } catch (Exception ex1) { LogIt.W("attempt:" + i.ToString() + "|" + GetJsonString.Execute(mm)); LogIt.E(ex1); } } } } catch (Exception ex) { LogIt.E(ex); hsc = HttpStatusCode.InternalServerError; status = "unexpected error"; return; } finally { try { LogIt.I(JsonConvert.SerializeObject(new { hsc, status, from = mm == null? null : new { mm.From.Address, mm.From.DisplayName }, to = mm == null ? null : mm.To.Select(x => new { x.Address, x.DisplayName }).ToList(), replyTo = mm == null ? null : mm.ReplyToList.Select(x => new { x.Address, x.DisplayName }).ToList(), subject = mm == null ? null : mm.Subject, }, Formatting.Indented)); } catch (Exception ex1) { LogIt.E(ex1); } } }
public static void Execute( out HttpStatusCode hsc, out string status, out response r, request m, CancellationToken?ct = null, WebProxy wp = null ) { r = new response { }; hsc = HttpStatusCode.BadRequest; status = ""; try { if (ct.HasValue && ct.Value.IsCancellationRequested) { hsc = HttpStatusCode.BadRequest; status = "cancellation requested"; return; } var resource = $"/word?number={@m.total}"; var client = new RestClient("https://random-word-api.herokuapp.com/"); var request = new RestRequest( resource: resource, method: Method.GET ); if (wp != null) { client.Proxy = wp; } var response = client.Execute(request); if (response.ErrorException != null) { status = $"response had error exception: {response.ErrorException.Message}"; hsc = HttpStatusCode.BadRequest; return; } if (response.StatusCode != HttpStatusCode.OK) { status = $"StatusCode was {response.StatusCode}"; hsc = HttpStatusCode.BadRequest; return; } if (string.IsNullOrWhiteSpace(response.Content)) { status = $"content was empty"; hsc = HttpStatusCode.BadRequest; return; } //["dorks","rosebud"] var content = response.Content; dynamic json = JsonConvert.DeserializeObject(content); if ((json == null) || json.Count == 0) { status = $"there are no words"; hsc = HttpStatusCode.BadRequest; return; } foreach (var w in json) { r.words.Add(w.Value); } hsc = HttpStatusCode.OK; return; } catch (Exception ex) { if (ct.HasValue && ct.Value.IsCancellationRequested) { hsc = HttpStatusCode.BadRequest; status = "task cancelled"; return; } status = $"unexpected error"; hsc = HttpStatusCode.InternalServerError; LogIt.E(ex); } finally { LogIt.I(JsonConvert.SerializeObject(new { hsc, status, r, }, Formatting.Indented)); } }
public static void Execute( out HttpStatusCode hsc, out string status, out response r, request m, CancellationToken?ct = null ) { hsc = HttpStatusCode.BadRequest; status = ""; r = new response { }; try { if (m == null) { hsc = HttpStatusCode.BadRequest; status = "params were null"; return; } if ((m.lat == 0) && (m.lng == 0)) { hsc = HttpStatusCode.BadRequest; status = "lat and long ZERO"; return; } var resource = "maps/api/geocode/json?latlng=" + m.lat.ToString() + "," + m.lng.ToString() + "&key=" + m.apiKey; var client = new RestClient("https://maps.googleapis.com/"); var request = new RestRequest(resource, Method.GET); request.RequestFormat = DataFormat.Json; var response = client.Execute(request); if (response.ErrorException != null) { hsc = HttpStatusCode.BadRequest; status = response.ErrorException.Message; return; } if (response.StatusCode != HttpStatusCode.OK) { hsc = HttpStatusCode.BadRequest; status = $"status was {response.StatusCode.ToString()}"; return; } var content = response.Content; dynamic json = JObject.Parse(content); var apiStatus = json.status.Value; if (apiStatus != "OK") { hsc = HttpStatusCode.BadRequest; status = $"api status result was {apiStatus}"; return; } if (json.results.Count == 0) { hsc = HttpStatusCode.BadRequest; status = $"results count was ZERO"; return; } r.address = json.results[0].formatted_address.Value; hsc = HttpStatusCode.OK; return; } catch (Exception ex) { LogIt.E(ex); hsc = HttpStatusCode.InternalServerError; status = "unexecpected error"; return; } finally { m.apiKey = "DO_NOT_LOG"; LogIt.I(JsonConvert.SerializeObject( new { hsc, status, m, //ipAddress = GetPublicIpAddress.Execute(hc), //executedBy = GetExecutingUsername.Execute() }, Formatting.Indented)); } }
public static void Execute( request m, out HttpStatusCode hsc, out string status, string awsAccessKey, string awsSecretKey, Microsoft.AspNetCore.Http.HttpContext hc = null, CancellationToken?ct = null ) { hsc = HttpStatusCode.BadRequest; status = ""; try { if (!Exists.Execute( key: m.sourceKey, bucketName: m.sourceBucketName, url: out string sourceUrl, re: m.re, awsAccessKey: awsAccessKey, awsSecretKey: awsSecretKey )) { status = "source did not exist"; hsc = HttpStatusCode.BadRequest; return; } //validate dest doesn't already exist, fail if it does bc we aren't validating that it is different? maybe shar eeach in future? if (Exists.Execute( key: m.destKey, bucketName: m.destBucketName, url: out string destUrl, re: m.re, awsAccessKey: awsAccessKey, awsSecretKey: awsSecretKey )) { status = "dest existed already"; hsc = HttpStatusCode.BadRequest; return; } //copy using (var s3c = new AmazonS3Client( awsAccessKeyId: awsAccessKey, awsSecretAccessKey: awsSecretKey, region: m.re )) { var request = new CopyObjectRequest { SourceBucket = m.sourceBucketName, SourceKey = m.sourceKey, DestinationBucket = m.destBucketName, DestinationKey = m.destKey, CannedACL = m.destAcl }; if (!string.IsNullOrWhiteSpace(m.contentType)) { request.MetadataDirective = S3MetadataDirective.REPLACE; request.ContentType = m.contentType; } var response = s3c.CopyObjectAsync(request, cancellationToken: ct.HasValue ? ct.Value : CancellationToken.None).Result; hsc = response.HttpStatusCode; return; //fileLengthBytes = cor. } } catch (Exception ex) { LogIt.E(ex); hsc = HttpStatusCode.InternalServerError; status = "unexecpected error"; return; } finally { LogIt.I(JsonConvert.SerializeObject( new { hsc, status, m, //ipAddress = GetPublicIpAddress.Execute(hc), //executedBy = GetExecutingUsername.Execute() }, Formatting.Indented)); } }