| using oneM2MClient.Client; |
| using oneM2MClient.Utils; |
| using BaSys40.Utils.ResultHandling; |
| using System; |
| using System.Collections.Generic; |
| using static oneM2MClient.oneM2M; |
| |
| namespace oneM2MClient.Resources |
| { |
| public static class CSEBase |
| { |
| public static Result<Response> Retrieve(IClient client, Request request) |
| { return (Process(client, request, Operation.RETRIEVE)); } |
| public static Result<Response> Discover(IClient client, Request request, FilterUsage? filter, ResultContent? resultContent, List<string> labels = null) |
| { |
| if(filter.HasValue) |
| request.FilterUsage(filter.Value); |
| if(resultContent.HasValue) |
| request.ResultContent(resultContent.Value); |
| |
| if (labels != null) |
| request.AddFilterLabels(labels); |
| |
| return (Process(client, request, Operation.RETRIEVE)); |
| } |
| |
| public static Result<Response> Process(IClient client, Request request, Operation operation) |
| { |
| return CRUD(client, request, operation, ResourceType.NoResource, null); |
| } |
| |
| public static Result<Response> CRUD(IClient client, Request request, Operation operation, ResourceType resourceType, object primitiveContent) |
| { |
| Result<Response> response = null; |
| try |
| { |
| if (Helper.IsNullObjects(client, request)) |
| return new Result<Response>(false, new Message(MessageType.Error, "Client or request object is null", null)); |
| |
| request.Operation(operation); |
| request.ResourceType(resourceType); |
| |
| if(primitiveContent != null) |
| request.AddPrimitiveContent(primitiveContent); |
| |
| if(!client.IsAlive) |
| client.Start(); |
| |
| response = client.Send(request); |
| |
| return response; |
| } |
| catch (Exception e) |
| { |
| return Helper.HandleResultWithException(response, e); |
| } |
| finally |
| { |
| request?.ClearRequest(); |
| } |
| } |
| } |
| } |