public ActionResult Edit(int peopleId = 0, string mail = null)
        {
            var model = new Models.People.EditVM();
            model.States = new Utils.Cep.Estados().GetAll();

            var peopleBll = new Domain.BLL.PeopleBLL();

            model.PeopleCustomers = new List<Domain.Repository.PessoaEmpresas>();
            model.Image = new Domain.Repository.Imagens { Url = "/Uploads/Images/no-image.png" };

            foreach (var peopleCustomerUser in Session.GetLoggedUser().PessoaEmpresas.ToList())
            {
                if (peopleCustomerUser.PessoaTipoId > 2)
                {
                    var peopleCustomerEdit = peopleBll.GetPeopleCustomer(peopleId, peopleCustomerUser.EmpresaId);
                    if (peopleCustomerEdit == null)
                    {
                        peopleCustomerEdit = new Domain.Repository.PessoaEmpresas();
                        peopleCustomerEdit.EmpresaId = peopleCustomerUser.EmpresaId;
                        peopleCustomerEdit.Empresas = peopleCustomerUser.Empresas;

                    }
                    else
                    {
                        peopleCustomerEdit.Empresas = Session.GetLoggedUser().PessoaEmpresas.ToList().Where(pe => pe.EmpresaId == peopleCustomerEdit.EmpresaId).FirstOrDefault().Empresas;

                    }
                    model.PeopleCustomers.Add(peopleCustomerEdit);
                }

            }

            if (peopleId == 0)
            {
                model.People = new Domain.Repository.Pessoas();
                if (!string.IsNullOrEmpty(mail))
                {
                    model.People.Email = mail;
                }
            }
            else
            {
                model.People = peopleBll.GetPeople(peopleId);
                if (model.People.ImagemId.HasValue)
                {
                    model.Image = new Domain.BLL.ImagesBLL().Get(model.People.ImagemId.Value);
                }

            }
            model.PeopleTypes = peopleBll.GetPeopleTypes();
            return View(model);
        }
        public bool VerifeMail(string mail)
        {
            var peopleBll = new Domain.BLL.PeopleBLL();
            var people = peopleBll.GetPeople(mail);
            var success = false;
            if (people == null)
            {
                success = true;
            }

            return success;
        }
        public long SaveCustomerRequest(int customerId, string email)
        {
            var loggedUser = Session.GetLoggedUser();
            if (loggedUser != null)
            {
                var peopleBll = new Domain.BLL.PeopleBLL();
                var people = peopleBll.GetPeople(email);
                if (people == null)
                {
                    throw new Exception("Email não encontrado");
                }
                var customer = loggedUser.PessoaEmpresas.Where(pe => pe.EmpresaId == customerId).FirstOrDefault();
                if (customer == null)
                {
                    throw new Exception("Usuario logado nao tem acesso a solicitar vinculação para essa empresa");
                }
                var peopleRequestBll = new Domain.BLL.PeopleRequest.PeopleRequestBLL();
                var customerRequest = peopleRequestBll.GetPendingPeopleCustomerRequest(people.ID, customerId);
                if (customerRequest == null)
                {
                    customerRequest = new Domain.Repository.PessoaSolicitacoes();
                    customerRequest.DataSolicitacao = DateTime.Now;
                    customerRequest.Descricao = "A Empresa " + customer.Empresas.Nome + " esta solicitando acesso ao seus dados cadastrais, acesso para habilitar o seu cadastro como aluno";
                    customerRequest.Titulo = "Solicitacao de acesso";
                    customerRequest.PessoaId = people.ID;
                    customerRequest.PessoaSolicitacaoTipoId = (int)Domain.BLL.PeopleRequest.PeopleRequestTypes.CustomerRequest;
                    customerRequest.PessoaSolicitacaoEmpresa = new List<Domain.Repository.PessoaSolicitacaoEmpresa>();
                    customerRequest.PessoaSolicitacaoEmpresa.Add(new Domain.Repository.PessoaSolicitacaoEmpresa { EmpresaId = customerId });
                }
                else
                {
                    throw new Exception("Já existe uma solicitação pendente para essa pessoa");
                }

                return peopleBll.RequestSave(customerRequest).ID;

            }
            throw new Exception("Usuario não identificado");
        }
        public ActionResult PeopleDetails(long peopleId)
        {
            var model = new Models.Trainig.PeopleDetailsVM();
            var peopleBll = new Domain.BLL.PeopleBLL();
            var trainningBll = new Domain.BLL.TrainningBLL();
            model.People = peopleBll.GetPeople(peopleId);
            model.Professor = peopleBll.GetPeople(model.People.ProfessorPessoaId.Value);
            model.Trainnings = trainningBll.GetTrainnings(peopleId);
            if (model.People.ImagemId.HasValue)
            {
                model.People.Imagens = new Domain.BLL.ImagesBLL().Get(model.People.ImagemId.Value);
            }

            if (model.People.Imagens == null)
            {
                model.People.Imagens = new Domain.Repository.Imagens { Url = "/Uploads/Images/no-image.png" };
            }

            return View(model);
        }