public IActionResult GetObjectDefinitions()
        {
            IActionResult result;

            ServiceModels.ObjectDefinitions response = new ServiceModels.ObjectDefinitions();
            string rootUrl = Request.GetRootUrl();

            response.AddLink("add", string.Concat(rootUrl, "/objecttypes/definitions"), null);
            int organisationID = User.GetOrganisationID();
            List <Model.ObjectDefinition> objectDefinitions = BusinessLogicFactory.ObjectDefinitions.GetObjectDefinitions(organisationID);

            response.PageInfo = Request.GetPageInfo(objectDefinitions.Count);
            int endIndex = response.PageInfo.StartIndex + response.PageInfo.ItemsCount;

            for (int index = response.PageInfo.StartIndex; index < endIndex; index++)
            {
                ServiceModels.ObjectDefinition objectDefinition = new ServiceModels.ObjectDefinition(objectDefinitions[index]);
                if (organisationID == 0)
                {
                    objectDefinition.AddSelfLink(string.Concat(rootUrl, "/objecttypes/definitions/", objectDefinition.ObjectDefinitionID), true, true);
                }
                else
                {
                    objectDefinition.AddSelfLink(string.Concat(rootUrl, "/objecttypes/definitions/", objectDefinition.ObjectDefinitionID), objectDefinitions[index].OrganisationID.HasValue, objectDefinitions[index].OrganisationID.HasValue);
                }
                response.Add(objectDefinition);
            }
            result = Request.GetObjectResult(response);
            return(result);
        }
        private IActionResult AddObjectDefinitions(ServiceModels.ObjectDefinitions objectDefinitions)
        {
            IActionResult result;

            if (objectDefinitions == null || objectDefinitions.Items == null)
            {
                result = new BadRequestResult();
            }
            else
            {
                List <Model.ObjectDefinition> items = new List <Model.ObjectDefinition>();
                foreach (ServiceModels.ObjectDefinition item in objectDefinitions.Items)
                {
                    Model.ObjectDefinition objectDefinition = item.ToModel();
                    objectDefinition.OrganisationID = User.GetOrganisationID();
                    items.Add(objectDefinition);
                }
                try
                {
                    BusinessLogicFactory.ObjectDefinitions.SaveObjectDefinitions(items, Model.TObjectState.Add);
                    string           rootUrl  = Request.GetRootUrl();
                    ResourcesCreated response = new ResourcesCreated();
                    foreach (Model.ObjectDefinition item in items)
                    {
                        ResourceCreated resourceCreated = new ResourceCreated();
                        resourceCreated.ID = StringUtils.GuidEncode(item.ObjectDefinitionID);
                        resourceCreated.AddSelfLink(string.Concat(rootUrl, "/objecttypes/definitions/", resourceCreated.ID), false, false);
                        response.Add(resourceCreated);
                    }
                    result = Request.GetObjectResult(response, System.Net.HttpStatusCode.Created);
                }
                catch (ConflictException)
                {
                    result = new StatusCodeResult((int)HttpStatusCode.Conflict);
                }
            }
            return(result);
        }
        public IActionResult AddObjectDefinitions()
        {
            IActionResult result;

            try
            {
                if (Request.ContentType.StartsWith(typeof(ServiceModels.ObjectDefinitions).GetContentType()))
                {
                    ServiceModels.ObjectDefinitions objectDefinitions = Request.Deserialise <ServiceModels.ObjectDefinitions>();
                    result = AddObjectDefinitions(objectDefinitions);
                }
                else
                {
                    ObjectDefinition objectDefinition = Request.Deserialise <ObjectDefinition>();
                    result = AddObjectDefinition(objectDefinition);
                }
            }
            catch (BadRequestException)
            {
                result = new BadRequestResult();
            }

            return(result);
        }
 public IActionResult GetObjectDefinitions()
 {
     IActionResult result;
     ServiceModels.ObjectDefinitions response = new ServiceModels.ObjectDefinitions();
     string rootUrl = Request.GetRootUrl();
     response.AddLink("add", string.Concat(rootUrl, "/objecttypes/definitions"), null);
     int organisationID = User.GetOrganisationID();
     List<Model.ObjectDefinition> objectDefinitions = BusinessLogicFactory.ObjectDefinitions.GetObjectDefinitions(organisationID);
     response.PageInfo = Request.GetPageInfo(objectDefinitions.Count);
     int endIndex = response.PageInfo.StartIndex + response.PageInfo.ItemsCount;
     for (int index = response.PageInfo.StartIndex; index < endIndex; index++)
     {
         ServiceModels.ObjectDefinition objectDefinition = new ServiceModels.ObjectDefinition(objectDefinitions[index]);
         if (organisationID == 0)
             objectDefinition.AddSelfLink(string.Concat(rootUrl, "/objecttypes/definitions/", objectDefinition.ObjectDefinitionID), true, true);
         else
             objectDefinition.AddSelfLink(string.Concat(rootUrl, "/objecttypes/definitions/", objectDefinition.ObjectDefinitionID), objectDefinitions[index].OrganisationID.HasValue, objectDefinitions[index].OrganisationID.HasValue);
         response.Add(objectDefinition);
     }
     result = Request.GetObjectResult(response);
     return result;
 }