Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
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;
        }
Ejemplo n.º 5
0
 public ObjectInstanceAction(ObjectInstance instance)
 {
     _Instance = instance;
 }