// GET: api/Professors

        public IHttpActionResult Get()
        {
            var domain = new ProfessorDomain();
            var domainModelList = domain.List();

            var viewModelList = Mapper.Map<IEnumerable<Professor>, IEnumerable<ProfessorGetModel>>(domainModelList);
            return Ok(viewModelList);
        }
        public IHttpActionResult Post([FromBody]ProfessorPostModel viewModel)
        {
            if (viewModel == null)
                return NotFound();

            var domainModel = Mapper.Map<ProfessorPostModel, Professor>(viewModel);
            var domain = new ProfessorDomain();

            domain.Create(domainModel);
            viewModel.Id = domainModel.Id;

            return Created(Request.RequestUri, viewModel);
        }
        // GET: api/Professors/5

        public IHttpActionResult Get(Int64? id)
        {
            if (id.HasValue)
                return BadRequest("ID inválido ou não informado");

            var domain = new ProfessorDomain();
            var domainModel = domain.Read(id.Value);

            if (domainModel == null)
                return NotFound();

            var viewModel = Mapper.Map<Professor, ProfessorModel>(domainModel);

            return Ok(viewModel);
        }
        public IHttpActionResult Put(Int64? id, [FromBody]ProfessorPutModel viewModel)
        {
            if (id.HasValue)
                return BadRequest("ID inválido ou não informado");

            if (viewModel == null)
                return NotFound();

            var domailModel = Mapper.Map<ProfessorPutModel, Professor>(viewModel);
            var domain = new ProfessorDomain();

            domailModel.Id = id.Value;
            domain.Update(domailModel);

            return Ok();
        }
        // DELETE: api/Professors/5

        public IHttpActionResult Delete(Int64? id)
        {
            if (id.HasValue)
                return BadRequest("ID inválido ou não informado");

            var domain = new ProfessorDomain();
            domain.Delete(new Professor { Id = id.Value });

            return Ok();
        }