| using oneM2MClient.Client; |
| using oneM2MClient.Resources; |
| using oneM2MClient.Utils.ResultHandling; |
| |
| namespace oneM2MClient.Utils |
| { |
| public static class CrudExtensions |
| { |
| public static Result<Response> Create(this IResource convenientResource, IClient client, Request request) |
| { |
| Result<Response> result = CSEBase.CRUD(client, request, oneM2M.Operation.CREATE, (oneM2M.ResourceType)convenientResource.ResourceType, Helper.ConvertToBaseResource(convenientResource)); |
| if(result.Entity != null && result.Entity.GetResource() != null) |
| convenientResource.ConvertToConvenientResource(result.Entity.GetResource()); |
| return result; |
| } |
| public static Result<Response> Retrieve(this IResource convenientResource, IClient client, Request request) |
| { |
| if (!request.EndpointAddress.Contains(convenientResource.ResourceName)) |
| request.SetPath(request.EndpointAddress, convenientResource.ResourceName); |
| |
| Result<Response> result = CSEBase.CRUD(client, request, oneM2M.Operation.RETRIEVE, oneM2M.ResourceType.NoResource, Helper.ConvertToBaseResource(convenientResource)); |
| if (result.Entity != null && result.Entity.GetResource() != null) |
| convenientResource.ConvertToConvenientResource(result.Entity.GetResource()); |
| return result; |
| } |
| public static Result<Response> Update(this IResource convenientResource, IClient client, Request request) |
| { |
| if (!request.EndpointAddress.Contains(convenientResource.ResourceName)) |
| request.SetPath(request.EndpointAddress, convenientResource.ResourceName); |
| |
| Result<Response> result = CSEBase.CRUD(client, request, oneM2M.Operation.UPDATE, oneM2M.ResourceType.NoResource, Helper.ConvertToBaseResource(convenientResource)); |
| if (result.Entity != null && result.Entity.GetResource() != null) |
| convenientResource.ConvertToConvenientResource(result.Entity.GetResource()); |
| return result; |
| } |
| public static Result<Response> Delete(this IResource convenientResource, IClient client, Request request) |
| { |
| if (!request.EndpointAddress.Contains(convenientResource.ResourceName)) |
| request.SetPath(request.EndpointAddress, convenientResource.ResourceName); |
| |
| Result<Response> result = CSEBase.CRUD(client, request, oneM2M.Operation.DELETE, oneM2M.ResourceType.NoResource, null); |
| if (result.Entity != null && result.Entity.GetResource() != null) |
| convenientResource.ConvertToConvenientResource(result.Entity.GetResource()); |
| return result; |
| } |
| |
| |
| } |
| } |