Пример #1
0
        public void Patch_Success_Test()
        {
            var person = _faker.Person;
            var id     = Guid.NewGuid();
            var tels   = new List <Telefone> {
                new Telefone("+55", "11", "90000-0000", id)
            };
            var endereco    = new Endereco("Rua", 10, "00000-000", "apto", "bairro", "cidade", "sp", Cadastro.Domain.Enums.TipoEnderecoEnum.Residencial, id);
            var funcionario = new Funcionario(id.ToString(), "matricular", "cargo",
                                              new Nome(person.FirstName, person.LastName),
                                              new DataNascimento(new System.DateTime(1987, 08, 14)),
                                              new Email(person.Email), tels, endereco, endereco);


            var funcionarioReq = new FuncionarioRequest()
            {
                Ativo          = funcionario.Ativo,
                Cargo          = funcionario.Cargo,
                DataNascimento = funcionario.DataNascimento.Date,
                Email          = funcionario.Email.ToString(),
                Matricula      = funcionario.Matricula,
                Nome           = funcionario.Nome.PrimeiroNome,
                SobreNome      = funcionario.Nome.SobreNome,
                UserId         = funcionario.UserId,
                Telefones      = funcionario.Telefones.Select(x => new TelefoneRequest
                {
                    DDI      = x.DDI,
                    Telefone = $"{x.DDD}{x.NumeroTelefone}"
                }).ToList(),
                EnderecoResidencial = new EnderecoRequest
                {
                    Rua         = funcionario.EnderecoResidencial?.Rua,
                    Numero      = funcionario.EnderecoResidencial?.Numero,
                    CEP         = funcionario.EnderecoResidencial?.CEP,
                    Complemento = funcionario.EnderecoResidencial?.Complemento,
                    Bairro      = funcionario.EnderecoResidencial?.Bairro,
                    Cidade      = funcionario.EnderecoResidencial?.Cidade,
                    UF          = funcionario.EnderecoResidencial?.UF,
                },
                EnderecoComercial = new EnderecoRequest
                {
                    Rua         = funcionario.EnderecoComercial?.Rua,
                    Numero      = funcionario.EnderecoComercial?.Numero,
                    CEP         = funcionario.EnderecoComercial?.CEP,
                    Complemento = funcionario.EnderecoComercial?.Complemento,
                    Bairro      = funcionario.EnderecoComercial?.Bairro,
                    Cidade      = funcionario.EnderecoComercial?.Cidade,
                    UF          = funcionario.EnderecoComercial?.UF,
                }
            };

            _service.Setup(x => x.Atualizar(It.IsAny <Funcionario>(), It.IsAny <string>())).Returns(true);
            var controller = new FuncionarioController(_logger.Object, _service.Object);

            var result = controller.Patch(correlationId: Guid.NewGuid(), funcionarioReq) as OkObjectResult;

            _service.Verify(x => x.Atualizar(It.IsAny <Funcionario>(), It.IsAny <string>()), Times.Once);
            result.StatusCode.Should().Be(200);
            _outputHelper.WriteLine($"Expected: {200} Received: {result.StatusCode}");
        }
Пример #2
0
        public Funcionario(FuncionarioRequest funcionarioRequest)
            : base(funcionarioRequest)
        {
            Categoria = funcionarioRequest.Categoria;

            new AddNotifications <Funcionario>(this)
            .IfEqualsZero(p => p.Categoria);
        }
        public async Task <string> UploadFuncionarios([FromForm] FuncionarioRequest objectFile)
        {
            ObjectReturn objectReturn = new ObjectReturn();

            objectReturn = await _funcionarioApp.InsertFuncionario(objectFile);

            return(JsonConvert.SerializeObject(objectReturn));
        }
Пример #4
0
        private static void RemoveFile(FuncionarioRequest funcionarios)
        {
            var file_name = funcionarios.InputFile.FileName;

            if ((System.IO.File.Exists(file_name)))
            {
                System.IO.File.Delete(file_name);
            }
        }
Пример #5
0
        private static async Task <byte[]> FileStreamToByte(FuncionarioRequest funcionarios)
        {
            using (var fileStream = new FileStream(funcionarios.InputFile.FileName, FileMode.Create))
            {
                await funcionarios.InputFile.CopyToAsync(fileStream);

                return(await ByteFunctions.ConverteStreamToByteArray(funcionarios.InputFile.OpenReadStream()));
            }
        }
        public async Task <Guid> AdicionarAsync(FuncionarioRequest request)
        {
            Funcionario participante = ConverterParaModel(request);

            ValidaSeExisteEmail(request.Email);

            await InserirAsync(participante);

            return(participante.Id);
        }
