public IActionResult AddObjectInstance(string clientID, string definitionID) { IActionResult result; Guid definitionIDGuid, clientIDGuid; if (StringUtils.GuidTryDecode(definitionID, out definitionIDGuid) && StringUtils.GuidTryDecode(clientID, out clientIDGuid)) { Model.Client client = BusinessLogicFactory.Clients.GetClient(clientIDGuid); int organisationID = User.GetOrganisationID(); Model.ObjectDefinition definition = BusinessLogicFactory.ObjectDefinitions.GetObjectDefinition(organisationID, definitionIDGuid); if (definition != null) { // TODO: add error handling around deserialisation. // TODO: could lwm2mObject.instanceID be an optional parameter, allowing a web client to specify? Model.Object lwm2mObject = new ServiceModels.ObjectInstance(definition, Request).Resource; BusinessLogicFactory.Clients.SaveObject(client, lwm2mObject, Model.TObjectState.Add); ServiceModels.ResourceCreated response = new ServiceModels.ResourceCreated(); response.ID = lwm2mObject.InstanceID; string rootUrl = Request.GetRootUrl(); response.AddSelfLink(string.Concat(rootUrl, "/clients/", clientID, "/objecttypes/", definitionID, "/instances/", response.ID), true, true); result = Request.GetObjectResult(response, System.Net.HttpStatusCode.Created); } else { result = new BadRequestResult(); } } else { result = new BadRequestResult(); } return(result); }
public IActionResult AddObjectInstance(string clientID, string definitionID) { IActionResult result; Guid definitionIDGuid, clientIDGuid; if (StringUtils.GuidTryDecode(definitionID, out definitionIDGuid) && StringUtils.GuidTryDecode(clientID, out clientIDGuid)) { Model.Client client = BusinessLogicFactory.Clients.GetClient(clientIDGuid); int organisationID = User.GetOrganisationID(); Model.ObjectDefinition definition = BusinessLogicFactory.ObjectDefinitions.GetObjectDefinition(organisationID, definitionIDGuid); if (definition != null) { // TODO: add error handling around deserialisation. // TODO: could lwm2mObject.instanceID be an optional parameter, allowing a web client to specify? Model.Object lwm2mObject = new ServiceModels.ObjectInstance(definition, Request).Resource; BusinessLogicFactory.Clients.SaveObject(client, lwm2mObject, Model.TObjectState.Add); ServiceModels.ResourceCreated response = new ServiceModels.ResourceCreated(); response.ID = lwm2mObject.InstanceID; string rootUrl = Request.GetRootUrl(); response.AddSelfLink(string.Concat(rootUrl, "/clients/", clientID, "/objecttypes/", definitionID, "/instances/", response.ID), true, true); result = Request.GetObjectResult(response, System.Net.HttpStatusCode.Created); } else { result = new BadRequestResult(); } } else { result = new BadRequestResult(); } return result; }
public IActionResult AddSubscription(string clientID, string definitionID, string instanceID, [FromBody] ServiceModels.Subscription subscription) { IActionResult result; if (subscription != null) { Model.Subscription item = subscription.ToModel(Request, clientID, definitionID, instanceID); item.OrganisationID = User.GetOrganisationID(); item.SubscriptionID = Guid.NewGuid(); if (!ExistingSubscriptionMatches(item)) { BusinessLogicFactory.Subscriptions.SaveSubscription(item, Model.TObjectState.Add); ServiceModels.ResourceCreated response = new ServiceModels.ResourceCreated(); response.ID = StringUtils.GuidEncode(item.SubscriptionID); string rootUrl = Request.GetRootUrl(); response.AddSelfLink(string.Concat(rootUrl, "/subscriptions/", response.ID), false, false); result = Request.GetObjectResult(response, System.Net.HttpStatusCode.Created); } else { result = new StatusCodeResult((int)System.Net.HttpStatusCode.Conflict); } } else { result = new BadRequestResult(); } return(result); }
public IActionResult AddSubscription(string clientID, string definitionID, string instanceID, [FromBody] ServiceModels.Subscription subscription) { IActionResult result; if (subscription != null) { Model.Subscription item = subscription.ToModel(Request, clientID, definitionID, instanceID); item.OrganisationID = User.GetOrganisationID(); item.SubscriptionID = Guid.NewGuid(); if (!ExistingSubscriptionMatches(item)) { BusinessLogicFactory.Subscriptions.SaveSubscription(item, Model.TObjectState.Add); ServiceModels.ResourceCreated response = new ServiceModels.ResourceCreated(); response.ID = StringUtils.GuidEncode(item.SubscriptionID); string rootUrl = Request.GetRootUrl(); response.AddSelfLink(string.Concat(rootUrl, "/subscriptions/", response.ID), false, false); result = Request.GetObjectResult(response, System.Net.HttpStatusCode.Created); } else { result = new StatusCodeResult((int)System.Net.HttpStatusCode.Conflict); } } else { result = new BadRequestResult(); } return result; }