public IHttpActionResult Put(Company company)
        {

            if (!ModelState.IsValid) return BadRequest(ModelState);
            var companySet = _context.Set<Company>();
            var companyEntity = companySet.FirstOrDefault(c => c.Id == company.Id);

            if (companyEntity == null)
            {
                return NotFound();
            }
            _context.Entry(companyEntity).CurrentValues.SetValues(company);

            var errors = _context.GetValidationErrors().ToList();
            if (!errors.Any())
            {
                _context.SaveChanges();
                return Ok();
            }

            var sb = new StringBuilder();
            errors.SelectMany(c => c.ValidationErrors).ToList().ForEach(c => sb.Append(c.ErrorMessage));
            return BadRequest(sb.ToString());

        }
        public IHttpActionResult Post(Company company)
        {
            if (!ModelState.IsValid) return BadRequest(ModelState);
            var companySet = _context.Set<Company>();
            companySet.Add(company);

            var errors = _context.GetValidationErrors().ToList();
            if (!errors.Any())
            {
                _context.SaveChanges();
                return Created(Request.RequestUri + company.Id.ToString(), TheModelFactory.GetCompany(company));
            }

            var sb = new StringBuilder();
            errors.SelectMany(c => c.ValidationErrors).ToList().ForEach(c => sb.Append(c.ErrorMessage));
            return BadRequest(sb.ToString());


        }