public HttpResponseMessage InserirPf(HttpRequestMessage request, MembroPFViewModel membroPFViewModel) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { if (_membroRep.CpfExistente(membroPFViewModel.Cpf) > 0) { ModelState.AddModelError("CPF Existente", "CPF:" + membroPFViewModel.Cpf + " já existe ."); response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else if (_membroRep.CroExistente(membroPFViewModel.Cro) > 0) { ModelState.AddModelError("CRO Existente", "CRO:" + membroPFViewModel.Cro + " já existe ."); response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { var usuario = _usuarioRep.GetSingle(1); var pessoa = new Pessoa { UsuarioCriacao = usuario, DtCriacao = DateTime.Now, TipoPessoa = TipoPessoa.PessoaFisica, Ativo = membroPFViewModel.Ativo, }; var pessoaFisica = new PessoaFisica { UsuarioCriacao = usuario, DtCriacao = DateTime.Now, Pessoa = pessoa, Nome = membroPFViewModel.Nome, Cpf = membroPFViewModel.Cpf, Rg = membroPFViewModel.Rg, Cro = membroPFViewModel.Cro, DtNascimento = membroPFViewModel.DtNascimento, Email = membroPFViewModel.Email, Sexo = (Sexo)membroPFViewModel.Sexo, Ativo = membroPFViewModel.Ativo }; _pessoaFisicaRep.Add(pessoaFisica); _unitOfWork.Commit(); pessoa.PessoaFisica = pessoaFisica; _pessoaRep.Edit(pessoa); _unitOfWork.Commit(); var novoMembro = new Membro { UsuarioCriacao = usuario, DtCriacao = DateTime.Now, Pessoa = pessoa, Comprador = membroPFViewModel.Comprador, Ativo = membroPFViewModel.Ativo, Vip = membroPFViewModel.Vip, DddTel = membroPFViewModel.DddTelComl, Telefone = membroPFViewModel.TelefoneComl, DddCel = membroPFViewModel.DddCel, Celular = membroPFViewModel.Celular, Contato = membroPFViewModel.Contato, DataFimPeriodoGratuito = DateTime.Now.AddDays(30) }; _membroRep.Add(novoMembro); _unitOfWork.Commit(); var email = new Emails { UsuarioCriacao = usuario, DtCriacao = DateTime.Now, AssuntoEmail = "Novo Membro Cliente PF", EmailDestinatario = "*****@*****.**", CorpoEmail = "NOVO CLIENTE", Status = Status.NaoEnviado, Origem = 0, Ativo = true }; _emailsRep.Add(email); _unitOfWork.Commit(); // Update view model membroPFViewModel = Mapper.Map <Membro, MembroPFViewModel>(novoMembro); response = request.CreateResponse(HttpStatusCode.Created, membroPFViewModel); } } return response; })); }