public HttpResponseMessage  Insert([FromBody] AdventureWorks.Model.Requests.PersonInsertRequest request)
        {
            var result   = Service.Insert(request);
            var response = Request.CreateResponse <AdventureWorks.Model.Person>(HttpStatusCode.Created, result);

            return(response);
        }
        public override AdventureWorks.Model.Person Insert(AdventureWorks.Model.Requests.PersonInsertRequest request, bool saveChanges = true)
        {
            //we need to insert business entity first and use its ID later
            var businessEntity = BusinessEntityService.Value.Insert(new Model.Requests.BusinessEntityInsertRequest());

            request.BusinessEntityID = businessEntity.BusinessEntityID;
            var person = base.Insert(request, saveChanges);

            if (request.EmailAddressInsertRequest != null)
            {
                //once we insert person, we will simply populate that field
                request.EmailAddressInsertRequest.BusinessEntityID = person.BusinessEntityID;
                EmailService.Value.Insert(request.EmailAddressInsertRequest);
            }
            return(person);
        }