-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFunction1.cs
85 lines (63 loc) · 2.83 KB
/
Function1.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using AchrafFirstAzureFucntion.Model;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using Newtonsoft.Json;
namespace AchrafFirstAzureFucntion
{
public static class Function1
{
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log )
{
TransactionData _TransactionData = new TransactionData();
log.LogInformation("C# HTTP trigger function processed a request.");
//param in
string ID = req.Query["Id"];
string Name = req.Query["Name"];
string TrId = req.Query["TrId"];
string ReId = req.Query["ReId"];
if (!string.IsNullOrEmpty(ID))
{
_TransactionData.ID = Int32.Parse(ID);
_TransactionData.Name = Name;
_TransactionData.ReId = ReId;
_TransactionData.TrId = TrId;
string namefile;
namefile = Guid.NewGuid().ToString("n");
await CreateBlob(namefile + ".json", _TransactionData, log);
}
return _TransactionData.ID != null && _TransactionData.ID != 0
? (ActionResult)new OkObjectResult($"Hello, { _TransactionData.ID} { _TransactionData.Name} the time now is :"+ System.DateTime.Now.Date
+Environment.NewLine + JsonConvert.SerializeObject( _TransactionData))
: new BadRequestObjectResult("Please pass a name on the query string or in the request body");
}
private async static Task CreateBlob(string name, TransactionData data, ILogger log)
{
string connectionString;
CloudStorageAccount storageAccount;
CloudBlobClient client;
CloudBlobContainer container;
CloudBlockBlob blob;
connectionString = "DefaultEndpointsProtocol=";
storageAccount = CloudStorageAccount.Parse(connectionString);
client = storageAccount.CreateCloudBlobClient();
container = client.GetContainerReference("Demo");
await container.CreateIfNotExistsAsync();
blob = container.GetBlockBlobReference(name);
blob.Properties.ContentType = "application/json";
blob.UploadFromStreamAsync(new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data))));
}
}
}