private async Task <Funcionario> CriarfuncionarioServico(CriarUsuarioComServicoDto criarUsuarioComServicoDto)
        {
            Servico servicoFun = new Servico {
                Nome           = criarUsuarioComServicoDto.NomeServico,
                TempoDeDuracao = criarUsuarioComServicoDto.TempoDeDuracao,
                Valor          = criarUsuarioComServicoDto.Valor
            };
            var usuarioFuncionario = await this.context.Usuarios.FirstOrDefaultAsync(x => x.Email == criarUsuarioComServicoDto.UsurioEmail);

            var estabelecimento = await this.context.Estabelecimentos.FirstOrDefaultAsync(x => x.Id == criarUsuarioComServicoDto.EstabelecimentoId);

            //estabelecimento.Servicos.Add(servicoFun);
            Funcionario novoFuncionario = new Funcionario {
                Activo = true, Conta = usuarioFuncionario, TrabalhaPara = estabelecimento
            };

            novoFuncionario.Funcoes = new List <FuncionarioServico> {
                new FuncionarioServico {
                    Servico = servicoFun, Funcionario = novoFuncionario
                }
            };
            //novoFuncionario.Funcoes.Add(new FuncionarioServico{Servico = servicoFun, Funcionario = novoFuncionario});
            await this.context.Funcionarios.AddAsync(novoFuncionario);

            await this.context.SaveChangesAsync();

            return(novoFuncionario);
        }
        public async Task <IActionResult> NovoFuncionario([FromBody] CriarUsuarioComServicoDto criarUsuarioComServicoDto)
        {
            var FuncionarioServico = await CriarfuncionarioServico(criarUsuarioComServicoDto);

            await AfiliarEstabelecimentoServico(FuncionarioServico.Funcoes.ToArray()[0].ServicoId, criarUsuarioComServicoDto.EstabelecimentoId);

            return(StatusCode(201));
        }
        private async Task <int> CriarServico(CriarUsuarioComServicoDto criarUsuarioComServicoDto)
        {
            Servico servicoFun = new Servico {
                Nome           = criarUsuarioComServicoDto.NomeServico,
                TempoDeDuracao = criarUsuarioComServicoDto.TempoDeDuracao,
                Valor          = criarUsuarioComServicoDto.Valor
            };

            await this.context.Servicos.AddAsync(servicoFun);

            await this.context.SaveChangesAsync();

            return(servicoFun.Id);
        }
        private async Task <Funcionario> CriarFuncionario(CriarUsuarioComServicoDto criarUsuarioComServicoDto)
        {
            var usuarioFuncionario = await this.context.Usuarios.FirstOrDefaultAsync(x => x.Email == criarUsuarioComServicoDto.UsurioEmail);

            var estabelecimento = await this.context.Estabelecimentos.FirstOrDefaultAsync(x => x.Id == criarUsuarioComServicoDto.EstabelecimentoId);

            Funcionario novoFuncionario = new Funcionario {
                Activo = true, Conta = usuarioFuncionario, TrabalhaPara = estabelecimento
            };

            await this.context.Funcionarios.AddAsync(novoFuncionario);

            await this.context.SaveChangesAsync();

            return(novoFuncionario);
        }