Skip to content

Commit 9cd37de

Browse files
committed
Add back dybaseapi
1 parent 05b8ca9 commit 9cd37de

File tree

93 files changed

+9110
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+9110
-0
lines changed
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2019-06-28 Version 1.0.1
2+
- Release dybaseapi to nuget.
3+
2019-06-28 Version 1.0.1
4+
- Release dybaseapi to nuget.
5+
2018-11-20 Version: 1.0.0
6+
1, Add MNS STS Token Query API
7+
2, Add MNS Minimal Package
8+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright (C) Alibaba Cloud Computing
3+
* All rights reserved.
4+
*/
5+
6+
using System;
7+
using Aliyun.Acs.Dybaseapi.MNS.Model;
8+
9+
namespace Aliyun.Acs.Dybaseapi.MNS
10+
{
11+
/// <summary>
12+
/// Interface for accessing MNS.
13+
/// </summary>
14+
public partial interface IMNS : IDisposable
15+
{
16+
17+
#region GetNativeQueue
18+
19+
/// <summary>
20+
/// Get a native queue object with the specified queueName.
21+
/// </summary>
22+
///
23+
/// <param name="queueName">The name of native queue object to be created</param>
24+
///
25+
/// <returns>A native queue object</returns>
26+
Queue GetNativeQueue(string queueName);
27+
28+
#endregion
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
/*
2+
* Copyright (C) Alibaba Cloud Computing
3+
* All rights reserved.
4+
*/
5+
6+
using System;
7+
using Aliyun.Acs.Dybaseapi.MNS.Model;
8+
using System.Collections.Generic;
9+
10+
namespace Aliyun.Acs.Dybaseapi.MNS
11+
{
12+
/// <summary>
13+
/// Interface for accessing MNS queue
14+
/// </summary>
15+
public partial interface IQueue
16+
{
17+
18+
#region DeleteMessage
19+
20+
/// <summary>
21+
/// Deletes the specified message from the specified queue.
22+
/// </summary>
23+
/// <param name="receiptHandle">The receipt handle associated with the message to delete.</param>
24+
///
25+
/// <returns>The response returned by the MNS DeleteMessage service.</returns>
26+
/// <exception cref="ReceiptHandleErrorException">
27+
/// The receipt handle you provide is not valid.
28+
/// </exception>
29+
/// <exception cref="QueueNotExistException">
30+
/// The queue name you provided is not exist.
31+
/// </exception>
32+
/// <exception cref="InvalidArgumentException">
33+
/// The value of Element should between Low and High seconds/bytes.
34+
/// </exception>
35+
DeleteMessageResponse DeleteMessage(string receiptHandle);
36+
37+
/// <summary>
38+
/// Deletes the specified message from the specified queue.
39+
/// </summary>
40+
/// <param name="request">The request object to be sent to MNS DeleteMessage service.</param>
41+
///
42+
/// <returns>The response returned by the MNS DeleteMessage service.</returns>
43+
/// <exception cref="ReceiptHandleErrorException">
44+
/// The receipt handle you provide is not valid.
45+
/// </exception>
46+
/// <exception cref="QueueNotExistException">
47+
/// The queue name you provided is not exist.
48+
/// </exception>
49+
/// <exception cref="InvalidArgumentException">
50+
/// The value of Element should between Low and High seconds/bytes.
51+
/// </exception>
52+
DeleteMessageResponse DeleteMessage(DeleteMessageRequest request);
53+
54+
/// <summary>
55+
/// Deletes the specified message from the specified queue.
56+
/// </summary>
57+
/// <param name="request">The request object to be sent to MNS BatchDeleteMessage service.</param>
58+
///
59+
/// <returns>The response returned by the MNS BatchDeleteMessage service.</returns>
60+
/// <exception cref="ReceiptHandleErrorException">
61+
/// The receipt handle you provide is not valid.
62+
/// </exception>
63+
/// <exception cref="QueueNotExistException">
64+
/// The queue name you provided is not exist.
65+
/// </exception>
66+
/// <exception cref="InvalidArgumentException">
67+
/// The value of Element should between MIN and MAX seconds/bytes.
68+
/// </exception>
69+
/// <exception cref="BatchDeleteFailException">
70+
/// Some messages are not deleted.
71+
/// </exception>
72+
BatchDeleteMessageResponse BatchDeleteMessage(BatchDeleteMessageRequest request);
73+
74+
/// <summary>
75+
/// Begins an asynchronous request to MNS DeleteMessage service.
76+
/// </summary>
77+
///
78+
/// <param name="request">The request object to be sent to MNS DeleteMessage service.</param>
79+
/// <param name="callback">The AsyncCallback delegate.</param>
80+
/// <param name="state">The state object for this request.</param>
81+
///
82+
/// <returns>An IAsyncResult that references the asynchronous request for a response.</returns>
83+
IAsyncResult BeginDeleteMessage(DeleteMessageRequest request, AsyncCallback callback, object state);
84+
85+
/// <summary>
86+
/// Ends an asynchronous request for MNS DeleteMessage service.
87+
/// </summary>
88+
///
89+
/// <param name="asyncResult">The IAsyncResult returned by the call to BeginDeleteMessage.</param>
90+
///
91+
/// <returns>The response returned by the MNS DeleteMessage service.</returns>
92+
DeleteMessageResponse EndDeleteMessage(IAsyncResult asyncResult);
93+
94+
/// <summary>
95+
/// Begins an asynchronous request to MNS BatchDeleteMessage service.
96+
/// </summary>
97+
///
98+
/// <param name="request">The request object to be sent to MNS BatchDeleteMessage service.</param>
99+
/// <param name="callback">The AsyncCallback delegate.</param>
100+
/// <param name="state">The state object for this request.</param>
101+
///
102+
/// <returns>An IAsyncResult that references the asynchronous request for a response.</returns>
103+
IAsyncResult BeginBatchDeleteMessage(BatchDeleteMessageRequest request, AsyncCallback callback, object state);
104+
105+
/// <summary>
106+
/// Ends an asynchronous request for MNS BatchDeleteMessage service.
107+
/// </summary>
108+
///
109+
/// <param name="asyncResult">The IAsyncResult returned by the call to BeginBatchDeleteMessage.</param>
110+
///
111+
/// <returns>The response returned by the MNS BatchDeleteMessage service.</returns>
112+
BatchDeleteMessageResponse EndBatchDeleteMessage(IAsyncResult asyncResult);
113+
114+
#endregion
115+
116+
#region ReceiveMessage
117+
118+
/// <summary>
119+
/// Retrieves one message from this queue.
120+
/// </summary>
121+
///
122+
/// <returns>The response returned by the MNS ReceiveMessage service.</returns>
123+
///
124+
/// <exception cref="QueueNotExistException">
125+
/// The queue name you provided is not exist.
126+
/// </exception>
127+
/// <exception cref="MessageNotExistException">
128+
/// no messages exist.
129+
/// </exception>
130+
ReceiveMessageResponse ReceiveMessage();
131+
132+
/// <summary>
133+
/// Retrieves one message.
134+
/// </summary>
135+
/// <param name="waitSeconds">Wait polling time for this request.</param>
136+
///
137+
/// <returns>The response returned by the MNS ReceiveMessage service.</returns>
138+
/// <exception cref="QueueNotExistException">
139+
/// The queue name you provided is not exist.
140+
/// </exception>
141+
/// <exception cref="MessageNotExistException">
142+
/// no messages exist.
143+
/// </exception>
144+
ReceiveMessageResponse ReceiveMessage(uint waitSeconds);
145+
146+
/// <summary>
147+
/// Retrieves one message.
148+
/// </summary>
149+
/// <param name="request">The request object to be sent to MNS ReceiveMessage service.</param>
150+
///
151+
/// <returns>The response returned by the MNS ReceiveMessage service.</returns>
152+
/// <exception cref="QueueNotExistException">
153+
/// The queue name you provided is not exist.
154+
/// </exception>
155+
/// <exception cref="MessageNotExistException">
156+
/// no messages exist.
157+
/// </exception>
158+
ReceiveMessageResponse ReceiveMessage(ReceiveMessageRequest request);
159+
160+
/// <summary>
161+
/// batch retrieves messages.
162+
/// </summary>
163+
/// <param name="batchSize">the most count limit of retrieved messages</param>
164+
/// <param name="waitSeconds">Wait polling time for this request.</param>
165+
///
166+
/// <returns>The response returned by the MNS ReceiveMessage service.</returns>
167+
/// <exception cref="QueueNotExistException">
168+
/// The queue name you provided is not exist.
169+
/// </exception>
170+
/// <exception cref="MessageNotExistException">
171+
/// no messages exist.
172+
/// </exception>
173+
BatchReceiveMessageResponse BatchReceiveMessage(uint batchSize);
174+
175+
/// <summary>
176+
/// batch retrieves messages.
177+
/// </summary>
178+
/// <param name="batchSize">the most count limit of retrieved messages</param>
179+
/// <param name="waitSeconds">Wait polling time for this request.</param>
180+
///
181+
/// <returns>The response returned by the MNS ReceiveMessage service.</returns>
182+
/// <exception cref="QueueNotExistException">
183+
/// The queue name you provided is not exist.
184+
/// </exception>
185+
/// <exception cref="MessageNotExistException">
186+
/// no messages exist.
187+
/// </exception>
188+
BatchReceiveMessageResponse BatchReceiveMessage(uint batchSize, uint waitSeconds);
189+
190+
/// <summary>
191+
/// batch retrieves messages.
192+
/// </summary>
193+
/// <param name="batchSize">the most count limit of retrieved messages</param>
194+
/// <param name="waitSeconds">Wait polling time for this request.</param>
195+
///
196+
/// <returns>The response returned by the MNS ReceiveMessage service.</returns>
197+
/// <exception cref="QueueNotExistException">
198+
/// The queue name you provided is not exist.
199+
/// </exception>
200+
/// <exception cref="MessageNotExistException">
201+
/// no messages exist.
202+
/// </exception>
203+
BatchReceiveMessageResponse BatchReceiveMessage(BatchReceiveMessageRequest request);
204+
205+
/// <summary>
206+
/// Begins an asynchronous request to MNS ReceiveMessage service.
207+
/// </summary>
208+
///
209+
/// <param name="request">The request object to be sent to MNS ReceiveMessage service.</param>
210+
/// <param name="callback">The AsyncCallback delegate.</param>
211+
/// <param name="state">The state object for this request.</param>
212+
///
213+
/// <returns>An IAsyncResult that references the asynchronous request for a response.</returns>
214+
IAsyncResult BeginReceiveMessage(ReceiveMessageRequest request, AsyncCallback callback, object state);
215+
216+
/// <summary>
217+
/// Ends an asynchronous request for MNS ReceiveMessage service.
218+
/// </summary>
219+
///
220+
/// <param name="asyncResult">The IAsyncResult returned by the call to BeginReceiveMessage.</param>
221+
///
222+
/// <returns>The response returned by the MNS ReceiveMessage service.</returns>
223+
ReceiveMessageResponse EndReceiveMessage(IAsyncResult asyncResult);
224+
225+
/// <summary>
226+
/// Begins an asynchronous request to MNS BatchReceiveMessage service.
227+
/// </summary>
228+
///
229+
/// <param name="request">The request object to be sent to MNS BatchReceiveMessage service.</param>
230+
/// <param name="callback">The AsyncCallback delegate.</param>
231+
/// <param name="state">The state object for this request.</param>
232+
///
233+
/// <returns>An IAsyncResult that references the asynchronous request for a response.</returns>
234+
IAsyncResult BeginBatchReceiveMessage(BatchReceiveMessageRequest request, AsyncCallback callback, object state);
235+
236+
/// <summary>
237+
/// Ends an asynchronous request for MNS BatchReceiveMessage service.
238+
/// </summary>
239+
///
240+
/// <param name="asyncResult">The IAsyncResult returned by the call to BeginBatchReceiveMessage.</param>
241+
///
242+
/// <returns>The response returned by the MNS BatchReceiveMessage service.</returns>
243+
BatchReceiveMessageResponse EndBatchReceiveMessage(IAsyncResult asyncResult);
244+
245+
#endregion
246+
}
247+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
using System;
2+
using System.Globalization;
3+
using System.Text;
4+
using Aliyun.Acs.Dybaseapi.MNS.Model;
5+
using Aliyun.Acs.Dybaseapi.MNS.Runtime.Pipeline;
6+
using Aliyun.Acs.Dybaseapi.MNS.Runtime.Pipeline.Handlers;
7+
using Aliyun.Acs.Dybaseapi.MNS.Util;
8+
9+
namespace Aliyun.Acs.Dybaseapi.MNS.Internal
10+
{
11+
/// <summary>
12+
/// This handler validates response returned by MNS.
13+
/// </summary>
14+
internal class ResponseValidationHandler : GenericHandler
15+
{
16+
/// <summary>
17+
/// Validates the response returned by MNS.
18+
/// </summary>
19+
/// <param name="executionContext">The execution context which contains both the
20+
/// requests and response context.</param>
21+
protected override void PostInvoke(IExecutionContext executionContext)
22+
{
23+
return;
24+
/*
25+
var request = executionContext.RequestContext.Request;
26+
var response = executionContext.ResponseContext.Response;
27+
ReceiveMessageResponse receiveMessageResponse = response as ReceiveMessageResponse;
28+
if (receiveMessageResponse != null)
29+
{
30+
ValidateReceiveMessage(receiveMessageResponse);
31+
}
32+
33+
SendMessageResponse sendMessageResponse = response as SendMessageResponse;
34+
SendMessageRequest sendMessageRequest = request.OriginalRequest as SendMessageRequest;
35+
if (sendMessageRequest != null && sendMessageResponse != null)
36+
{
37+
ValidateSendMessage(sendMessageRequest, sendMessageResponse);
38+
}
39+
*/
40+
}
41+
42+
public static string CalculateMD5(string message)
43+
{
44+
var messageBytes = Encoding.UTF8.GetBytes(message);
45+
return CalculateMD5(messageBytes);
46+
}
47+
public static string CalculateMD5(byte[] bytes)
48+
{
49+
var md5Hash = CryptoUtilFactory.CryptoInstance.ComputeMD5Hash(bytes);
50+
var calculatedMd5 = BitConverter.ToString(md5Hash).Replace("-", string.Empty).ToLower(CultureInfo.InvariantCulture);
51+
return calculatedMd5;
52+
}
53+
public static bool CompareMD5(string message, string md5FromService)
54+
{
55+
var calculatedMd5 = CalculateMD5(message);
56+
return (string.Equals(calculatedMd5, md5FromService, StringComparison.OrdinalIgnoreCase));
57+
}
58+
59+
public static void ValidateMD5(string message, string md5FromService)
60+
{
61+
if (!CompareMD5(message, md5FromService))
62+
throw new MD5ValidateException("MD5 hash mismatch");
63+
}
64+
65+
public static void ValidateMD5(string message, string messageId, string md5FromService)
66+
{
67+
if (!CompareMD5(message, md5FromService))
68+
throw new MD5ValidateException(string.Format(CultureInfo.InvariantCulture, "MD5 hash mismatch for message id {0}", messageId));
69+
}
70+
public static void ValidateMD5(string message, string messageId, string md5FromService, string receiptHandle)
71+
{
72+
if (!CompareMD5(message, md5FromService))
73+
throw new MD5ValidateException(string.Format(CultureInfo.InvariantCulture, "MD5 hash mismatch for message id {0}", messageId), receiptHandle);
74+
}
75+
public static void ValidateMD5(Message message)
76+
{
77+
ValidateMD5(message.Body, message.Id, message.BodyMD5, message.ReceiptHandle);
78+
}
79+
80+
public static void ValidateReceiveMessage(ReceiveMessageResponse response)
81+
{
82+
if (response != null && response.Message != null)
83+
{
84+
ValidateMD5(response.Message);
85+
}
86+
}
87+
}
88+
}

0 commit comments

Comments
 (0)