public void Adicionar(PessoaMySqlViewModel obj, string idOrganizacao) { // TODO: implementar o pesquisar time TimeMySql timeMySql = new TimeMySql { }; PessoaMySql pessoaMySql = new PessoaMySql { Id = Guid.NewGuid().ToString(), Nome = obj.Nome, Foto = obj.Foto, Telefone = obj.Telefone, Email = obj.Email, MiniBio = obj.MiniBio, Status = obj.Status, DataCriacao = DateTime.Now, ResponsavelCriacao = obj.ResponsavelCriacao, DataEdicao = DateTime.Now, ResponsavelEdicao = obj.ResponsavelEdicao, GoobeeAdmin = false }; pessoaMySql.TimePessoas = new List <TimePessoaMySql>(0); pessoaMySql.TimePessoas.Add(new TimePessoaMySql { IdPessoa = pessoaMySql.Id, IdTime = timeMySql.Id, Status = true, DataCriacao = DateTime.Now, ResponsavelCriacao = pessoaMySql.ResponsavelCriacao, DataEdicao = DateTime.Now, IdOrganizacao = idOrganizacao }); _pessoaMySqlRepository.Adicionar(pessoaMySql); }
public async Task <UsuarioLogadoMySqlViewModel> Autentica(LoginMySql login) { UsuarioLogadoMySqlViewModel usuarioLogado = null; if (login != null) { UsuarioViewModel usuario = VerificaLoginSenha(login); if (usuario == null) { return(usuarioLogado); } IEnumerable <OrganizacaoUsuarioMySql> organizacoes = await _organizacaoMySqlRepository.ListarOrganizacoesUsuarioEmail(usuario.Login); OrganizacaoUsuarioMySql organizacaoUsuario = null; if (organizacoes.Any(x => x.UltimaAcessada)) { organizacaoUsuario = organizacoes?.FirstOrDefault(x => x.UsuarioPlataforma && x.UltimaAcessada); } else { organizacaoUsuario = organizacoes?.FirstOrDefault(x => x.UsuarioPlataforma); } PessoaMySql pessoa = await _pessoaMySqlRepository.BuscarPorEmail(usuario.Login); if (!usuario.Ativo) { return(usuarioLogado); } if (pessoa != null && !pessoa.GoobeeAdmin) { if (organizacaoUsuario == null || !string.IsNullOrWhiteSpace(organizacaoUsuario.IdUsuario)) { return(usuarioLogado); } if (organizacaoUsuario.Pessoa == null || organizacaoUsuario.Pessoa.Status == false) { return(usuarioLogado); } List <string> idsTimes = new List <string>(); foreach (var timePessoa in organizacaoUsuario.Pessoa.TimePessoas) { if (!timePessoa.Status) { continue; } if (timePessoa.IdOrganizacao == organizacaoUsuario.IdOrganizacao) { idsTimes.Add(timePessoa.IdTime); } } usuarioLogado = new UsuarioLogadoMySqlViewModel() { DataCriacao = organizacaoUsuario.Pessoa.DataCriacao, Email = organizacaoUsuario.Pessoa.Email, Nome = organizacaoUsuario.Pessoa.Nome, Foto = organizacaoUsuario.Pessoa.Foto, Id = organizacaoUsuario.IdUsuario, IdPessoa = organizacaoUsuario.IdPessoa, IdOrganizacao = organizacaoUsuario.IdOrganizacao, RoleEnum = organizacaoUsuario.OrganizacaoUsuarioRole.Role, IdsTimes = idsTimes }; } else { string idOrganizacao; if (!string.IsNullOrWhiteSpace(pessoa.IdUltimaOrgAcessada)) { idOrganizacao = pessoa.IdUltimaOrgAcessada; } else { idOrganizacao = _organizacaoMySqlRepository.Obter()?.Id; } usuarioLogado = new UsuarioLogadoMySqlViewModel() { DataCriacao = DateTime.Now, Email = pessoa.Email, Nome = pessoa.Nome, Foto = pessoa.Foto, Id = usuario.Id, IdPessoa = pessoa.Id, IdOrganizacao = idOrganizacao, RoleEnum = OrganizacaoUsuarioRoleEnum.GoobeeAdmin, IdsTimes = new List <string>(0) }; } } // gerar o token if (usuarioLogado != null) { usuarioLogado.Token = CriaToken(usuarioLogado); } return(usuarioLogado); }