diff --git a/Kavenegar-Core/Exceptions/ApiException.cs b/Kavenegar-Core/Exceptions/ApiException.cs new file mode 100644 index 0000000..ce13aac --- /dev/null +++ b/Kavenegar-Core/Exceptions/ApiException.cs @@ -0,0 +1,20 @@ +using Kavenegar.Models.Enums; + +namespace Kavenegar.Exceptions +{ + public class ApiException : KavenegarException + { + readonly MetaCode _result; + public ApiException(string message, int code) + : base(message) + { + _result = (MetaCode)code; + } + + public MetaCode Code + { + get { return _result; } + } + + } +} diff --git a/Kavenegar-Core/Exceptions/BaseException.cs b/Kavenegar-Core/Exceptions/BaseException.cs new file mode 100644 index 0000000..bc9e90f --- /dev/null +++ b/Kavenegar-Core/Exceptions/BaseException.cs @@ -0,0 +1,10 @@ +namespace Kavenegar.Exceptions +{ + public class KavenegarException : System.Exception + { + public KavenegarException(string message) + : base(message) + { + } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Exceptions/HttpException.cs b/Kavenegar-Core/Exceptions/HttpException.cs new file mode 100644 index 0000000..39c91fa --- /dev/null +++ b/Kavenegar-Core/Exceptions/HttpException.cs @@ -0,0 +1,17 @@ +namespace Kavenegar.Exceptions +{ + public class HttpException : KavenegarException + { + private readonly int _code; + public HttpException(string message, int code) + : base(message) + { + _code = code; + } + + public int Code + { + get { return _code; } + } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Json/JsonArray.cs b/Kavenegar-Core/Json/JsonArray.cs new file mode 100644 index 0000000..b947473 --- /dev/null +++ b/Kavenegar-Core/Json/JsonArray.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; + +namespace Kavenegar.Json +{ + + public class JsonArray : JsonObject + { + public List Array { get; set; } + private List.Enumerator _e; + + public JsonArray() + { + Array = new List(); + } + + public void AddElementToArray(JsonObject arrayElement) + { + Array.Add(arrayElement); + } + + public JsonObject UpCast() + { + JsonObject objectJ = this; + return objectJ; + } + + public void AddList(List lista) + { + Array = lista; + } + + public Boolean NextObject(out JsonObject o) + { + + JsonObject outObject; + _e = Array.GetEnumerator(); + + if (_e.MoveNext()) + { + outObject = _e.Current; + o = outObject; + return true; + } + outObject = new JsonObject(); + o = outObject; + return false; + } + + public int Count + { + get { return Array.Count; } + } + + } + +} diff --git a/Kavenegar-Core/Json/JsonBoolean.cs b/Kavenegar-Core/Json/JsonBoolean.cs new file mode 100644 index 0000000..00a2e5e --- /dev/null +++ b/Kavenegar-Core/Json/JsonBoolean.cs @@ -0,0 +1,21 @@ +using System; + +namespace Kavenegar.Json +{ + + public class JsonBoolean : JsonObject + { + public Boolean BooleanValue { get; set; } + + public JsonBoolean(Boolean booleanValue) + { + BooleanValue = booleanValue; + } + + public JsonObject UpCast() + { + JsonObject objectJ = this; + return objectJ; + } + } +} diff --git a/Kavenegar-Core/Json/JsonNullable.cs b/Kavenegar-Core/Json/JsonNullable.cs new file mode 100644 index 0000000..fe65031 --- /dev/null +++ b/Kavenegar-Core/Json/JsonNullable.cs @@ -0,0 +1,20 @@ +using System; + +namespace Kavenegar.Json +{ + public class JsonNullable : JsonObject + { + public String Nullable { get; set; } + + public JsonNullable() + { + Nullable = "Null"; + } + + public JsonObject UpCast() + { + JsonObject objectJ = this; + return objectJ; + } + } +} diff --git a/Kavenegar-Core/Json/JsonNumber.cs b/Kavenegar-Core/Json/JsonNumber.cs new file mode 100644 index 0000000..e9226b5 --- /dev/null +++ b/Kavenegar-Core/Json/JsonNumber.cs @@ -0,0 +1,19 @@ +namespace Kavenegar.Json +{ + public class JsonNumber : JsonObject + { + public float Number { get; set; } + + public JsonNumber(float number) + { + Number = number; + } + + public JsonObject UpCast() + { + JsonObject objectJ = this; + return objectJ; + } + } + +} diff --git a/Kavenegar-Core/Json/JsonObject.cs b/Kavenegar-Core/Json/JsonObject.cs new file mode 100644 index 0000000..184f444 --- /dev/null +++ b/Kavenegar-Core/Json/JsonObject.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; + +namespace Kavenegar.Json +{ + /// + /// JsonObject is the base class. + /// JsonString,JsonNumber,JsonBoolean,JsonNullable and JsonArray inherits from JsonObject. + /// A JsonArray object may contain objects of the base class + /// + + public class JsonObject + { + public Dictionary Values; + + public JsonObject() + { + Values = new Dictionary(); + } + + public void AddJsonValue(String textTag, JsonObject newObject) + { + if (!Values.ContainsKey(textTag)) + { + Values.Add(textTag, newObject); + } + } + + public JsonObject GetObject(String key) + { + JsonObject current = Values[key]; + return current; + } + + public int ElementsOfDictionary() + { + return Values.Count; + } + + + public Boolean IsJsonString() + { + if (this is JsonString) + { + return true; + } + return false; + } + + public Boolean IsJsonNumber() + { + if (this is JsonNumber) + { + return true; + } + return false; + } + + public Boolean IsJsonBoolean() + { + if (this is JsonBoolean) + { + return true; + } + return false; + } + + public Boolean IsJsonNullable() + { + if (this is JsonNullable) + { + return true; + } + return false; + } + + public Boolean IsJsonArray() + { + if (this is JsonArray) + { + return true; + } + return false; + } + + public JsonString GetAsString() + { + return (JsonString)this; + } + public JsonNumber GetAsNumber() + { + return (JsonNumber)this; + } + public JsonArray GetAsArray() + { + return (JsonArray)this; + } + } +} + diff --git a/Kavenegar-Core/Json/JsonString.cs b/Kavenegar-Core/Json/JsonString.cs new file mode 100644 index 0000000..1b7fcdd --- /dev/null +++ b/Kavenegar-Core/Json/JsonString.cs @@ -0,0 +1,22 @@ +using System; + +namespace Kavenegar.Json +{ + public class JsonString : JsonObject + { + public String Text { get; set; } + + public JsonString(String text) + { + Text = text; + } + + public JsonObject UpCast() + { + JsonObject objectJ = this; + return objectJ; + } + + + } +} diff --git a/Kavenegar-Core/Json/Parser.cs b/Kavenegar-Core/Json/Parser.cs new file mode 100644 index 0000000..c13aab7 --- /dev/null +++ b/Kavenegar-Core/Json/Parser.cs @@ -0,0 +1,455 @@ +// SharpYourJson +// (c) 2013 Felipe Herranz +// SharpYourJson may be freely distributed under the MIT license. + +using System; +using System.Collections.Generic; + +namespace Kavenegar.Json +{ + /// + /// Contains the façade-style class to perform Json operations + /// + + public class Parser + { + + public JsonObject DocumentJson; // The deserialized Json Object will be stored here + + private const char ObjectBegin = '{'; + private const char ObjectEnd = '}'; + private const char ArrayBegin = '['; + private const char ArrayEnd = ']'; + private const char DoubleQuotes = '"'; + private const char DoublePoint = ':'; + private const char Comma = ','; + private const char BackSlash = '\u005C'; + private const string NullValue = "null"; + private const string TrueValue = "true"; + private const string FalseValue = "false"; + + /// + /// Deserialize a JSON document. This method does not perform a syntax checking so It assumes a valid Json input + /// + /// + /// + /// A string which contains a valid Json array or object + /// + public JsonObject Parse(String json) + { + if (json[0] == ArrayBegin) + { + json = json.Substring(1, json.Length - 2); + JsonArray arrayJson = SerializeArray(json); + JsonObject o = arrayJson; + return o; + + } + else if (json[0] == ObjectBegin) + { + + return SerializeObject(json); + } + return null; + } + /// + /// This method performs deserialization of an object(except array) + /// + /// + /// JsonObject object as a deserialized JSON object + /// + /// + /// A string which contains a valid Json object + /// + private JsonObject SerializeObject(String json) + { + json = json.Replace(@"\", ""); + JsonObject document = new JsonObject(); + int n = 1; + int lengthJson = json.Length; + String keyString = ""; + + while (n <= lengthJson - 1) + { + if (json[n] == DoubleQuotes && json[n - 1] != DoublePoint) // (key-value Pair) key Name + { + int secondDoubleQuotes = FindNextQuote(json, n + 1); + keyString = json.Substring(n + 1, (secondDoubleQuotes - (n + 1))); + n = secondDoubleQuotes + 1; + + } + else if (json[n] == DoubleQuotes && json[n - 1] == DoublePoint) // (key-value Pair) value Name (if string) + { + if (json[n + 1] != DoubleQuotes) + { + int secondDoublesQuotes = FindNextQuote(json, n + 1); + String text = json.Substring(n + 1, (secondDoublesQuotes - (n + 1))); + JsonString stringValue = new JsonString(text); + JsonObject o = stringValue; + document.AddJsonValue(keyString, o); + n = secondDoublesQuotes + 1; + } + else + { + JsonObject o = new JsonString(""); + document.AddJsonValue(keyString, o); + } + + } + else if (json[n] == '-' || json[n] == '0' || json[n] == '1' || json[n] == '2' || json[n] == '3' || + json[n] == '4' || json[n] == '5' || json[n] == '6' || json[n] == '7' || json[n] == '8' || + json[n] == '9') // (key-value Pair) value (if number) + { + char[] arrayEndings = { ObjectEnd, Comma }; + int nextComma = json.IndexOfAny(arrayEndings, n); + String stringNumber = json.Substring(n, nextComma - n); + Double valueNumber = Convert.ToDouble(stringNumber); + float floatNumber = (float)valueNumber; + JsonNumber number = new JsonNumber(floatNumber); + JsonObject o = number; + document.AddJsonValue(keyString, o); + n = nextComma + 1; + + } + else if (json[n] == ArrayBegin) //(key-value Pair) value (if array) + { + if (json[n + 1] != ArrayEnd) + { + String subJson = json.Substring(n, json.Length - n); + int arrayClose = CloseBracketArray(subJson); + String arrayUnknown = json.Substring(n + 1, arrayClose - 2); + JsonArray arrayObjects = SerializeArray(arrayUnknown); + JsonObject o = arrayObjects; + document.AddJsonValue(keyString, o); + n = n + arrayClose; + } + else + { + if (!string.IsNullOrEmpty(keyString)) + { + JsonArray arrayTempEmpty = new JsonArray { Array = null }; + JsonObject emptyArray = arrayTempEmpty; + document.AddJsonValue(keyString, emptyArray); + keyString = ""; + + } + else + { + n++; + } + } + + } + else if (json[n] == ObjectBegin) // (key-value Pair) value (if object) + { + if (json[n + 1] != ObjectEnd) + { + String subJson = json.Substring(n, json.Length - n); + int objectClose = CloseBracketObject(subJson); + String objectUnknown = json.Substring(n, objectClose); + var o = SerializeObject(objectUnknown); + document.AddJsonValue(keyString, o); + n = n + objectClose + 1; + } + else + { + JsonObject o = new JsonObject { Values = null }; + document.AddJsonValue(keyString, o); + } + + } + else if (String.Compare(SafeSubString(json, n, 4), NullValue, StringComparison.Ordinal) == 0) // (key-value Pair) value (if NULL) + { + JsonObject o = new JsonNullable(); + document.AddJsonValue(keyString, o); + n = n + 5; + } + else if (String.Compare(SafeSubString(json, n, 4), TrueValue, StringComparison.Ordinal) == 0) // (key-value Pair) value (if TRUE) + { + JsonObject o = new JsonBoolean(true); + document.AddJsonValue(keyString, o); + n = n + 5; + } + else if (String.Compare(SafeSubString(json, n, 5), FalseValue, StringComparison.Ordinal) == 0) // (key-value Pair) value (if FALSE) + { + JsonObject o = new JsonBoolean(false); + document.AddJsonValue(keyString, o); + n = n + 6; + } + else + { + n++; + } + + } + + return document; + } + + /// + /// Search where is the ending of an object + /// + /// + /// the index of the '}' which closes an object + /// + /// + /// A valid json string ({........) + /// + + private int CloseBracketObject(String json) + { + int countObjectBegin = 0; + int countObjectEnd = 0; + int n = 0; + + do + { + if (json[n] == ObjectBegin) + { + countObjectBegin++; + + } + else if (json[n] == ObjectEnd) + { + countObjectEnd++; + } + + n++; + + } while (countObjectBegin != countObjectEnd); + + return n; + } + + /// + /// Search where is the ending of an array + /// + /// + /// he index of the ']' which closes an object + /// + /// + /// A valid Json string ([.....) + /// + + private int CloseBracketArray(String json) + { + int countArrayBegin = 0; + int countArrayEnd = 0; + int n = 0; + + do + { + if (json[n] == ArrayBegin) + { + countArrayBegin++; + + } + else if (json[n] == ArrayEnd) + { + countArrayEnd++; + } + + n++; + + } while (countArrayBegin != countArrayEnd); + + return n; + } + + /// + /// Deserialize a Json Array into an object JsonArray + /// + /// + /// JsonArray object as a deserialized JSON array + /// + /// + /// valid JSON array except the brackets + /// + + private JsonArray SerializeArray(String array) + { + JsonArray arrayObject = new JsonArray(); + var elements = SplitElements(array); + + foreach (String item in elements) + { + + if (item[0] == DoubleQuotes) + { + String withoutQuotes = item.Trim(DoubleQuotes); + JsonObject o = new JsonString(withoutQuotes); + arrayObject.AddElementToArray(o); + + } + else if (item[0] == ObjectBegin) + { + JsonObject o = SerializeObject(item); + arrayObject.AddElementToArray(o); + + } + else if (item[0] == ArrayBegin) + { + String itemArray = item.Substring(1, item.Length - 2); + JsonArray secondaryArray = SerializeArray(itemArray); + JsonObject o = secondaryArray; + arrayObject.AddElementToArray(o); + + } + else if (item[0] == '-' || item[0] == '0' || item[0] == '1' || item[0] == '2' || item[0] == '3' || + item[0] == '4' || item[0] == '5' || item[0] == '6' || item[0] == '7' || item[0] == '8' || item[0] == '9') + { + Double doubleValue = Convert.ToDouble(item); + float floatValue = (float)doubleValue; + JsonObject o = new JsonNumber(floatValue); + arrayObject.AddElementToArray(o); + } + else if (String.Compare(SafeSubString(item, 0, 4), TrueValue, StringComparison.Ordinal) == 0) + { + JsonObject o = new JsonBoolean(true); + arrayObject.AddElementToArray(o); + } + else if (String.Compare(SafeSubString(item, 0, 5), FalseValue, StringComparison.Ordinal) == 0) + { + JsonObject o = new JsonBoolean(false); + arrayObject.AddElementToArray(o); + } + else if (String.Compare(SafeSubString(item, 0, 4), NullValue, StringComparison.Ordinal) == 0) + { + JsonObject o = new JsonNullable(); + arrayObject.AddElementToArray(o); + } + + } + + return arrayObject; + + } + /// + /// Just a safe subString operation + /// + /// + /// A subString of the string input parameter text + /// + /// + /// A string + /// + /// + /// index of starting + /// + /// + /// Length of the subString + /// + + private String SafeSubString(String text, int start, int length) + { + var safeString = start + length < text.Length ? text.Substring(start, length) : text.Substring(start, text.Length - start); + + return safeString; + } + + /// + /// Finds the next '"' to close a String field + /// + /// + /// The next ' " ' + /// + /// + /// A valid JSON string + /// + /// + /// Index of starting + /// + + private int FindNextQuote(String text, int index) + { + int nextQuote = text.IndexOf(DoubleQuotes, index); + while (text[nextQuote - 1] == BackSlash) + { + nextQuote = text.IndexOf(DoubleQuotes, nextQuote + 1); + } + + return nextQuote; + + } + + /// + /// Splits the elements of an Array + /// + /// + /// The elements in an array of Strings + /// + /// + /// + /// + + private String[] SplitElements(String arrayText) + { + int n = 0; + int doubleQuotesCounter = 0; + int objectBeginCounter = 0; + int objectEndCounter = 0; + int arrayBeginCounter = 0; + int arrayEndCounter = 0; + int previousCommaIndex = 0; + Boolean oneElement = true; + List textSplit = new List(); + + while (n <= arrayText.Length - 1) + { + if (arrayText[n] == DoubleQuotes && arrayText[n - 1] != BackSlash) + { + doubleQuotesCounter++; + n++; + } + else if (arrayText[n] == ObjectBegin) + { + objectBeginCounter++; + n++; + + } + else if (arrayText[n] == ObjectEnd) + { + objectEndCounter++; + n++; + + } + else if (arrayText[n] == ArrayBegin) + { + arrayBeginCounter++; + n++; + + } + else if (arrayText[n] == ArrayEnd) + { + arrayEndCounter++; + n++; + + } + else if (arrayText[n] == Comma && doubleQuotesCounter % 2 == 0 && objectBeginCounter == objectEndCounter + && arrayBeginCounter == arrayEndCounter) + { + textSplit.Add(arrayText.Substring(previousCommaIndex, (n - previousCommaIndex))); + previousCommaIndex = n + 1; + n++; + oneElement = false; + + } + else + { + n++; + } + } + + textSplit.Add(oneElement + ? arrayText + : arrayText.Substring(previousCommaIndex, (arrayText.Length) - previousCommaIndex)); + + String[] textSplitArray = textSplit.ToArray(); + return textSplitArray; + } + + } +} + + + diff --git a/Kavenegar-Core/Kavenegar-Core.csproj b/Kavenegar-Core/Kavenegar-Core.csproj new file mode 100644 index 0000000..afada82 --- /dev/null +++ b/Kavenegar-Core/Kavenegar-Core.csproj @@ -0,0 +1,11 @@ + + + + netstandard2.0 + + + + + + + diff --git a/Kavenegar-Core/KavenegarApi.cs b/Kavenegar-Core/KavenegarApi.cs new file mode 100644 index 0000000..76da6c0 --- /dev/null +++ b/Kavenegar-Core/KavenegarApi.cs @@ -0,0 +1,645 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using Kavenegar.Exceptions; +using Kavenegar.Models; +using Kavenegar.Models.Enums; +using Kavenegar.Utils; +using Newtonsoft.Json; + +namespace Kavenegar +{ + internal class ReturnResult + { + public Result @Return { get; set; } + public object entries { get; set; } + } + + internal class Result + { + public int status { get; set; } + public string message { get; set; } + } + + internal class ReturnSend + { + public Result @Return { get; set; } + public List entries { get; set; } + } + + internal class ReturnStatus + { + public Result result { get; set; } + public List entries { get; set; } + } + + internal class ReturnStatusLocalMessageId + { + public Result result { get; set; } + public List entries { get; set; } + } + + internal class ReturnReceive + { + public Result result { get; set; } + public List entries { get; set; } + } + + internal class ReturnCountOutbox + { + public Result result { get; set; } + public List entries { get; set; } + } + + internal class ReturnCountInbox + { + public Result result { get; set; } + public List entries { get; set; } + + } + + internal class ReturnCountPostalCode + { + public Result result { get; set; } + public List entries { get; set; } + } + + internal class ReturnAccountInfo + { + public Result result { get; set; } + public AccountInfoResult entries { get; set; } + } + + internal class ReturnAccountConfig + { + public Result result { get; set; } + public AccountConfigResult entries { get; set; } + } + + public class KavenegarApi + { + private string _apikey; + private int _returnCode = 200; + private string _returnMessage = ""; + private const string Apipath = "http://api.kavenegar.com/v1/{0}/{1}/{2}.{3}"; + public KavenegarApi(string apikey) + { + _apikey = apikey; + } + + public string ApiKey + { + set => _apikey = value; + get => _apikey; + } + + public int ReturnCode + { + get { return _returnCode; } + + } + + public string ReturnMessage + { + get { return _returnMessage; } + + } + + private string GetApiPath(string _base, string method, string output) + { + return string.Format(Apipath, _apikey, _base, method, output); + } + + private static string Execute(string path, Dictionary _params) + { + + string responseBody = ""; + string postdata = ""; + + byte[] byteArray; + if (_params != null) + { + postdata = _params.Keys.Aggregate(postdata, + (current, key) => current + string.Format("{0}={1}&", key, _params[key])); + byteArray = Encoding.UTF8.GetBytes(postdata); + } + else + { + byteArray = new byte[0]; + } + var webRequest = (HttpWebRequest)WebRequest.Create(path); + webRequest.Method = "POST"; + webRequest.Timeout = -1; + webRequest.ContentType = "application/x-www-form-urlencoded"; + webRequest.ContentLength = byteArray.Length; + using (Stream webpageStream = webRequest.GetRequestStream()) + { + webpageStream.Write(byteArray, 0, byteArray.Length); + } + HttpWebResponse webResponse; + try + { + using (webResponse = (HttpWebResponse)webRequest.GetResponse()) + { + using (var reader = new StreamReader(webResponse.GetResponseStream())) + { + responseBody = reader.ReadToEnd(); + } + } + JsonConvert.DeserializeObject(responseBody); + return responseBody; + } + catch (WebException webException) + { + webResponse = (HttpWebResponse)webException.Response; + using (var reader = new StreamReader(webResponse.GetResponseStream())) + { + responseBody = reader.ReadToEnd(); + } + try + { + var result = JsonConvert.DeserializeObject(responseBody); + throw new ApiException(result.Return.message, result.Return.status); + } + catch (ApiException) + { + throw; + } + catch (Exception ex) + { + throw new HttpException(ex.Message, (int)((HttpWebResponse)webException.Response).StatusCode); + } + } + } + public List Send(string sender, List receptor, string message) + { + return Send(sender, receptor, message, MessageType.MobileMemory, DateTime.MinValue); + } + + public SendResult Send(string sender, String receptor, string message) + { + return Send(sender, receptor, message, MessageType.MobileMemory, DateTime.MinValue); + } + public SendResult Send(string sender, string receptor, string message, MessageType type, DateTime date) + { + List receptors = new List { receptor }; + return Send(sender, receptors, message, type, date)[0]; + } + public List Send(string sender, List receptor, string message, MessageType type, DateTime date) + { + return Send(sender, receptor, message, type, date, null); + } + public SendResult Send(string sender, string receptor, string message, MessageType type, DateTime date, string localid) + { + var receptors = new List { receptor }; + var localids = new List { localid }; + return Send(sender, receptors, message, type, date, localids)[0]; + } + public SendResult Send(string sender, string receptor, string message, string localid) + { + return Send(sender, receptor, message, MessageType.MobileMemory, DateTime.MinValue, localid); + } + public List Send(string sender, List receptors, string message, string localid) + { + List localids = new List(); + for (var i = 0; i <= receptors.Count - 1; i++) + { + localids.Add(localid); + } + return Send(sender, receptors, message, MessageType.MobileMemory, DateTime.MinValue, localids); + } + public List Send(string sender, List receptor, string message, MessageType type, DateTime date, List localids) + { + var path = GetApiPath("sms", "send", "json"); + var param = new Dictionary + { + {"sender", System.Web.HttpUtility.UrlEncodeUnicode(sender)}, + {"receptor", System.Web.HttpUtility.UrlEncodeUnicode(StringHelper.Join(",", receptor.ToArray()))}, + {"message", System.Web.HttpUtility.UrlEncodeUnicode(message)}, + {"type", (int) type}, + {"date", date == DateTime.MinValue ? 0 : DateHelper.DateTimeToUnixTimestamp(date)} + }; + if (localids != null && localids.Count > 0) + { + param.Add("localid", StringHelper.Join(",", localids.ToArray())); + } + var responseBody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responseBody); + return l.entries; + } + + public List SendArray(List senders, List receptors, List messages) + { + var types = new List(); + for (var i = 0; i <= senders.Count - 1; i++) + { + types.Add(MessageType.MobileMemory); + } + return SendArray(senders, receptors, messages, types, DateTime.MinValue, null); + } + + public List SendArray(string sender, List receptors, List messages, MessageType type, DateTime date) + { + var senders = new List(); + for (var i = 0; i < receptors.Count; i++) + { + senders.Add(sender); + } + var types = new List(); + for (var i = 0; i <= senders.Count - 1; i++) + { + types.Add(MessageType.MobileMemory); + } + return SendArray(senders, receptors, messages, types, date, null); + } + + public List SendArray(string sender, List receptors, List messages, MessageType type, DateTime date, string localmessageids) + { + var senders = new List(); + for (var i = 0; i < receptors.Count; i++) + { + senders.Add(sender); + } + List types = new List(); + for (var i = 0; i <= senders.Count - 1; i++) + { + types.Add(MessageType.MobileMemory); + } + return SendArray(senders, receptors, messages, types, date, new List() { localmessageids }); + } + + public List SendArray(string sender, List receptors, List messages, string localmessageid) + { + List senders = new List(); + for (var i = 0; i < receptors.Count; i++) + { + senders.Add(sender); + } + + return SendArray(senders, receptors, messages, localmessageid); + } + + public List SendArray(List senders, List receptors, List messages, string localmessageid) + { + var types = new List(); + for (var i = 0; i <= receptors.Count - 1; i++) + { + types.Add(MessageType.MobileMemory); + } + var localmessageids = new List(); + for (var i = 0; i <= receptors.Count - 1; i++) + { + localmessageids.Add(localmessageid); + } + return SendArray(senders, receptors, messages, types, DateTime.MinValue, localmessageids); + } + + public List SendArray(List senders, List receptors, List messages, List types, DateTime date, List localmessageids) + { + String path = GetApiPath("sms", "sendarray", "json"); + var jsonSenders = JsonConvert.SerializeObject(senders); + var jsonReceptors = JsonConvert.SerializeObject(receptors); + var jsonMessages = JsonConvert.SerializeObject(messages); + var jsonTypes = JsonConvert.SerializeObject(types); + var param = new Dictionary + { + {"message", jsonMessages}, + {"sender", jsonSenders}, + {"receptor", jsonReceptors}, + {"type", jsonTypes}, + {"date", date == DateTime.MinValue ? 0 : DateHelper.DateTimeToUnixTimestamp(date)} + }; + if (localmessageids != null && localmessageids.Count > 0) + { + param.Add("localmessageids", StringHelper.Join(",", localmessageids.ToArray())); + } + + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + if (l.entries == null) + { + return new List(); + } + return l.entries; + } + + public List Status(List messageids) + { + string path = GetApiPath("sms", "status", "json"); + var param = new Dictionary + { + {"messageid", StringHelper.Join(",", messageids.ToArray())} + }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + if (l.entries == null) + { + return new List(); + } + return l.entries; + } + + public StatusResult Status(string messageid) + { + var ids = new List { messageid }; + var result = Status(ids); + return result.Count == 1 ? result[0] : null; + } + + public List StatusLocalMessageId(List messageids) + { + string path = GetApiPath("sms", "statuslocalmessageid", "json"); + var param = new Dictionary { { "localid", StringHelper.Join(",", messageids.ToArray()) } }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + return l.entries; + } + + public StatusLocalMessageIdResult StatusLocalMessageId(string messageid) + { + List result = StatusLocalMessageId(new List() { messageid }); + return result.Count == 1 ? result[0] : null; + } + + public List Select(List messageids) + { + var path = GetApiPath("sms", "select", "json"); + var param = new Dictionary { { "messageid", StringHelper.Join(",", messageids.ToArray()) } }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + if (l.entries == null) + { + return new List(); + } + return l.entries; + } + + public SendResult Select(string messageid) + { + var ids = new List { messageid }; + var result = Select(ids); + return result.Count == 1 ? result[0] : null; + } + + public List SelectOutbox(DateTime startdate) + { + return SelectOutbox(startdate, DateTime.MaxValue); + } + + public List SelectOutbox(DateTime startdate, DateTime enddate) + { + return SelectOutbox(startdate, enddate, null); + } + + public List SelectOutbox(DateTime startdate, DateTime enddate, String sender) + { + String path = GetApiPath("sms", "selectoutbox", "json"); + var param = new Dictionary + { + {"startdate", startdate == DateTime.MinValue ? 0 : DateHelper.DateTimeToUnixTimestamp(startdate)}, + {"enddate", enddate == DateTime.MinValue ? 0 : DateHelper.DateTimeToUnixTimestamp(enddate)}, + {"sender", sender} + }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + return l.entries; + } + + public List LatestOutbox(long pagesize) + { + return LatestOutbox(pagesize, ""); + } + + public List LatestOutbox(long pagesize, String sender) + { + var path = GetApiPath("sms", "latestoutbox", "json"); + var param = new Dictionary { { "pagesize", pagesize }, { "sender", sender } }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + return l.entries; + } + + public CountOutboxResult CountOutbox(DateTime startdate) + { + return CountOutbox(startdate, DateTime.MaxValue, 10); + } + + public CountOutboxResult CountOutbox(DateTime startdate, DateTime enddate) + { + return CountOutbox(startdate, enddate, 0); + } + + public CountOutboxResult CountOutbox(DateTime startdate, DateTime enddate, int status) + { + string path = GetApiPath("sms", "countoutbox", "json"); + var param = new Dictionary + { + {"startdate", startdate == DateTime.MinValue ? 0 : DateHelper.DateTimeToUnixTimestamp(startdate)}, + {"enddate", enddate == DateTime.MinValue ? 0 : DateHelper.DateTimeToUnixTimestamp(enddate)}, + {"status", status} + }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + if (l.entries == null || l.entries[0] == null) + { + return new CountOutboxResult(); + } + return l.entries[0]; + } + + public List Cancel(List ids) + { + string path = GetApiPath("sms", "cancel", "json"); + var param = new Dictionary + { + {"messageid", StringHelper.Join(",", ids.ToArray())} + }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + return l.entries; + } + + public StatusResult Cancel(String messageid) + { + var ids = new List { messageid }; + var result = Cancel(ids); + return result.Count == 1 ? result[0] : null; + } + + public List Receive(string line, int isread) + { + String path = GetApiPath("sms", "receive", "json"); + var param = new Dictionary { { "linenumber", line }, { "isread", isread } }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + if (l.entries == null) + { + return new List(); + } + return l.entries; + } + + public CountInboxResult CountInbox(DateTime startdate, string linenumber) + { + return CountInbox(startdate, DateTime.MaxValue, linenumber, 0); + } + + public CountInboxResult CountInbox(DateTime startdate, DateTime enddate, String linenumber) + { + return CountInbox(startdate, enddate, linenumber, 0); + } + + public CountInboxResult CountInbox(DateTime startdate, DateTime enddate, String linenumber, int isread) + { + var path = GetApiPath("sms", "countoutbox", "json"); + var param = new Dictionary + { + {"startdate", startdate == DateTime.MinValue ? 0 : DateHelper.DateTimeToUnixTimestamp(startdate)}, + {"enddate", enddate == DateTime.MinValue ? 0 : DateHelper.DateTimeToUnixTimestamp(enddate)}, + {"linenumber", linenumber}, + {"isread", isread} + }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + return l.entries[0]; + } + + public List CountPostalCode(long postalcode) + { + String path = GetApiPath("sms", "countpostalcode", "json"); + var param = new Dictionary { { "postalcode", postalcode } }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + return l.entries; + } + + public List SendByPostalCode(long postalcode, String sender, String message, long mcistartIndex, long mcicount, long mtnstartindex, long mtncount) + { + return SendByPostalCode(postalcode, sender, message, mcistartIndex, mcicount, mtnstartindex, mtncount, DateTime.MinValue); + } + + public List SendByPostalCode(long postalcode, String sender, String message, long mcistartIndex, long mcicount, long mtnstartindex, long mtncount, DateTime date) + { + var path = GetApiPath("sms", "sendbypostalcode", "json"); + var param = new Dictionary + { + {"postalcode", postalcode}, + {"sender", sender}, + {"message", System.Web.HttpUtility.UrlEncodeUnicode(message)}, + {"mcistartIndex", mcistartIndex}, + {"mcicount", mcicount}, + {"mtnstartindex", mtnstartindex}, + {"mtncount", mtncount}, + {"date", date == DateTime.MinValue ? 0 : DateHelper.DateTimeToUnixTimestamp(date)} + }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + return l.entries; + } + + public AccountInfoResult AccountInfo() + { + var path = GetApiPath("account", "info", "json"); + var responsebody = Execute(path, null); + var l = JsonConvert.DeserializeObject(responsebody); + return l.entries; + } + + public AccountConfigResult AccountConfig(string apilogs, string dailyreport, string debugmode, string defaultsender, int? mincreditalarm, string resendfailed) + { + var path = GetApiPath("account", "config", "json"); + var param = new Dictionary + { + {"apilogs", apilogs}, + {"dailyreport", dailyreport}, + {"debugmode", debugmode}, + {"defaultsender", defaultsender}, + {"mincreditalarm", mincreditalarm}, + {"resendfailed", resendfailed} + }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + return l.entries; + } + + public SendResult VerifyLookup(string receptor, string token, string template) + { + return VerifyLookup(receptor, token, null, null, template, VerifyLookupType.Sms); + } + public SendResult VerifyLookup(string receptor, string token, string template, VerifyLookupType type) + { + return VerifyLookup(receptor, token, null, null, template, type); + } + public SendResult VerifyLookup(string receptor, string token, string token2, string token3, string template) + { + return VerifyLookup(receptor, token, token2, token3, template, VerifyLookupType.Sms); + } + public SendResult VerifyLookup(string receptor, string token, string token2, string token3, string token10, string template) + { + return VerifyLookup(receptor, token, token2, token3, token10, template, VerifyLookupType.Sms); + } + public SendResult VerifyLookup(string receptor, string token, string token2, string token3, string template, VerifyLookupType type) + { + return VerifyLookup(receptor, token, token2, token3, null, template, type); + } + + public SendResult VerifyLookup(string receptor, string token, string token2, string token3, string token10, string template, VerifyLookupType type) + { + return VerifyLookup(receptor, token, token2, token3, token10, null, template, type); + } + + public SendResult VerifyLookup(string receptor, string token, string token2, string token3, string token10, string token20, string template, VerifyLookupType type) + { + var path = GetApiPath("verify", "lookup", "json"); + var param = new Dictionary + { + {"receptor", receptor}, + {"template", template}, + {"token", token}, + {"token2", token2}, + {"token3", token3}, + {"token10", token10}, + {"token20", token20}, + {"type", type}, + }; + var responsebody = Execute(path, param); + var l = JsonConvert.DeserializeObject(responsebody); + return l.entries[0]; + } + + + #region << CallMakeTTS >> + + public SendResult CallMakeTTS(string message, string receptor) + { + return CallMakeTTS(message, new List { receptor }, null, null)[0]; + } + public List CallMakeTTS(string message, List receptor) + { + return CallMakeTTS(message, receptor, null, null); + } + + public List CallMakeTTS(string message, List receptor, DateTime? date, List localid) + { + var path = GetApiPath("call", "maketts", "json"); + var param = new Dictionary + { + {"receptor", StringHelper.Join(",", receptor.ToArray())}, + {"message", System.Web.HttpUtility.UrlEncodeUnicode(message)}, + }; + if (date != null) + param.Add("date", DateHelper.DateTimeToUnixTimestamp(date.Value)); + if (localid != null && localid.Count > 0) + param.Add("localid", StringHelper.Join(",", localid.ToArray())); + var responseBody = Execute(path, param); + + return JsonConvert.DeserializeObject(responseBody).entries; + } + + #endregion << CallMakeTTS >> + + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/AccountConfigResult.cs b/Kavenegar-Core/Models/AccountConfigResult.cs new file mode 100644 index 0000000..00cf334 --- /dev/null +++ b/Kavenegar-Core/Models/AccountConfigResult.cs @@ -0,0 +1,12 @@ +namespace Kavenegar.Models +{ + public class AccountConfigResult + { + public string ApiLogs { get; set; } + public string DailyReport { get; set; } + public string DebugMode { get; set; } + public string DefaultSender { get; set; } + public string MinCreditAlarm { get; set; } + public string ResendFailed { get; set; } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/AccountInfoResult.cs b/Kavenegar-Core/Models/AccountInfoResult.cs new file mode 100644 index 0000000..6f802a5 --- /dev/null +++ b/Kavenegar-Core/Models/AccountInfoResult.cs @@ -0,0 +1,14 @@ +using System; +namespace Kavenegar.Models +{ + public class AccountInfoResult + { + public long RemainCredit { get; set; } + public long Expiredate { get; set; } + public DateTime GregorianExpiredate + { + get { return Utils.DateHelper.UnixTimestampToDateTime(Expiredate); } + } + public string Type { get; set; } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/CountInboxResult.cs b/Kavenegar-Core/Models/CountInboxResult.cs new file mode 100644 index 0000000..b39a7cc --- /dev/null +++ b/Kavenegar-Core/Models/CountInboxResult.cs @@ -0,0 +1,9 @@ +namespace Kavenegar.Models +{ + public class CountInboxResult + { + public long StartDate { get; set; } + public long EndDate { get; set; } + public long SumCount { get; set; } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/CountOutboxResult.cs b/Kavenegar-Core/Models/CountOutboxResult.cs new file mode 100644 index 0000000..e3017e1 --- /dev/null +++ b/Kavenegar-Core/Models/CountOutboxResult.cs @@ -0,0 +1,8 @@ +namespace Kavenegar.Models +{ + public class CountOutboxResult : CountInboxResult + { + public long SumPart { get; set; } + public long Cost { get; set; } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/CountPostalCodeResult.cs b/Kavenegar-Core/Models/CountPostalCodeResult.cs new file mode 100644 index 0000000..618d097 --- /dev/null +++ b/Kavenegar-Core/Models/CountPostalCodeResult.cs @@ -0,0 +1,8 @@ +namespace Kavenegar.Models +{ + public class CountPostalCodeResult + { + public string Section { get; set; } + public int Value { get; set; } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/Enums/MessageStatus.cs b/Kavenegar-Core/Models/Enums/MessageStatus.cs new file mode 100644 index 0000000..9f23f94 --- /dev/null +++ b/Kavenegar-Core/Models/Enums/MessageStatus.cs @@ -0,0 +1,15 @@ +namespace Kavenegar.Models.Enums +{ + public enum MessageStatus + { + Queued = 1, + Schulded = 2, + SentToCenter = 4, + Delivered = 10, + Undelivered = 11, + Canceled = 13, + Filtered = 14, + Received = 50, + Incorrect = 100 + } +} diff --git a/Kavenegar-Core/Models/Enums/MessageType.cs b/Kavenegar-Core/Models/Enums/MessageType.cs new file mode 100644 index 0000000..30428a4 --- /dev/null +++ b/Kavenegar-Core/Models/Enums/MessageType.cs @@ -0,0 +1,10 @@ +namespace Kavenegar.Models.Enums +{ + public enum MessageType + { + Flash = 0, + MobileMemory = 1, + SimMemory = 2, + AppMemory = 3 + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/Enums/MetaCode.cs b/Kavenegar-Core/Models/Enums/MetaCode.cs new file mode 100644 index 0000000..3457717 --- /dev/null +++ b/Kavenegar-Core/Models/Enums/MetaCode.cs @@ -0,0 +1,24 @@ +namespace Kavenegar.Models.Enums +{ + public enum MetaCode + { + + NotChecked = 99, + Approved = 100, + InvalidApiKey = 101, + ExpiredApiKey = 102, + AccountDisabled = 103, + NotEnoughCredit = 104, + ServerisBusy = 105, + UndefinedCommand = 106, + RequestFailed = 107, + ParametersBroken = 108, + InvalidRecp = 110, + InvalidSenderNumber = 111, + EmptyMessage = 112, + RecpIsTooLarge = 113, + InvalidDate = 114, + MsgIsTooLarge = 115, + RecpNotEqualWithMessage = 116 + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/Enums/VerifyLookupType.cs b/Kavenegar-Core/Models/Enums/VerifyLookupType.cs new file mode 100644 index 0000000..109fae5 --- /dev/null +++ b/Kavenegar-Core/Models/Enums/VerifyLookupType.cs @@ -0,0 +1,8 @@ +namespace Kavenegar.Models.Enums +{ + public enum VerifyLookupType + { + Sms = 0, + Call = 1, + } +} diff --git a/Kavenegar-Core/Models/ReceiveResult.cs b/Kavenegar-Core/Models/ReceiveResult.cs new file mode 100644 index 0000000..8de940c --- /dev/null +++ b/Kavenegar-Core/Models/ReceiveResult.cs @@ -0,0 +1,24 @@ +using System; +namespace Kavenegar.Models +{ + public class ReceiveResult + { + public long Date { get; set; } + + public DateTime GregorianDate + { + get + { + return Utils.DateHelper.UnixTimestampToDateTime(Date); + } + } + + public long MessageId { get; set; } + + public string Sender { get; set; } + + public string Message { get; set; } + + public string Receptor { get; set; } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/SendResult.cs b/Kavenegar-Core/Models/SendResult.cs new file mode 100644 index 0000000..c6905f6 --- /dev/null +++ b/Kavenegar-Core/Models/SendResult.cs @@ -0,0 +1,29 @@ +using System; +using Kavenegar.Utils; + +namespace Kavenegar.Models +{ + public class SendResult + { + public long Messageid { get; set; } + + public int Cost { get; set; } + + public DateTime GregorianDate + { + get { return DateHelper.UnixTimestampToDateTime(Date); } + set { Date = DateHelper.DateTimeToUnixTimestamp(value); } + } + + public long Date { get; set; } + + public string Message { get; set; } + + public string Receptor { get; set; } + + public string Sender { get; set; } + public int Status { get; set; } + + public string StatusText { get; set; } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/StatusLocalMessageIdResult.cs b/Kavenegar-Core/Models/StatusLocalMessageIdResult.cs new file mode 100644 index 0000000..ff5a52a --- /dev/null +++ b/Kavenegar-Core/Models/StatusLocalMessageIdResult.cs @@ -0,0 +1,11 @@ +using Kavenegar.Models.Enums; +namespace Kavenegar.Models +{ + public class StatusLocalMessageIdResult + { + public long Messageid { get; set; } + public long Localid { get; set; } + public MessageStatus Status { get; set; } + public string Statustext { get; set; } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Models/StatusResult.cs b/Kavenegar-Core/Models/StatusResult.cs new file mode 100644 index 0000000..9a5d336 --- /dev/null +++ b/Kavenegar-Core/Models/StatusResult.cs @@ -0,0 +1,10 @@ +using Kavenegar.Models.Enums; +namespace Kavenegar.Models +{ + public class StatusResult + { + public long Messageid { get; set; } + public MessageStatus Status { get; set; } + public string Statustext { get; set; } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/Utils/DateHelper.cs b/Kavenegar-Core/Utils/DateHelper.cs new file mode 100644 index 0000000..2375728 --- /dev/null +++ b/Kavenegar-Core/Utils/DateHelper.cs @@ -0,0 +1,32 @@ +using System; +using System.Globalization; +namespace Kavenegar.Utils +{ + public class DateHelper + { + public static DateTime UnixTimestampToDateTime(long unixTimeStamp) + { + try + { + return (new DateTime(1970, 1, 1, 0, 0, 0)).AddSeconds(unixTimeStamp); + } + catch (Exception ex) + { + return DateTime.MaxValue; + } + } + public static long DateTimeToUnixTimestamp(DateTime idateTime) + { + try + { + idateTime = new DateTime(idateTime.Year, idateTime.Month, idateTime.Day, idateTime.Hour, idateTime.Minute, idateTime.Second); + TimeSpan unixTimeSpan = (idateTime - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Local).ToLocalTime()); + return long.Parse(unixTimeSpan.TotalSeconds.ToString(CultureInfo.InvariantCulture)); + } + catch (Exception ex) + { + return 0; + } + } + } +} diff --git a/Kavenegar-Core/Utils/StringHelper.cs b/Kavenegar-Core/Utils/StringHelper.cs new file mode 100644 index 0000000..12f956a --- /dev/null +++ b/Kavenegar-Core/Utils/StringHelper.cs @@ -0,0 +1,18 @@ +using System; +using System.Linq; +namespace Kavenegar.Utils +{ + public class StringHelper + { + public static String Join(String delimeter, string[] items) + { + var result = items.Aggregate("", (current, obj) => current + (obj + ",")); + return result.Substring(0, result.Length - 1); + } + public static String Join(String delimeter, long[] items) + { + string result = items.Aggregate("", (current, obj) => current + (obj.ToString() + ",")); + return result.Substring(0, result.Length - 1); + } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/bin/Debug/netcoreapp2.0/Kavenegar-Core.deps.json b/Kavenegar-Core/bin/Debug/netcoreapp2.0/Kavenegar-Core.deps.json new file mode 100644 index 0000000..32ea765 --- /dev/null +++ b/Kavenegar-Core/bin/Debug/netcoreapp2.0/Kavenegar-Core.deps.json @@ -0,0 +1,38 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v2.0", + "signature": "883f5ab0e357ef56d00e5851b3cee30b45ba651b" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v2.0": { + "Kavenegar-Core/1.0.0": { + "dependencies": { + "Newtonsoft.Json": "11.0.2" + }, + "runtime": { + "Kavenegar-Core.dll": {} + } + }, + "Newtonsoft.Json/11.0.2": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": {} + } + } + } + }, + "libraries": { + "Kavenegar-Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Newtonsoft.Json/11.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IvJe1pj7JHEsP8B8J8DwlMEx8UInrs/x+9oVY+oCD13jpLu4JbJU2WCIsMRn5C4yW9+DgkaO8uiVE5VHKjpmdQ==", + "path": "newtonsoft.json/11.0.2", + "hashPath": "newtonsoft.json.11.0.2.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/bin/Debug/netcoreapp2.0/Kavenegar-Core.dll b/Kavenegar-Core/bin/Debug/netcoreapp2.0/Kavenegar-Core.dll new file mode 100644 index 0000000..273fa20 Binary files /dev/null and b/Kavenegar-Core/bin/Debug/netcoreapp2.0/Kavenegar-Core.dll differ diff --git a/Kavenegar-Core/bin/Debug/netcoreapp2.0/Kavenegar-Core.pdb b/Kavenegar-Core/bin/Debug/netcoreapp2.0/Kavenegar-Core.pdb new file mode 100644 index 0000000..1049228 Binary files /dev/null and b/Kavenegar-Core/bin/Debug/netcoreapp2.0/Kavenegar-Core.pdb differ diff --git a/Kavenegar-Core/bin/Debug/netstandard2.0/Kavenegar-Core.deps.json b/Kavenegar-Core/bin/Debug/netstandard2.0/Kavenegar-Core.deps.json new file mode 100644 index 0000000..f40a473 --- /dev/null +++ b/Kavenegar-Core/bin/Debug/netstandard2.0/Kavenegar-Core.deps.json @@ -0,0 +1,60 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "1d4bd68d5bd7fff41f4e11e53507b3a016ec6d11" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Kavenegar-Core/1.0.0": { + "dependencies": { + "NETStandard.Library": "2.0.0", + "Newtonsoft.Json": "11.0.2" + }, + "runtime": { + "Kavenegar-Core.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "NETStandard.Library/2.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Newtonsoft.Json/11.0.2": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": {} + } + } + } + }, + "libraries": { + "Kavenegar-Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==", + "path": "netstandard.library/2.0.0", + "hashPath": "netstandard.library.2.0.0.nupkg.sha512" + }, + "Newtonsoft.Json/11.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IvJe1pj7JHEsP8B8J8DwlMEx8UInrs/x+9oVY+oCD13jpLu4JbJU2WCIsMRn5C4yW9+DgkaO8uiVE5VHKjpmdQ==", + "path": "newtonsoft.json/11.0.2", + "hashPath": "newtonsoft.json.11.0.2.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Kavenegar-Core/bin/Debug/netstandard2.0/Kavenegar-Core.dll b/Kavenegar-Core/bin/Debug/netstandard2.0/Kavenegar-Core.dll new file mode 100644 index 0000000..3db1954 Binary files /dev/null and b/Kavenegar-Core/bin/Debug/netstandard2.0/Kavenegar-Core.dll differ diff --git a/Kavenegar-Core/bin/Debug/netstandard2.0/Kavenegar-Core.pdb b/Kavenegar-Core/bin/Debug/netstandard2.0/Kavenegar-Core.pdb new file mode 100644 index 0000000..4727412 Binary files /dev/null and b/Kavenegar-Core/bin/Debug/netstandard2.0/Kavenegar-Core.pdb differ diff --git a/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.AssemblyInfo.cs b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.AssemblyInfo.cs new file mode 100644 index 0000000..52e05fb --- /dev/null +++ b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyTitleAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.AssemblyInfoInputs.cache b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.AssemblyInfoInputs.cache new file mode 100644 index 0000000..9692751 --- /dev/null +++ b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +2b3002789cbdc12162783c6d47aef33385d790c3 diff --git a/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..9207300 --- /dev/null +++ b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +29da47cc519b27c6ac9d8799b6bb33d7ebee0669 diff --git a/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.csproj.FileListAbsolute.txt b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..f343d7c --- /dev/null +++ b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.csproj.FileListAbsolute.txt @@ -0,0 +1,9 @@ +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\bin\Debug\netcoreapp2.0\Kavenegar-Core.deps.json +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\bin\Debug\netcoreapp2.0\Kavenegar-Core.dll +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netcoreapp2.0\Kavenegar-Core.csprojResolveAssemblyReference.cache +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netcoreapp2.0\Kavenegar-Core.csproj.CoreCompileInputs.cache +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netcoreapp2.0\Kavenegar-Core.AssemblyInfoInputs.cache +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netcoreapp2.0\Kavenegar-Core.AssemblyInfo.cs +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\bin\Debug\netcoreapp2.0\Kavenegar-Core.pdb +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netcoreapp2.0\Kavenegar-Core.dll +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netcoreapp2.0\Kavenegar-Core.pdb diff --git a/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.csprojResolveAssemblyReference.cache b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.csprojResolveAssemblyReference.cache new file mode 100644 index 0000000..d597c5f Binary files /dev/null and b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.csprojResolveAssemblyReference.cache differ diff --git a/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.dll b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.dll new file mode 100644 index 0000000..273fa20 Binary files /dev/null and b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.dll differ diff --git a/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.pdb b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.pdb new file mode 100644 index 0000000..1049228 Binary files /dev/null and b/Kavenegar-Core/obj/Debug/netcoreapp2.0/Kavenegar-Core.pdb differ diff --git a/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.AssemblyInfo.cs b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.AssemblyInfo.cs new file mode 100644 index 0000000..52e05fb --- /dev/null +++ b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyTitleAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.AssemblyInfoInputs.cache b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.AssemblyInfoInputs.cache new file mode 100644 index 0000000..9692751 --- /dev/null +++ b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +2b3002789cbdc12162783c6d47aef33385d790c3 diff --git a/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..19db63a --- /dev/null +++ b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +62b09b3302fa07bd54b0f277af21a9d8023e4070 diff --git a/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.csproj.FileListAbsolute.txt b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..f83193b --- /dev/null +++ b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.csproj.FileListAbsolute.txt @@ -0,0 +1,9 @@ +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\bin\Debug\netstandard2.0\Kavenegar-Core.deps.json +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\bin\Debug\netstandard2.0\Kavenegar-Core.dll +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\bin\Debug\netstandard2.0\Kavenegar-Core.pdb +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netstandard2.0\Kavenegar-Core.csprojResolveAssemblyReference.cache +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netstandard2.0\Kavenegar-Core.csproj.CoreCompileInputs.cache +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netstandard2.0\Kavenegar-Core.AssemblyInfoInputs.cache +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netstandard2.0\Kavenegar-Core.AssemblyInfo.cs +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netstandard2.0\Kavenegar-Core.dll +E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\Debug\netstandard2.0\Kavenegar-Core.pdb diff --git a/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.csprojResolveAssemblyReference.cache b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.csprojResolveAssemblyReference.cache new file mode 100644 index 0000000..4a196ee Binary files /dev/null and b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.csprojResolveAssemblyReference.cache differ diff --git a/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.dll b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.dll new file mode 100644 index 0000000..3db1954 Binary files /dev/null and b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.dll differ diff --git a/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.pdb b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.pdb new file mode 100644 index 0000000..4727412 Binary files /dev/null and b/Kavenegar-Core/obj/Debug/netstandard2.0/Kavenegar-Core.pdb differ diff --git a/Kavenegar-Core/obj/Kavenegar-Core.csproj.nuget.cache b/Kavenegar-Core/obj/Kavenegar-Core.csproj.nuget.cache new file mode 100644 index 0000000..c3302a0 --- /dev/null +++ b/Kavenegar-Core/obj/Kavenegar-Core.csproj.nuget.cache @@ -0,0 +1,5 @@ +{ + "version": 1, + "dgSpecHash": "xcuwOwCVZFXEAup7HP1s0t2YLmLJi+iC1oJXSkHoC7pAQ+WjwVYc14ldUIUuYpaeN4xo9JUHATFi7bvPekXAmg==", + "success": true +} \ No newline at end of file diff --git a/Kavenegar-Core/obj/Kavenegar-Core.csproj.nuget.g.props b/Kavenegar-Core/obj/Kavenegar-Core.csproj.nuget.g.props new file mode 100644 index 0000000..3d9f84e --- /dev/null +++ b/Kavenegar-Core/obj/Kavenegar-Core.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + E:\pfm\MnChat\Kavenegar\Kavenegar-Core\obj\project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\meysa\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder + PackageReference + 4.4.0 + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + \ No newline at end of file diff --git a/Kavenegar-Core/obj/Kavenegar-Core.csproj.nuget.g.targets b/Kavenegar-Core/obj/Kavenegar-Core.csproj.nuget.g.targets new file mode 100644 index 0000000..14c57bf --- /dev/null +++ b/Kavenegar-Core/obj/Kavenegar-Core.csproj.nuget.g.targets @@ -0,0 +1,9 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + \ No newline at end of file diff --git a/Kavenegar-Core/obj/Release/netcoreapp2.0/Kavenegar-Core.AssemblyInfo.cs b/Kavenegar-Core/obj/Release/netcoreapp2.0/Kavenegar-Core.AssemblyInfo.cs new file mode 100644 index 0000000..714812d --- /dev/null +++ b/Kavenegar-Core/obj/Release/netcoreapp2.0/Kavenegar-Core.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyTitleAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/Kavenegar-Core/obj/Release/netcoreapp2.0/Kavenegar-Core.AssemblyInfoInputs.cache b/Kavenegar-Core/obj/Release/netcoreapp2.0/Kavenegar-Core.AssemblyInfoInputs.cache new file mode 100644 index 0000000..1fbefcc --- /dev/null +++ b/Kavenegar-Core/obj/Release/netcoreapp2.0/Kavenegar-Core.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +cd973c029db66f722f45f0a7269aad8e5dd1a279 diff --git a/Kavenegar-Core/obj/Release/netcoreapp2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache b/Kavenegar-Core/obj/Release/netcoreapp2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..9207300 --- /dev/null +++ b/Kavenegar-Core/obj/Release/netcoreapp2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +29da47cc519b27c6ac9d8799b6bb33d7ebee0669 diff --git a/Kavenegar-Core/obj/Release/netstandard2.0/Kavenegar-Core.AssemblyInfo.cs b/Kavenegar-Core/obj/Release/netstandard2.0/Kavenegar-Core.AssemblyInfo.cs new file mode 100644 index 0000000..714812d --- /dev/null +++ b/Kavenegar-Core/obj/Release/netstandard2.0/Kavenegar-Core.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyTitleAttribute("Kavenegar-Core")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/Kavenegar-Core/obj/Release/netstandard2.0/Kavenegar-Core.AssemblyInfoInputs.cache b/Kavenegar-Core/obj/Release/netstandard2.0/Kavenegar-Core.AssemblyInfoInputs.cache new file mode 100644 index 0000000..1fbefcc --- /dev/null +++ b/Kavenegar-Core/obj/Release/netstandard2.0/Kavenegar-Core.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +cd973c029db66f722f45f0a7269aad8e5dd1a279 diff --git a/Kavenegar-Core/obj/Release/netstandard2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache b/Kavenegar-Core/obj/Release/netstandard2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..19db63a --- /dev/null +++ b/Kavenegar-Core/obj/Release/netstandard2.0/Kavenegar-Core.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +62b09b3302fa07bd54b0f277af21a9d8023e4070 diff --git a/Kavenegar-Core/obj/project.assets.json b/Kavenegar-Core/obj/project.assets.json new file mode 100644 index 0000000..25fad70 --- /dev/null +++ b/Kavenegar-Core/obj/project.assets.json @@ -0,0 +1,280 @@ +{ + "version": 3, + "targets": { + ".NETStandard,Version=v2.0": { + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "NETStandard.Library/2.0.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + }, + "build": { + "build/netstandard2.0/NETStandard.Library.targets": {} + } + }, + "Newtonsoft.Json/11.0.2": { + "type": "package", + "compile": { + "lib/netstandard2.0/Newtonsoft.Json.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.NETCore.Platforms/1.1.0": { + "sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "type": "package", + "path": "microsoft.netcore.platforms/1.1.0", + "files": [ + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "microsoft.netcore.platforms.1.1.0.nupkg.sha512", + "microsoft.netcore.platforms.nuspec", + "runtime.json" + ] + }, + "NETStandard.Library/2.0.0": { + "sha512": "7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==", + "type": "package", + "path": "netstandard.library/2.0.0", + "files": [ + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "build/NETStandard.Library.targets", + "build/netstandard2.0/NETStandard.Library.targets", + "build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll", + "build/netstandard2.0/ref/System.AppContext.dll", + "build/netstandard2.0/ref/System.Collections.Concurrent.dll", + "build/netstandard2.0/ref/System.Collections.NonGeneric.dll", + "build/netstandard2.0/ref/System.Collections.Specialized.dll", + "build/netstandard2.0/ref/System.Collections.dll", + "build/netstandard2.0/ref/System.ComponentModel.Composition.dll", + "build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll", + "build/netstandard2.0/ref/System.ComponentModel.Primitives.dll", + "build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll", + "build/netstandard2.0/ref/System.ComponentModel.dll", + "build/netstandard2.0/ref/System.Console.dll", + "build/netstandard2.0/ref/System.Core.dll", + "build/netstandard2.0/ref/System.Data.Common.dll", + "build/netstandard2.0/ref/System.Data.dll", + "build/netstandard2.0/ref/System.Diagnostics.Contracts.dll", + "build/netstandard2.0/ref/System.Diagnostics.Debug.dll", + "build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll", + "build/netstandard2.0/ref/System.Diagnostics.Process.dll", + "build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll", + "build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll", + "build/netstandard2.0/ref/System.Diagnostics.Tools.dll", + "build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll", + "build/netstandard2.0/ref/System.Diagnostics.Tracing.dll", + "build/netstandard2.0/ref/System.Drawing.Primitives.dll", + "build/netstandard2.0/ref/System.Drawing.dll", + "build/netstandard2.0/ref/System.Dynamic.Runtime.dll", + "build/netstandard2.0/ref/System.Globalization.Calendars.dll", + "build/netstandard2.0/ref/System.Globalization.Extensions.dll", + "build/netstandard2.0/ref/System.Globalization.dll", + "build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll", + "build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll", + "build/netstandard2.0/ref/System.IO.Compression.dll", + "build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll", + "build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll", + "build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll", + "build/netstandard2.0/ref/System.IO.FileSystem.dll", + "build/netstandard2.0/ref/System.IO.IsolatedStorage.dll", + "build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll", + "build/netstandard2.0/ref/System.IO.Pipes.dll", + "build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll", + "build/netstandard2.0/ref/System.IO.dll", + "build/netstandard2.0/ref/System.Linq.Expressions.dll", + "build/netstandard2.0/ref/System.Linq.Parallel.dll", + "build/netstandard2.0/ref/System.Linq.Queryable.dll", + "build/netstandard2.0/ref/System.Linq.dll", + "build/netstandard2.0/ref/System.Net.Http.dll", + "build/netstandard2.0/ref/System.Net.NameResolution.dll", + "build/netstandard2.0/ref/System.Net.NetworkInformation.dll", + "build/netstandard2.0/ref/System.Net.Ping.dll", + "build/netstandard2.0/ref/System.Net.Primitives.dll", + "build/netstandard2.0/ref/System.Net.Requests.dll", + "build/netstandard2.0/ref/System.Net.Security.dll", + "build/netstandard2.0/ref/System.Net.Sockets.dll", + "build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll", + "build/netstandard2.0/ref/System.Net.WebSockets.Client.dll", + "build/netstandard2.0/ref/System.Net.WebSockets.dll", + "build/netstandard2.0/ref/System.Net.dll", + "build/netstandard2.0/ref/System.Numerics.dll", + "build/netstandard2.0/ref/System.ObjectModel.dll", + "build/netstandard2.0/ref/System.Reflection.Extensions.dll", + "build/netstandard2.0/ref/System.Reflection.Primitives.dll", + "build/netstandard2.0/ref/System.Reflection.dll", + "build/netstandard2.0/ref/System.Resources.Reader.dll", + "build/netstandard2.0/ref/System.Resources.ResourceManager.dll", + "build/netstandard2.0/ref/System.Resources.Writer.dll", + "build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll", + "build/netstandard2.0/ref/System.Runtime.Extensions.dll", + "build/netstandard2.0/ref/System.Runtime.Handles.dll", + "build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll", + "build/netstandard2.0/ref/System.Runtime.InteropServices.dll", + "build/netstandard2.0/ref/System.Runtime.Numerics.dll", + "build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll", + "build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll", + "build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll", + "build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll", + "build/netstandard2.0/ref/System.Runtime.Serialization.dll", + "build/netstandard2.0/ref/System.Runtime.dll", + "build/netstandard2.0/ref/System.Security.Claims.dll", + "build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll", + "build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll", + "build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll", + "build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll", + "build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll", + "build/netstandard2.0/ref/System.Security.Principal.dll", + "build/netstandard2.0/ref/System.Security.SecureString.dll", + "build/netstandard2.0/ref/System.ServiceModel.Web.dll", + "build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll", + "build/netstandard2.0/ref/System.Text.Encoding.dll", + "build/netstandard2.0/ref/System.Text.RegularExpressions.dll", + "build/netstandard2.0/ref/System.Threading.Overlapped.dll", + "build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll", + "build/netstandard2.0/ref/System.Threading.Tasks.dll", + "build/netstandard2.0/ref/System.Threading.Thread.dll", + "build/netstandard2.0/ref/System.Threading.ThreadPool.dll", + "build/netstandard2.0/ref/System.Threading.Timer.dll", + "build/netstandard2.0/ref/System.Threading.dll", + "build/netstandard2.0/ref/System.Transactions.dll", + "build/netstandard2.0/ref/System.ValueTuple.dll", + "build/netstandard2.0/ref/System.Web.dll", + "build/netstandard2.0/ref/System.Windows.dll", + "build/netstandard2.0/ref/System.Xml.Linq.dll", + "build/netstandard2.0/ref/System.Xml.ReaderWriter.dll", + "build/netstandard2.0/ref/System.Xml.Serialization.dll", + "build/netstandard2.0/ref/System.Xml.XDocument.dll", + "build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll", + "build/netstandard2.0/ref/System.Xml.XPath.dll", + "build/netstandard2.0/ref/System.Xml.XmlDocument.dll", + "build/netstandard2.0/ref/System.Xml.XmlSerializer.dll", + "build/netstandard2.0/ref/System.Xml.dll", + "build/netstandard2.0/ref/System.dll", + "build/netstandard2.0/ref/mscorlib.dll", + "build/netstandard2.0/ref/netstandard.dll", + "build/netstandard2.0/ref/netstandard.xml", + "lib/netstandard1.0/_._", + "netstandard.library.2.0.0.nupkg.sha512", + "netstandard.library.nuspec" + ] + }, + "Newtonsoft.Json/11.0.2": { + "sha512": "IvJe1pj7JHEsP8B8J8DwlMEx8UInrs/x+9oVY+oCD13jpLu4JbJU2WCIsMRn5C4yW9+DgkaO8uiVE5VHKjpmdQ==", + "type": "package", + "path": "newtonsoft.json/11.0.2", + "files": [ + "LICENSE.md", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll", + "lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml", + "lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll", + "lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml", + "newtonsoft.json.11.0.2.nupkg.sha512", + "newtonsoft.json.nuspec" + ] + } + }, + "projectFileDependencyGroups": { + ".NETStandard,Version=v2.0": [ + "NETStandard.Library >= 2.0.0", + "Newtonsoft.Json >= 11.0.2" + ] + }, + "packageFolders": { + "C:\\Users\\meysa\\.nuget\\packages\\": {}, + "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {} + }, + "project": { + "version": "1.0.0", + "restoreSettings": { + "hideWarningsAndErrors": true + }, + "restore": { + "projectUniqueName": "E:\\pfm\\MnChat\\Kavenegar\\Kavenegar-Core\\Kavenegar-Core.csproj", + "projectName": "Kavenegar-Core", + "projectPath": "E:\\pfm\\MnChat\\Kavenegar\\Kavenegar-Core\\Kavenegar-Core.csproj", + "packagesPath": "C:\\Users\\meysa\\.nuget\\packages\\", + "outputPath": "E:\\pfm\\MnChat\\Kavenegar\\Kavenegar-Core\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" + ], + "configFilePaths": [ + "C:\\Users\\meysa\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "netstandard2.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "netstandard2.0": { + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "netstandard2.0": { + "dependencies": { + "NETStandard.Library": { + "suppressParent": "All", + "target": "Package", + "version": "2.0.0", + "autoReferenced": true + }, + "Newtonsoft.Json": { + "target": "Package", + "version": "11.0.2" + } + }, + "imports": [ + "net461" + ], + "assetTargetFallback": true, + "warn": true + } + } + } +} \ No newline at end of file diff --git a/Kavenegar.sln b/Kavenegar.sln index 5696dc7..8eaa42c 100644 --- a/Kavenegar.sln +++ b/Kavenegar.sln @@ -1,10 +1,12 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.24720.0 +# Visual Studio 15 +VisualStudioVersion = 15.0.27004.2002 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kavenegar", "Kavenegar\Kavenegar.csproj", "{28209ADB-60BA-4E6C-B802-B2CC0AB85181}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kavenegar-Core", "Kavenegar-Core\Kavenegar-Core.csproj", "{80B46FC1-6086-418C-AC71-A2F2F98D4A57}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,8 +17,15 @@ Global {28209ADB-60BA-4E6C-B802-B2CC0AB85181}.Debug|Any CPU.Build.0 = Debug|Any CPU {28209ADB-60BA-4E6C-B802-B2CC0AB85181}.Release|Any CPU.ActiveCfg = Release|Any CPU {28209ADB-60BA-4E6C-B802-B2CC0AB85181}.Release|Any CPU.Build.0 = Release|Any CPU + {80B46FC1-6086-418C-AC71-A2F2F98D4A57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80B46FC1-6086-418C-AC71-A2F2F98D4A57}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80B46FC1-6086-418C-AC71-A2F2F98D4A57}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80B46FC1-6086-418C-AC71-A2F2F98D4A57}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8CEB992F-125F-49FA-AA0F-F9E956AC5BD2} + EndGlobalSection EndGlobal diff --git a/Kavenegar/bin/Debug/Kavenegar.dll b/Kavenegar/bin/Debug/Kavenegar.dll index e284b8a..efa85c6 100644 Binary files a/Kavenegar/bin/Debug/Kavenegar.dll and b/Kavenegar/bin/Debug/Kavenegar.dll differ diff --git a/Kavenegar/bin/Debug/Kavenegar.pdb b/Kavenegar/bin/Debug/Kavenegar.pdb index 929c655..a605d9c 100644 Binary files a/Kavenegar/bin/Debug/Kavenegar.pdb and b/Kavenegar/bin/Debug/Kavenegar.pdb differ diff --git a/Kavenegar/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Kavenegar/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 526bbb5..5155d4a 100644 Binary files a/Kavenegar/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/Kavenegar/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/Kavenegar/obj/Debug/Kavenegar.csproj.CoreCompileInputs.cache b/Kavenegar/obj/Debug/Kavenegar.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..cb1f493 --- /dev/null +++ b/Kavenegar/obj/Debug/Kavenegar.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +8104cf0bf6ceb293533d6691e472dadad207787d diff --git a/Kavenegar/obj/Debug/Kavenegar.csproj.FileListAbsolute.txt b/Kavenegar/obj/Debug/Kavenegar.csproj.FileListAbsolute.txt index ef80bb9..bcfed18 100644 --- a/Kavenegar/obj/Debug/Kavenegar.csproj.FileListAbsolute.txt +++ b/Kavenegar/obj/Debug/Kavenegar.csproj.FileListAbsolute.txt @@ -16,3 +16,8 @@ C:\Users\Elecomp\Desktop\kavenegar-csharp\Kavenegar\obj\Debug\Kavenegar.csprojRe C:\Users\Elecomp\Desktop\kavenegar-csharp\Kavenegar\obj\Debug\Kavenegar.dll C:\Users\Elecomp\Desktop\kavenegar-csharp\Kavenegar\obj\Debug\Kavenegar.pdb D:\Projects\github\kavenegar-csharp\Kavenegar\obj\Debug\Kavenegar.csprojResolveAssemblyReference.cache +E:\pfm\MnChat\Kavenegar\Kavenegar\bin\Debug\Kavenegar.dll +E:\pfm\MnChat\Kavenegar\Kavenegar\bin\Debug\Kavenegar.pdb +E:\pfm\MnChat\Kavenegar\Kavenegar\obj\Debug\Kavenegar.csproj.CoreCompileInputs.cache +E:\pfm\MnChat\Kavenegar\Kavenegar\obj\Debug\Kavenegar.dll +E:\pfm\MnChat\Kavenegar\Kavenegar\obj\Debug\Kavenegar.pdb diff --git a/Kavenegar/obj/Debug/Kavenegar.csprojResolveAssemblyReference.cache b/Kavenegar/obj/Debug/Kavenegar.csprojResolveAssemblyReference.cache deleted file mode 100644 index d51f0b6..0000000 Binary files a/Kavenegar/obj/Debug/Kavenegar.csprojResolveAssemblyReference.cache and /dev/null differ diff --git a/Kavenegar/obj/Debug/Kavenegar.dll b/Kavenegar/obj/Debug/Kavenegar.dll index e284b8a..efa85c6 100644 Binary files a/Kavenegar/obj/Debug/Kavenegar.dll and b/Kavenegar/obj/Debug/Kavenegar.dll differ diff --git a/Kavenegar/obj/Debug/Kavenegar.pdb b/Kavenegar/obj/Debug/Kavenegar.pdb index 929c655..a605d9c 100644 Binary files a/Kavenegar/obj/Debug/Kavenegar.pdb and b/Kavenegar/obj/Debug/Kavenegar.pdb differ diff --git a/Kavenegar/obj/Release/Kavenegar.csproj.CoreCompileInputs.cache b/Kavenegar/obj/Release/Kavenegar.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..cb1f493 --- /dev/null +++ b/Kavenegar/obj/Release/Kavenegar.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +8104cf0bf6ceb293533d6691e472dadad207787d