blob: 479f98c93a594f4f36c3ca404c240bd891c0efe7 [file] [log] [blame]
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;
}
}
}