Пример #7
0
 public IActionResult Post([FromHeader] Guid correlationId, [FromBody] FuncionarioRequest funcionario)
 {
     try
     {
         var tels = new List <Telefone>();
         if (funcionario.Telefones != null && funcionario.Telefones.Any())
         {
             foreach (var telefone in funcionario.Telefones)
             {
                 tels.Add(new Telefone(telefone.DDI, telefone.Telefone[..2], telefone.Telefone[2..], Guid.Parse(funcionario.UserId)));
Пример #8
0
 public async Task <ActionResult> Create([FromForm] FuncionarioRequest request)
 {
     try
     {
         return(RedirectToAction(nameof(Index)));
     }
     catch
     {
         return(View());
     }
 }
Пример #9
0
        public async Task <Response <bool> > CadastrarFuncionario(FuncionarioRequest request, string token)
        {
            var result = await $"{_baseUrl}/api/v1/Funcionario/funcionario"
                         .AllowAnyHttpStatus()
                         .WithOAuthBearerToken(token)
                         .PostJsonAsync(request);

            if (result.StatusCode == (int)HttpStatusCode.OK)
            {
                return(Response <bool> .SuccessResult(true));
            }
            return(Response <bool> .ErrorResult(result.ResponseMessage.ReasonPhrase));
        }
Пример #10
0
 public override Task <FuncionarioResponse> Cadastrar(FuncionarioRequest request, ServerCallContext context)
 {
     //try
     //{
     //    var result = _service.Cadastrar(funcionario);
     //    return Ok(result);
     //}
     //catch (Exception ex)
     //{
     //    _logger.LogError(ex, "Post");
     //    return BadRequest(ex);
     //}
     return(Task.FromResult(new FuncionarioResponse()));
 }
Пример #11
0
        public async Task <ActionResult> Edit(Guid id, [FromForm] FuncionarioRequest request)
        {
            try
            {
                if (!User.Identity.IsAuthenticated)
                {
                    return(RedirectToAction("Index", "Home"));
                }

                if (Request.Form.Any(x => x.Key == "telefones.Id") && !string.IsNullOrEmpty(Request.Form["telefones.Id"].ToString()))
                {
                    var ids      = Request.Form["telefones.Id"].ToString().Split(',');
                    var ddi      = Request.Form["telefones.DDI"].ToString().Split(',');
                    var telefone = Request.Form["telefones.Telefone"].ToString().Split(',');
                    for (int i = 0; i < telefone.Length; i++)
                    {
                        request.Telefones.Add(new TelefoneRequest
                        {
                            DDI      = ddi[i],
                            Telefone = telefone[i],
                            Id       = int.Parse(ids[i])
                        });
                    }
                }

                await GetTokens();

                var funcionario = await _apiService.AtualizarFuncionario(request, this.AccessToken);

                if (!funcionario.Sucesso)
                {
                    ViewBag.erro = funcionario.Erro;
                }
                return(RedirectToAction("Edit", "Funcionario", new { id }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Erro ao atualizar usuário {id}");
                return(RedirectToAction("Error", "Home"));
            }
        }
        public async Task <ObjectReturn> InsertFuncionario(FuncionarioRequest funcionarioRequest)
        {
            ObjectReturn             objectReturn = new ObjectReturn();
            List <FuncionarioEntity> funcionarios = await _fileRepository.ReadCSVFile(funcionarioRequest);

            for (int position = 0; position < funcionarios.Count; position++)
            {
                using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    var success = await _funcionarioService.InsertFuncionario(funcionarios[position]);

                    if (funcionarios[position].IsInvalid() || !success)
                    {
                        funcionarios[position].Notifications.ToList().ForEach(p => objectReturn.AddMessage(string.Format("Fail to process register : line: {0}, property: {1}, description: {2}", position + 1, p.Property, p.Message)));
                        continue;
                    }
                    transaction.Complete();
                    objectReturn.AddMessage(string.Format("Line {0} - Funcionario {1}, ID {2} successfully inserted!", position + 1, funcionarios[position].Name, funcionarios[position].Id));
                }
            }
            return(await Task.FromResult(objectReturn));
        }
Пример #13
0
        public async Task <List <FuncionarioEntity> > ReadCSVFile(FuncionarioRequest funcionarios)
        {
            string line;
            List <FuncionarioEntity> listOfFuncionarios = new List <FuncionarioEntity>();

            byte[] funcionariofile = await FileStreamToByte(funcionarios);

            RemoveFile(funcionarios);

            using (var ms = new MemoryStream(funcionariofile))
                using (var stream = new StreamReader(ms))
                    while ((line = await stream.ReadLineAsync()) != null)
                    {
                        var funcionario = _funcionarioService.FillFuncionariosByCsvLine(line);
                        if (funcionario.Notifications.Count == 0)
                        {
                            listOfFuncionarios.Add(funcionario);
                        }
                    }

            return(listOfFuncionarios);
        }
 /// <summary>
 /// Converte FuncionarioRequest para Funcionario
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 private Funcionario ConverterParaModel(FuncionarioRequest request)
 {
     return(new Funcionario(request.Nome, request.Email, request.Cargo, request.Setor));
 }
Пример #15
0
 public async Task <IActionResult> Adicionar(FuncionarioRequest request)
 {
     return(Ok(await appService.AdicionarAsync(request)));
 }