// Add object
        public ColourBase AddColour(ColourAdd newItem)
        {
            // Ensure that we can continue
            if (newItem == null)
            {
                return(null);
            }
            else
            {
                // Add the new object, by mapping from the 'resource model' object
                Colour addedItem = Mapper.Map <Colour>(newItem);

                ds.Colours.Add(addedItem);
                ds.SaveChanges();

                // Return the now-fully-configured 'resource model' version of the object
                return(Mapper.Map <ColourBase>(addedItem));
            }
        }
        // Add object
        public ColourBase AddColour(ColourAdd newItem)
        {
            // Ensure that we can continue
            if (newItem == null)
            {
                return null;
            }
            else
            {
                // Add the new object, by mapping from the 'resource model' object
                Colour addedItem = Mapper.Map<Colour>(newItem);

                ds.Colours.Add(addedItem);
                ds.SaveChanges();

                // Return the now-fully-configured 'resource model' version of the object
                return Mapper.Map<ColourBase>(addedItem);
            }
        }
        // POST: api/Colours
        // Notice the IHttpActionResult return type and the FromBody attribute
        public IHttpActionResult Post([FromBody] ColourAdd newItem)
        {
            // Ensure that the URI is clean (and does not have an id parameter)
            if (Request.GetRouteData().Values["id"] != null)
            {
                return(BadRequest("Invalid request URI"));
            }

            // Ensure that a "newItem" is in the entity body
            if (newItem == null)
            {
                return(BadRequest("Must send an entity body with the request"));
            }

            // Ensure that we can use the incoming data
            if (ModelState.IsValid)
            {
                // Attempt to add the new object
                var addedItem = m.AddColour(newItem);

                // Notice the ApiController convenience methods
                if (addedItem == null)
                {
                    // HTTP 400
                    return(BadRequest("Cannot add the object"));
                }
                else
                {
                    // HTTP 201 with the new object in the entity body
                    // Notice how to create the URI for the Location header

                    var uri = Url.Link("DefaultApi", new { id = addedItem.Id });
                    return(Created <ColourBase>(uri, addedItem));
                }
            }
            else
            {
                // HTTP 400
                return(BadRequest(ModelState));
            }
        }