diff --git a/DigitalTwins-CodeFirst-dotnet.sln b/DigitalTwins-CodeFirst-dotnet.sln
index 1eb76ec..9ad69d2 100644
--- a/DigitalTwins-CodeFirst-dotnet.sln
+++ b/DigitalTwins-CodeFirst-dotnet.sln
@@ -5,8 +5,6 @@ VisualStudioVersion = 16.0.30114.105
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Telstra.Twins", "Telstra.Twins\Telstra.Twins.csproj", "{C1F33CDE-6D9F-4533-97DA-4168525D48B7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Telstra.Twins.Common", "Telstra.Twins.Common\Telstra.Twins.Common.csproj", "{0B3217F0-CF2D-479B-ADB9-3FB58A1845DE}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{D8068994-FDA6-41F1-9196-59AADA892F11}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Telstra.Twins.Test", "Tests\Telstra.Twins.Test\Telstra.Twins.Test.csproj", "{4E5BF74D-C0EF-4D13-872C-F40FC347AD67}"
diff --git a/Telstra.Twins.Common/Telstra.Twins.Common.csproj b/Telstra.Twins.Common/Telstra.Twins.Common.csproj
deleted file mode 100644
index 4b3c2a1..0000000
--- a/Telstra.Twins.Common/Telstra.Twins.Common.csproj
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
- netcoreapp3.1
- false
- 1.0.1
- Telstra ADT Team
- Telstra
- Digital Twins Common
-
-
-
-
-
-
-
diff --git a/Telstra.Twins/Attributes/DigitalTwinAttribute.cs b/Telstra.Twins/Attributes/DigitalTwinAttribute.cs
index 48cdf65..ed820c2 100644
--- a/Telstra.Twins/Attributes/DigitalTwinAttribute.cs
+++ b/Telstra.Twins/Attributes/DigitalTwinAttribute.cs
@@ -1,7 +1,5 @@
#nullable enable
using System;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Serialization;
// ReSharper disable InconsistentNaming
namespace Telstra.Twins.Attributes
@@ -43,29 +41,11 @@ public string GetFullModelId(Type t)
/// The new parent model Id.
public string? ExtendsModelId { get; set; }
- ///
- /// Gets or sets the of the .
- ///
- /// The of the .
- public Type? NamingStrategyType
- {
- get => _namingStrategyType;
- set
- {
- _namingStrategyType = value;
- NamingStrategyInstance = null;
- }
- }
-
- private Type? _namingStrategyType;
- internal NamingStrategy? NamingStrategyInstance { get; set; }
-
///
/// Initializes a new instance of the class.
///
public DigitalTwinAttribute()
{
- NamingStrategyType = typeof(CamelCaseNamingStrategy);
}
}
}
diff --git a/Telstra.Twins.Common/AttributeCache.cs b/Telstra.Twins/Common/AttributeCache.cs
similarity index 100%
rename from Telstra.Twins.Common/AttributeCache.cs
rename to Telstra.Twins/Common/AttributeCache.cs
diff --git a/Telstra.Twins.Common/Guard.cs b/Telstra.Twins/Common/Guard.cs
similarity index 100%
rename from Telstra.Twins.Common/Guard.cs
rename to Telstra.Twins/Common/Guard.cs
diff --git a/Telstra.Twins.Common/StringHelpers.cs b/Telstra.Twins/Common/StringHelpers.cs
similarity index 100%
rename from Telstra.Twins.Common/StringHelpers.cs
rename to Telstra.Twins/Common/StringHelpers.cs
diff --git a/Telstra.Twins.Common/ThreadSafeList.cs b/Telstra.Twins/Common/ThreadSafeList.cs
similarity index 100%
rename from Telstra.Twins.Common/ThreadSafeList.cs
rename to Telstra.Twins/Common/ThreadSafeList.cs
diff --git a/Telstra.Twins/Core/ContextJsonConverter.cs b/Telstra.Twins/Core/ContextJsonConverter.cs
deleted file mode 100644
index 7524e0a..0000000
--- a/Telstra.Twins/Core/ContextJsonConverter.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-using System;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-
-namespace Telstra.Twins.Core
-{
- ///
- /// Converts a object to and from JSON.
- ///
- ///
- public class ContextJsonConverter : JsonConverter
- {
- ///
- public override Context ReadJson(JsonReader reader, Type objectType, Context existingValue, bool hasExistingValue, JsonSerializer serializer)
- {
- if (reader is null)
- {
- throw new ArgumentNullException(nameof(reader));
- }
-
- if (objectType is null)
- {
- throw new ArgumentNullException(nameof(objectType));
- }
-
- if (serializer is null)
- {
- throw new ArgumentNullException(nameof(serializer));
- }
-
- var context = hasExistingValue ? existingValue : new Context();
-
- string name;
- string language;
- if (reader.TokenType == JsonToken.String)
- {
- name = (string)reader.Value;
- language = null;
- }
- else
- {
- var o = JObject.Load(reader);
-
- var nameProperty = o.Property("name", StringComparison.OrdinalIgnoreCase);
- name = nameProperty?.Value?.ToString() ?? "http://schema.org";
-
- var languageProperty = o.Property("@language", StringComparison.OrdinalIgnoreCase);
- language = languageProperty?.Value?.ToString();
- }
-
-#pragma warning disable CA1062 // Validate arguments of public methods
- context.Name = name;
-#pragma warning restore CA1062 // Validate arguments of public methods
- context.Language = language;
- return context;
- }
-
- ///
- public override void WriteJson(JsonWriter writer, Context value, JsonSerializer serializer)
- {
- if (writer is null)
- {
- throw new ArgumentNullException(nameof(writer));
- }
-
- if (value is null)
- {
- throw new ArgumentNullException(nameof(value));
- }
-
- if (serializer is null)
- {
- throw new ArgumentNullException(nameof(serializer));
- }
-
- if (string.IsNullOrWhiteSpace(value.Language))
- {
- writer.WriteValue(value.Name);
- }
- else
- {
- writer.WriteStartObject();
- writer.WritePropertyName("name");
- writer.WriteValue(value.Name);
- writer.WritePropertyName("@language");
- writer.WriteValue(value.Language);
- writer.WriteEndObject();
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Telstra.Twins/DeviceTwin.cs b/Telstra.Twins/DeviceTwin.cs
deleted file mode 100644
index 99e1044..0000000
--- a/Telstra.Twins/DeviceTwin.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using System.Runtime.Serialization;
-using Telstra.Twins.Attributes;
-using Telstra.Twins.Models;
-
-namespace Telstra.Twins
-{
- [DigitalTwin(Version = 1, DisplayName = "Telstra Device")]
- public class Device : TwinBase
- {
- [TwinProperty]
- public string VendorId { get; set; }
- [TwinProperty]
- public string DeviceId { get; set; }
- }
-}
diff --git a/Telstra.Twins/DigitalTwinsClient.cs b/Telstra.Twins/DigitalTwinsClient.cs
deleted file mode 100644
index ab4fadb..0000000
--- a/Telstra.Twins/DigitalTwinsClient.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System;
-
-namespace Telstra.Twins
-{
- // Exploring this approach
- //public class DigitalTwinsClientFactory
- //{
- // public DigitalTwin GetTwin(string json) => new DigitalTwin(json);
- // public T GetTwin(string json) => (T)Activator.CreateInstance(typeof(T), new object[] { json });
- //}
-}
diff --git a/Telstra.Twins/EventRouteInfo.cs b/Telstra.Twins/EventRouteInfo.cs
deleted file mode 100644
index 743bd61..0000000
--- a/Telstra.Twins/EventRouteInfo.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-
-namespace Telstra.Twins
-{
- public sealed class EventRouteInfo
- {
- public string Id { get; set; } = Guid.NewGuid().ToString();
-
- public string RouteName { get; set; }
-
- public string EndPointName { get; set; }
-
- public string Filter { get; set; }
-
- }
-
-}
diff --git a/Telstra.Twins/GenericTwin.cs b/Telstra.Twins/GenericTwin.cs
index 1c8f17b..317b6f9 100644
--- a/Telstra.Twins/GenericTwin.cs
+++ b/Telstra.Twins/GenericTwin.cs
@@ -1,8 +1,5 @@
-using System;
-using System.Collections.Generic;
-using Newtonsoft.Json;
+using System.Collections.Generic;
using System.Text.Json;
-using System.Runtime.Serialization;
using System.Text.Json.Serialization;
using Telstra.Twins.Attributes;
@@ -13,7 +10,6 @@ public class GenericTwin : TwinBase
{
[TwinOnlyProperty]
[JsonPropertyName("Contents")]
- [JsonProperty("Contents")]
[System.Text.Json.Serialization.JsonExtensionData]
public IDictionary Contents { get; set; } = new Dictionary();
}
diff --git a/Telstra.Twins/Helpers/JsonHelpers.cs b/Telstra.Twins/Helpers/JsonHelpers.cs
index 533d3e3..c4012ac 100644
--- a/Telstra.Twins/Helpers/JsonHelpers.cs
+++ b/Telstra.Twins/Helpers/JsonHelpers.cs
@@ -1,5 +1,4 @@
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
+using Newtonsoft.Json.Linq;
namespace Telstra.Twins.Helpers
{
diff --git a/Telstra.Twins/Helpers/ReflectionHelpers.cs b/Telstra.Twins/Helpers/ReflectionHelpers.cs
index 57f459c..80728fd 100644
--- a/Telstra.Twins/Helpers/ReflectionHelpers.cs
+++ b/Telstra.Twins/Helpers/ReflectionHelpers.cs
@@ -1,5 +1,4 @@
-using Newtonsoft.Json;
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
@@ -152,11 +151,6 @@ public static string GetTwinPropertyName(this PropertyInfo p)
var customAttribute = p.GetCustomAttribute();
twinPropertyName = customAttribute?.Name;
}
- else if (Attribute.IsDefined(p, typeof(JsonPropertyAttribute)))
- {
- var customAttribute = p.GetCustomAttribute();
- twinPropertyName = customAttribute?.PropertyName;
- }
return twinPropertyName ?? p.Name.ToCamelCase();
}
@@ -172,8 +166,8 @@ public static string GetModelPropertyName(this PropertyInfo p)
}
else if (Attribute.IsDefined(p, typeof(TwinPropertyAttribute)))
{
- var modelOnlyPropertyAttribute = p.GetCustomAttribute();
- modelPropertyName = modelOnlyPropertyAttribute?.PropertyName;
+ var modelOnlyPropertyAttribute = p.GetCustomAttribute();
+ modelPropertyName = modelOnlyPropertyAttribute?.Name;
}
return modelPropertyName;
@@ -187,11 +181,6 @@ public static string GetJsonPropertyName(this PropertyInfo p)
{
var jsonNameAttribute = p.GetCustomAttribute();
jsonPropertyName = jsonNameAttribute?.Name;
- }
- else if (Attribute.IsDefined(p, typeof(JsonPropertyAttribute)))
- {
- var jsonNameAttribute = p.GetCustomAttribute();
- jsonPropertyName = jsonNameAttribute?.PropertyName;
}
return jsonPropertyName;
diff --git a/Telstra.Twins/ITwinsClient.cs b/Telstra.Twins/ITwinsClient.cs
deleted file mode 100644
index 70d67b5..0000000
--- a/Telstra.Twins/ITwinsClient.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-using Azure;
-using Azure.DigitalTwins.Core;
-using Telstra.Twins.Responses;
-
-namespace Telstra.Twins
-{
- public interface ITwinsClient
- {
- TwinsResponse> Query(string twinId, CancellationToken cancellationToken = default);
- Task>> QueryAsync(string twinId, CancellationToken cancellationToken = default);
-
- #region Twins
- Task> CreateTwinAsync(TwinBase twin, ETag? etag = null, CancellationToken cancellationToken = default);
- TwinsResponse CreateTwin(TwinBase twin, ETag? etag = null, CancellationToken cancellationToken = default);
- Task> GetTwinAsync(string twinId, CancellationToken cancellationToken = default);
- TwinsResponse GetTwin(string twinId, CancellationToken cancellationToken = default);
- Task UpdateTwinAsync(string twinId, JsonPatchDocument patch, ETag? etag = null, CancellationToken cancellationToken = default);
- TwinsResponse UpdateTwin(string twinId, JsonPatchDocument patch, ETag? etag = null, CancellationToken cancellationToken = default);
- Task DeleteTwinAsync(string twinId, ETag? etag = null, CancellationToken cancellationToken = default);
- TwinsResponse DeleteTwin(string twinId, ETag? etag = null, CancellationToken cancellationToken = default);
- #endregion // Twins
-
- Task> CreateRelationshipAsync(string sourceId, string targetId, string relationshipName, CancellationToken cancellationToken = default);
- TwinsResponse DeleteRelationship(string twinId, string relationshipId, CancellationToken cancellationToken = default);
- Task DeleteRelationshipAsync(string twinId, string relationshipId, CancellationToken cancellationToken = default);
- TwinsResponse> GetRelationships(string twinId, string relationshipName, CancellationToken cancellationToken = default);
- Task>> GetRelationshipsAsync(string twinId, string relationshipName, CancellationToken cancellationToken = default);
- //Pageable GetIncomingRelationships(string twinId, CancellationToken cancellationToken = default);
- //Task>> GetIncomingRelationshipsAsync(string twinId, CancellationToken cancellationToken = default);
-
- Task> CreateModelsAsync(List modelDTDL, CancellationToken cancellationToken = default);
- TwinsResponse CreateModels(List modelDTDL, CancellationToken cancellationToken = default);
- Task>> GetModelsAsync(List modelID, bool includeModelDefinitions, CancellationToken cancellationToken = default);
- TwinsResponse> GetModels(List modelID, bool includeModelDefinitions, CancellationToken cancellationToken = default);
- Task> GetModelAsync(string modelID, CancellationToken cancellationToken = default);
- TwinsResponse GetModel(string modelID, CancellationToken cancellationToken = default);
- Task DecommissionModelAsync(string modelID, CancellationToken cancellationToken = default);
- TwinsResponse DecommissionModel(string modelID, CancellationToken cancellationToken = default);
- Task DeleteModelAsync(string modelID, CancellationToken cancellationToken = default);
- TwinsResponse DeleteModel(string modelID, CancellationToken cancellationToken = default);
-
- Task> GetComponentAsync(string twinId, string componentPath, CancellationToken cancellationToken = default);
- TwinsResponse GetComponent(string twinId, string componentPath, CancellationToken cancellationToken = default);
- Task UpdateComponentAsync(string twinId, string componentPath, JsonPatchDocument patch, ETag? etag = null, CancellationToken cancellationToken = default);
-
- Task CreateEventRoute(EventRouteInfo eventRouteInfo);
-
- }
-}
\ No newline at end of file
diff --git a/Telstra.Twins/Models/Content.cs b/Telstra.Twins/Models/Content.cs
index 3ca22fa..0f83bfd 100644
--- a/Telstra.Twins/Models/Content.cs
+++ b/Telstra.Twins/Models/Content.cs
@@ -1,5 +1,4 @@
using System.Text.Json.Serialization;
-using Newtonsoft.Json;
namespace Telstra.Twins.Models
{
@@ -13,18 +12,14 @@ protected Content(string baseType, string name = null, object schema = null)
}
[System.Text.Json.Serialization.JsonIgnore]
- [Newtonsoft.Json.JsonIgnore]
public string BaseType { get; set; }
-
- [JsonProperty("name", Order = -2)]
+
[JsonPropertyName("name")]
public string Name { get; set; }
- [JsonProperty("schema", Order = -1)]
[JsonPropertyName("schema")]
public object Schema { get; set; }
- [JsonProperty("@type", Order = -3)]
[JsonPropertyName("@type")]
public virtual object Type { get { return BaseType; } }
}
diff --git a/Telstra.Twins/Models/ModelProperty.cs b/Telstra.Twins/Models/ModelProperty.cs
index 57a4e62..e908d41 100644
--- a/Telstra.Twins/Models/ModelProperty.cs
+++ b/Telstra.Twins/Models/ModelProperty.cs
@@ -1,6 +1,4 @@
-using System.Text.Json.Serialization;
-using Newtonsoft.Json;
-using Telstra.Twins.Serialization;
+using System.Text.Json.Serialization;
namespace Telstra.Twins.Models
{
@@ -15,7 +13,6 @@ public partial class ModelProperty : Content
[Newtonsoft.Json.JsonIgnore]
public string SemanticType { get; set; }
- [JsonProperty("@type", Order = -3)]
[JsonPropertyName("@type")]
public override object Type
{
@@ -27,7 +24,6 @@ public override object Type
}
}
- [JsonProperty("unit")]
[JsonPropertyName("unit")]
public string Unit { get; set; }
diff --git a/Telstra.Twins/Models/TwinMetadata.cs b/Telstra.Twins/Models/TwinMetadata.cs
index 4a5f7ad..865ada3 100644
--- a/Telstra.Twins/Models/TwinMetadata.cs
+++ b/Telstra.Twins/Models/TwinMetadata.cs
@@ -8,7 +8,6 @@ namespace Telstra.Twins.Models
public class TwinMetadata : DigitalTwinMetadata
{
// used to suppress model from component serialization
- [Newtonsoft.Json.JsonIgnore]
[JsonIgnore]
public bool IsComponent { get; set; } = false;
}
diff --git a/Telstra.Twins/Responses/AggregateTwinsResponse.ActionResult.cs b/Telstra.Twins/Responses/AggregateTwinsResponse.ActionResult.cs
deleted file mode 100644
index 0c15621..0000000
--- a/Telstra.Twins/Responses/AggregateTwinsResponse.ActionResult.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using System.Net;
-using System.Threading.Tasks;
-
-namespace Telstra.Twins.Responses
-{
- public partial class AggregateTwinsResponse : IActionResult
- {
- public async Task ExecuteResultAsync(ActionContext context) =>
- await Task.FromResult(new ObjectResult(this) { StatusCode = (int)(this.Success ? HttpStatusCode.OK : this.FirstError) });
- }
-}
\ No newline at end of file
diff --git a/Telstra.Twins/Responses/AggregateTwinsResponse.cs b/Telstra.Twins/Responses/AggregateTwinsResponse.cs
deleted file mode 100644
index 367db85..0000000
--- a/Telstra.Twins/Responses/AggregateTwinsResponse.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-
-namespace Telstra.Twins.Responses
-{
- public partial class AggregateTwinsResponse
- {
- public AggregateTwinsResponse() { }
- public AggregateTwinsResponse(TwinsResponse twinsResponse)
- {
- Responses.Add(twinsResponse);
- }
-
- public List Responses { get; } = new List();
-
- public bool Success => !Responses.Any(r => r.Status != HttpStatusCode.OK);
-
- public HttpStatusCode FirstError => Responses.FirstOrDefault(r => r.Status != HttpStatusCode.OK).Status;
- }
-
- public partial class AggregateTwinsResponse : AggregateTwinsResponse
- {
- public AggregateTwinsResponse() { }
- public AggregateTwinsResponse(TwinsResponse twinsResponse)
- {
- Responses.Add(twinsResponse);
- }
-
- public new List> Responses { get; } = new List>();
- }
-}
\ No newline at end of file
diff --git a/Telstra.Twins/Responses/ModelsResponse.cs b/Telstra.Twins/Responses/ModelsResponse.cs
deleted file mode 100644
index 2698a48..0000000
--- a/Telstra.Twins/Responses/ModelsResponse.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Telstra.Twins.Responses;
-
-namespace Telstra.Twins.API.Models
-{
- public class ModelsResponse : TwinsResponse
- {
- public string ModelId { get; }
- public string ModelDesc { get; }
- public string Result { get; }
- }
-}
diff --git a/Telstra.Twins/Responses/TwinsResponse.ActionResult.cs b/Telstra.Twins/Responses/TwinsResponse.ActionResult.cs
deleted file mode 100644
index 6c2af3b..0000000
--- a/Telstra.Twins/Responses/TwinsResponse.ActionResult.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using System.Threading.Tasks;
-
-namespace Telstra.Twins.Responses
-{
- public partial class TwinsResponse : IActionResult
- {
- public async Task ExecuteResultAsync(ActionContext context) =>
- await new ObjectResult(this) { StatusCode = (int)this.Status }
- .ExecuteResultAsync(context);
- }
- public partial class TwinsResponse : IActionResult
- {
- public new async Task ExecuteResultAsync(ActionContext context) =>
- await new ObjectResult(this.Status == System.Net.HttpStatusCode.OK ? (object)this.Data : this.Exception.error) { StatusCode = (int)this.Status }
- .ExecuteResultAsync(context);
- }
-}
\ No newline at end of file
diff --git a/Telstra.Twins/Responses/TwinsResponse.Factory.cs b/Telstra.Twins/Responses/TwinsResponse.Factory.cs
deleted file mode 100644
index a7b25ea..0000000
--- a/Telstra.Twins/Responses/TwinsResponse.Factory.cs
+++ /dev/null
@@ -1,142 +0,0 @@
-using Azure;
-using Newtonsoft.Json;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Net;
-using System.Runtime.CompilerServices;
-using Telstra.Twins.Exceptions;
-
-namespace Telstra.Twins.Responses
-{
- public partial class TwinsResponse
- {
- public static TwinsResponse Ok() =>
- new TwinsResponse()
- {
- Status = HttpStatusCode.OK
- };
-
- public static TwinsResponse Ok() =>
- new TwinsResponse()
- {
- Status = HttpStatusCode.OK,
- };
-
- public static TwinsResponse Ok(T t) =>
- new TwinsResponse()
- {
- Status = HttpStatusCode.OK,
- Data = t
- };
-
- public static TwinsResponse Ok(Response r) =>
- new TwinsResponse()
- {
- Status = HttpStatusCode.OK,
- Data = r.Value
- };
-
- public static TwinsResponse NotFound(string code, string msg = null) =>
- new TwinsResponse()
- {
- Status = HttpStatusCode.NotFound,
- Exception = RequestFailedExceptionContent.Create(msg)
- };
-
- public static TwinsResponse NotFound(string msg = null) =>
- new TwinsResponse()
- {
- Status = HttpStatusCode.NotFound
- };
-
-
- public static TwinsResponse FromResponse(Response r) =>
- new TwinsResponse()
- {
- Status = (HttpStatusCode)r.Status == HttpStatusCode.NoContent ? HttpStatusCode.OK : (HttpStatusCode)r.Status
- };
-
- public static TwinsResponse FromStringResponse(Response r)
- {
- var raw = r.GetRawResponse();
- var response = new TwinsResponse()
- {
- Status = (HttpStatusCode)raw.Status == HttpStatusCode.NoContent ? HttpStatusCode.OK : (HttpStatusCode)raw.Status,
- Data = JsonConvert.DeserializeObject(r.Value)
- };
-
- return response;
- }
-
- public static TwinsResponse Error(HttpStatusCode status, [CallerMemberName] string memberName = null)
- {
- return new TwinsResponse()
- {
- Status = status
- };
- }
-
- public static TwinsResponse Error(RequestFailedException e, [CallerMemberName] string memberName = null)
- {
- var content = RequestFailedExceptionContent.Create(e);
- Debug.WriteLine($"[{memberName}]: {content.error.message})");
- return new TwinsResponse()
- {
- Status = (HttpStatusCode)e.Status,
- Exception = content
- };
- }
-
- public static TwinsResponse Error(RequestFailedException e, [CallerMemberName] string memberName = null)
- {
- var content = RequestFailedExceptionContent.Create(e);
- var msg = string.Empty;
- if (content == null)
- msg = e.Message;
- else
- {
- var errors = new List() { content.error.message };
- if (content.error.details != null)
- errors.AddRange(content.error.details?.Select(d => d.message));
- msg = string.Join("\n", errors);
- }
- Debug.WriteLine($"[{memberName}]: {msg})");
- return new TwinsResponse()
- {
- Status = (HttpStatusCode)e.Status,
- Exception = content
- };
- }
-
- public static TwinsResponse Error(HttpStatusCode status, string msg)
- {
- var content = RequestFailedExceptionContent.Create(msg);
- return new TwinsResponse()
- {
- Status = status,
- Exception = content
- };
- }
-
- // NOTE - Value is dropped when casting to different type
- // intended use is for casting exceptions from TwinsReponse to expected return type
- public static TwinsResponse To(TwinsResponse from)
- {
- return new TwinsResponse()
- {
- Status = from.Status,
- Exception = from.Exception
- };
- }
- public static TwinsResponse To(TwinsResponse from, T value)
- {
- return new TwinsResponse()
- {
- Status = from.Status,
- Exception = from.Exception,
- Data = value
- };
- }
- }
-}
\ No newline at end of file
diff --git a/Telstra.Twins/Responses/TwinsResponse.cs b/Telstra.Twins/Responses/TwinsResponse.cs
deleted file mode 100644
index 3546879..0000000
--- a/Telstra.Twins/Responses/TwinsResponse.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Net;
-using Telstra.Twins.Exceptions;
-
-namespace Telstra.Twins.Responses
-{
- [Serializable]
- public partial class TwinsResponse
- {
- public HttpStatusCode Status { get; set; }
-
- public string ClientRequestId { get; set; }
-
- public RequestFailedExceptionContent Exception { get; set; }
- }
-
- [Serializable]
- public partial class TwinsResponse : TwinsResponse
- {
- public T Data { get; set; }
- }
-}
\ No newline at end of file
diff --git a/Telstra.Twins/Serialization/ComponentAwareContractResolver.cs b/Telstra.Twins/Serialization/ComponentAwareContractResolver.cs
deleted file mode 100644
index 12d0d16..0000000
--- a/Telstra.Twins/Serialization/ComponentAwareContractResolver.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using Newtonsoft.Json;
-using Newtonsoft.Json.Serialization;
-using System.Reflection;
-using Telstra.Twins.Models;
-
-namespace Telstra.Twins.Serialization
-{
- public class ComponentAwareContractResolver : DefaultContractResolver
- {
- protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
- {
- var prop = base.CreateProperty(member, memberSerialization);
- if (prop.DeclaringType == typeof(TwinMetadata) && prop.PropertyName == "$model")
- {
- prop.ShouldSerialize = instance => !(instance as TwinMetadata).IsComponent;
- }
-
- if (prop.PropertyName == "$type")
- prop.ShouldSerialize = instance => false;
-
- return prop;
- }
- }
-}
diff --git a/Telstra.Twins/Serialization/IntegerConverter.cs b/Telstra.Twins/Serialization/IntegerConverter.cs
deleted file mode 100644
index f998931..0000000
--- a/Telstra.Twins/Serialization/IntegerConverter.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using Newtonsoft.Json;
-using System;
-using System.Collections.Generic;
-
-namespace Telstra.Twins.Serialization
-{
- public class JsonIntegerConverter : JsonConverter
- {
-
- public override bool CanConvert(Type objectType)
- {
- return objectType == typeof(IDictionary);
- }
-
- public override bool CanWrite => false;
-
- public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
- {
- var result = new Dictionary();
- reader.Read();
-
- while (reader.TokenType == JsonToken.PropertyName)
- {
- var propertyName = (string)reader.Value;
- reader.Read();
- object value;
- if (reader.TokenType == JsonToken.Integer)
- {
- var temp = Convert.ToInt64(reader.Value);
- if (temp <= Byte.MaxValue && temp >= Byte.MinValue)
- value = Convert.ToByte(reader.Value);
- else if (temp >= Int16.MinValue && temp <= Int16.MaxValue)
- value = Convert.ToInt16(reader.Value);
- else if (temp >= Int32.MinValue && temp <= Int32.MaxValue)
- value = Convert.ToInt32(reader.Value);
- else
- value = temp;
- }
- else
- value = serializer.Deserialize(reader);
- result.Add(propertyName, value);
- reader.Read();
- }
-
- return result;
- }
-
- public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) => throw new NotImplementedException();
- }
-}
diff --git a/Telstra.Twins/Serialization/JsonDateTimeConverter.cs b/Telstra.Twins/Serialization/JsonDateTimeConverter.cs
deleted file mode 100644
index 37f3678..0000000
--- a/Telstra.Twins/Serialization/JsonDateTimeConverter.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Globalization;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace Telstra.Twins.Serialization
-{
- public class JsonDateTimeConverter : JsonConverter
- {
- public override DateTimeOffset Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
- {
- var date = reader.GetString();
- DateTimeOffset result;
-
- // First see if it's in ISO format
- if (DateTimeOffset.TryParse(date, out result))
- return result;
-
- // could be in American format when calling GetDigitalTwin
- if (DateTimeOffset.TryParseExact(date, "MM/dd/yyyy HH:mm:ss", CultureInfo.CurrentCulture, DateTimeStyles.AssumeUniversal, out result))
- return result;
-
- throw new FormatException($"DateTimeOffset not in correct format: {date}");
- }
-
- public override void Write(Utf8JsonWriter writer, DateTimeOffset value, JsonSerializerOptions options)
- {
- writer.WriteStringValue(value.ToString());
- }
- }
-}
diff --git a/Telstra.Twins/Serialization/NewtonsoftJsonDateTimeConverter.cs b/Telstra.Twins/Serialization/NewtonsoftJsonDateTimeConverter.cs
deleted file mode 100644
index 010acae..0000000
--- a/Telstra.Twins/Serialization/NewtonsoftJsonDateTimeConverter.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using Newtonsoft.Json;
-using System;
-using System.Diagnostics.CodeAnalysis;
-using System.Globalization;
-
-namespace Telstra.Twins.Serialization
-{
- public class NewtonsoftJsonDateTimeConverter : JsonConverter
- {
- public override DateTimeOffset ReadJson(JsonReader reader, Type objectType, [AllowNull] DateTimeOffset existingValue, bool hasExistingValue, JsonSerializer serializer)
- {
- var date = reader.ReadAsString();
- DateTimeOffset result;
-
- // First see if it's in ISO format
- if (DateTimeOffset.TryParse(date, out result))
- return result;
-
- // could be in American format when calling GetDigitalTwin
- if (DateTimeOffset.TryParseExact(date, "MM/dd/yyyy HH:mm:ss", CultureInfo.CurrentCulture, DateTimeStyles.AssumeUniversal, out result))
- return result;
-
- return existingValue;
- }
-
-
- public override void WriteJson(JsonWriter writer, [AllowNull] DateTimeOffset value, JsonSerializer serializer) =>
- writer.WriteValue(value.ToString());
- }
-}
diff --git a/Telstra.Twins/ServiceCollectionExtensions.cs b/Telstra.Twins/ServiceCollectionExtensions.cs
deleted file mode 100644
index cc9dc3b..0000000
--- a/Telstra.Twins/ServiceCollectionExtensions.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using MediatR;
-using Microsoft.Extensions.DependencyInjection;
-
-namespace Telstra.Twins
-{
- public static class ServiceCollectionExtensions
- {
- public static IServiceCollection RegisterMediator(this IServiceCollection services, params Assembly[] assemblies)
- {
- return services.AddMediatR(assemblies);
- }
- }
-}
\ No newline at end of file
diff --git a/Telstra.Twins/Telemetry.cs b/Telstra.Twins/Telemetry.cs
deleted file mode 100644
index 17298b3..0000000
--- a/Telstra.Twins/Telemetry.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-
-namespace Telstra.Twins
-{
- public class Telemetry
- {
- public T Value { get; private set; }
- public DateTimeOffset Timestamp { get; private set; }
- public void Update(T value)
- {
- this.Value = value;
- this.Timestamp = DateTimeOffset.UtcNow;
- }
- }
-}
\ No newline at end of file
diff --git a/Telstra.Twins/Telstra.Twins.csproj b/Telstra.Twins/Telstra.Twins.csproj
index da1a604..35db41b 100644
--- a/Telstra.Twins/Telstra.Twins.csproj
+++ b/Telstra.Twins/Telstra.Twins.csproj
@@ -39,8 +39,4 @@
-
-
-
-
diff --git a/Telstra.Twins/TwinBase.Serializable.cs b/Telstra.Twins/TwinBase.Serializable.cs
index 0a0220b..5ad45f8 100644
--- a/Telstra.Twins/TwinBase.Serializable.cs
+++ b/Telstra.Twins/TwinBase.Serializable.cs
@@ -4,7 +4,6 @@
using System.Linq;
using System.Text.Json.Serialization;
using Azure.DigitalTwins.Core;
-using Newtonsoft.Json;
using Telstra.Twins.Attributes;
using Telstra.Twins.Helpers;
using Telstra.Twins.Common;
@@ -163,7 +162,6 @@ public string ModelId
[TwinOnlyProperty(DigitalTwinsJsonPropertyNames.DigitalTwinId)]
[JsonPropertyName(DigitalTwinsJsonPropertyNames.DigitalTwinId)]
- [JsonProperty(DigitalTwinsJsonPropertyNames.DigitalTwinId)]
public string TwinId { get; set; }
///
@@ -171,12 +169,10 @@ public string ModelId
///
[TwinOnlyProperty(DigitalTwinsJsonPropertyNames.DigitalTwinETag)]
[JsonPropertyName(DigitalTwinsJsonPropertyNames.DigitalTwinETag)]
- [JsonProperty(DigitalTwinsJsonPropertyNames.DigitalTwinETag)]
public string ETag { get; set; }
[TwinOnlyProperty(DigitalTwinsJsonPropertyNames.DigitalTwinMetadata)]
[JsonPropertyName(DigitalTwinsJsonPropertyNames.DigitalTwinMetadata)]
- [JsonProperty(DigitalTwinsJsonPropertyNames.DigitalTwinMetadata)]
public virtual TwinMetadata Metadata { get; set; } = new TwinMetadata();
private void ReadAttributeInfo()
diff --git a/Telstra.Twins/TwinsClient.cs b/Telstra.Twins/TwinsClient.cs
deleted file mode 100644
index 2286484..0000000
--- a/Telstra.Twins/TwinsClient.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-using Azure;
-using Azure.DigitalTwins.Core;
-using Telstra.Twins.Responses;
-
-namespace Telstra.Twins
-{
- public abstract class TwinsClient : ITwinsClient
- {
- #region Twins
- public abstract Task> CreateTwinAsync(TwinBase twin, ETag? etag = null, CancellationToken cancellationToken = default);
- public abstract TwinsResponse CreateTwin(TwinBase twin, ETag? etag = null, CancellationToken cancellationToken = default);
- public abstract TwinsResponse> Query(string query, CancellationToken cancellationToken = default);
- public abstract Task>> QueryAsync(string query, CancellationToken cancellationToken = default);
- public abstract Task> GetTwinAsync(string twinId, CancellationToken cancellationToken = default);
- public abstract TwinsResponse GetTwin(string twinId, CancellationToken cancellationToken = default);
- public abstract Task UpdateTwinAsync(string twinId, JsonPatchDocument patch, ETag? etag = null, CancellationToken cancellationToken = default);
- public abstract TwinsResponse UpdateTwin(string twinId, JsonPatchDocument patch, ETag? etag = null, CancellationToken cancellationToken = default);
- public abstract Task DeleteTwinAsync(string twinId, ETag? etag = null,
- CancellationToken cancellationToken = default);
- public abstract TwinsResponse DeleteTwin(string twinId, ETag? etag = null,
- CancellationToken cancellationToken = default);
- #endregion // Twins
- public abstract Task> CreateRelationshipAsync(string sourceId, string targetId, string relationshipName, CancellationToken cancellationToken = default);
- public abstract TwinsResponse DeleteRelationship(string twinId, string relationshipId, CancellationToken cancellationToken = default);
- public abstract Task DeleteRelationshipAsync(string twinId, string relationshipId, CancellationToken cancellationToken = default);
-
- public abstract Task>> GetRelationshipsAsync(string twinId, string relationshipName, CancellationToken cancellationToken = default);
- public abstract TwinsResponse> GetRelationships(string twinId, string relationshipName, CancellationToken cancellationToken = default);
- //public abstract TwinsResponse> GetIncomingRelationships(string twinId, CancellationToken cancellationToken = default);
- //public abstract AsyncTwinsResponse> GetIncomingRelationshipsAsync(string twinId, CancellationToken cancellationToken = default);
-
- public abstract Task> CreateModelsAsync(List modelDTDL, CancellationToken cancellationToken = default);
- public abstract TwinsResponse CreateModels(List modelDTDL, CancellationToken cancellationToken = default);
- public abstract Task>> GetModelsAsync(List modelIDs, bool includeModelDefinitions, CancellationToken cancellationToken = default);
- public abstract TwinsResponse> GetModels(List modelIDs, bool includeModelDefinitions, CancellationToken cancellationToken = default);
- public abstract Task DecommissionModelAsync(string modelID, CancellationToken cancellationToken = default);
- public abstract TwinsResponse DecommissionModel(string modelID, CancellationToken cancellationToken = default);
- public abstract Task DeleteModelAsync(string modelID, CancellationToken cancellationToken = default);
- public abstract TwinsResponse DeleteModel(string modelID, CancellationToken cancellationToken = default);
- public abstract Task> GetModelAsync(string modelID, CancellationToken cancellationToken = default);
- public abstract TwinsResponse GetModel(string modelID, CancellationToken cancellationToken = default);
-
- public abstract Task> GetComponentAsync(string twinId, string componentPath, CancellationToken cancellationToken = default);
- public abstract TwinsResponse GetComponent(string twinId, string componentPath, CancellationToken cancellationToken = default);
-
- public abstract Task UpdateComponentAsync(string twinId, string componentPath, JsonPatchDocument patch, ETag? etag = null,
- CancellationToken cancellationToken = default);
-
- public abstract Task CreateEventRoute(EventRouteInfo eventRouteInfo);
- }
-}
\ No newline at end of file
diff --git a/Telstra.Twins/Utils/TwinClassGenerator/TwinClassGenerator.cs b/Telstra.Twins/Utils/TwinClassGenerator/TwinClassGenerator.cs
index 3d215a4..8fab2d2 100644
--- a/Telstra.Twins/Utils/TwinClassGenerator/TwinClassGenerator.cs
+++ b/Telstra.Twins/Utils/TwinClassGenerator/TwinClassGenerator.cs
@@ -1,12 +1,9 @@
-using Azure.Storage.Blobs.Models;
-using Microsoft.Extensions.FileProviders;
+
using Newtonsoft.Json;
-using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
-using System.Reflection.Metadata;
using System.Text;
using System.Text.RegularExpressions;
using Telstra.Twins.Common;
diff --git a/Tests/Telstra.Twins.Test/SerializationTests.cs b/Tests/Telstra.Twins.Test/SerializationTests.cs
index 8cbbc13..3becc55 100644
--- a/Tests/Telstra.Twins.Test/SerializationTests.cs
+++ b/Tests/Telstra.Twins.Test/SerializationTests.cs
@@ -1,17 +1,10 @@
#nullable enable
using System;
using System.Collections.Generic;
-using System.Runtime.Serialization;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-using Azure.DigitalTwins.Core;
-using Telstra.Twins.Attributes;
using Telstra.Twins.Core;
-using Telstra.Twins.Models;
using Telstra.Twins.Services;
using Xunit;
using Xunit.Abstractions;
-using FluentAssertions;
namespace Telstra.Twins.Test
{