private void AddObjectInstanceLinks(Microsoft.AspNetCore.Http.HttpRequest request, Model.ObjectDefinition objectDefinition, ObjectInstance instance, string instanceUrl) { instance.AddSelfLink(instanceUrl, true, true); instance.AddLink<ServiceModels.Subscriptions>(request, "subscriptions", string.Concat(instanceUrl, "/subscriptions")); string rootUrl = request.GetRootUrl(); instance.AddLink<ObjectDefinition>(Request, "definition", string.Concat(rootUrl, "/objecttypes/definitions/", StringUtils.GuidEncode(objectDefinition.ObjectDefinitionID))); }
public IActionResult GetObjectInstances(string clientID, string definitionID) { IActionResult result; Guid definitionIDGuid, clientIDGuid; if (StringUtils.GuidTryDecode(definitionID, out definitionIDGuid) && StringUtils.GuidTryDecode(clientID, out clientIDGuid)) { int organisationID = User.GetOrganisationID(); Model.ObjectDefinition definition = BusinessLogicFactory.ObjectDefinitions.GetObjectDefinition(organisationID, definitionIDGuid); if (definition != null) { Model.Client client = BusinessLogicFactory.Clients.GetClient(clientIDGuid); if (client != null) { List<Model.Object> instances = BusinessLogicFactory.Clients.GetObjects(client, definition.ObjectDefinitionID); if (instances != null) { ObjectInstances response = new ObjectInstances(definition); string rootUrl = Request.GetRootUrl(); string instancesUrl = string.Concat(rootUrl, "/clients/", clientID, "/objecttypes/", StringUtils.GuidEncode(definition.ObjectDefinitionID), "/instances"); response.AddLink("add", instancesUrl, ""); response.PageInfo = Request.GetPageInfo(instances.Count); int endIndex = response.PageInfo.StartIndex + response.PageInfo.ItemsCount; for (int index = response.PageInfo.StartIndex; index < endIndex; index++) { ObjectInstance instance = new ObjectInstance(definition, instances[index]); string instanceUrl = string.Concat(instancesUrl, "/", instances[index].InstanceID); AddObjectInstanceLinks(Request, definition, instance, instanceUrl); response.Add(instance); } result = response.GetAction(); } else { result = new NotFoundResult(); } } else { result = new NotFoundResult(); } } else { result = new NotFoundResult(); } } else { result = new BadRequestResult(); } return result; }
private void ToJson(Stream stream) { using (JsonWriter jsonWriter = new JsonWriter(stream)) { jsonWriter.WriteObject(); jsonWriter.WriteMember("Items"); jsonWriter.WriteArray(); jsonWriter.WriteObject(); LinkExtensions.Serialise(GetLinks(), jsonWriter); jsonWriter.WriteMember("TimeTriggered"); jsonWriter.WriteValue(_WebhookNotification.TimeTriggered); jsonWriter.WriteMember("SubscriptionType"); jsonWriter.WriteValue(_WebhookNotification.SubscriptionType); if (_WebhookNotification.ObjectDefinition != null) { jsonWriter.WriteMember("Value"); ObjectInstance instance = new ObjectInstance(_WebhookNotification.ObjectDefinition, _WebhookNotification.ChangedObject); instance.Links = new List<Link>(); instance.Serialise(jsonWriter); } jsonWriter.WriteEndObject(); jsonWriter.WriteEndArray(); jsonWriter.WriteEndObject(); jsonWriter.Flush(); } stream.Position = 0; }
private void ToXml(Stream stream) { XmlWriterSettings settings = new XmlWriterSettings(); settings.OmitXmlDeclaration = true; settings.CheckCharacters = false; using (XmlWriter xmlWriter = XmlWriter.Create(stream, settings)) { xmlWriter.WriteStartElement("Notifications"); xmlWriter.WriteStartElement("Items"); xmlWriter.WriteStartElement("Notification"); LinkExtensions.Serialise(GetLinks(), xmlWriter); Model.XmlHelper.WriteElement(xmlWriter, "TimeTriggered", _WebhookNotification.TimeTriggered); Model.XmlHelper.WriteElement(xmlWriter, "SubscriptionType", _WebhookNotification.SubscriptionType); if (_WebhookNotification.ObjectDefinition != null) { xmlWriter.WriteStartElement("Value"); ObjectInstance instance = new ObjectInstance(_WebhookNotification.ObjectDefinition, _WebhookNotification.ChangedObject); instance.Links = new List<Link>(); instance.Serialise(xmlWriter); xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); // Notification xmlWriter.WriteEndElement(); // Items xmlWriter.WriteEndElement(); // Notifications xmlWriter.Flush(); } stream.Position = 0; }
public ObjectInstanceAction(ObjectInstance instance) { _Instance = instance; }