コード例 #1
0
        public async Task CalculaLucros_Should_ReturnSuccessfullyRequest()
        {
            //Arrange
            IList <Funcionario> lFuncionarios = new FuncionarioUnitModel().getDefaultFuncionarios();
            var     mockFuncionarioRepository = Substitute.For <IRepository <Funcionario> >();
            decimal totalDisponibilizado      = 100000;

            mockFuncionarioRepository.GetAll().
            Returns(lFuncionarios);
            FuncionariosService fs = new FuncionariosService(mockFuncionarioRepository);

            //Act
            var result = await fs.CalculaLucros(totalDisponibilizado);

            //Assert
            //TODO: WRITE one fixed return for the defaultFuncionarios
            result.total_de_funcionarios.Should().Be(lFuncionarios.Count);
            result.participacoes.Count.Should().Be(lFuncionarios.Count);
            result.participacoes.First().matricula.Should().NotBe(string.Empty);
            result.participacoes.First().valor_da_participação.Should().Be(182825.28m);
            result.participacoes.First().nome.Should().NotBe(string.Empty);
            result.total_disponibilizado.Should().Be(totalDisponibilizado);
            result.total_distribuido.Should().BeGreaterThan(0);
            result.saldo_total_disponibilizado.Should().NotBe(0);
        }
コード例 #2
0
 public ServicosController(ServicoService servicoService, FuncionariosService funcionariosService, ClienteService clienteService, ProcedimentosService procedimentosService)
 {
     _servicoService       = servicoService;
     _funcionariosService  = funcionariosService;
     _clienteService       = clienteService;
     _procedimentosService = procedimentosService;
 }
コード例 #3
0
        public async Task GetAll_Should_ReturnSuccessfullyRequest()
        {
            //Arrange
            var mockFuncionarioRepository     = Substitute.For <IRepository <Funcionario> >();
            IList <Funcionario> lFuncionarios = new FuncionarioUnitModel().getDefaultFuncionarios();

            mockFuncionarioRepository.GetAll().
            Returns(lFuncionarios);

            FuncionariosService fs = new FuncionariosService(mockFuncionarioRepository);

            //Act
            var result = await fs.GetAll();

            //Assert
            result.Count().Should().Be(lFuncionarios.Count);
        }
コード例 #4
0
        public async Task AddOrUpdate_Should_SendSuccessfullyRequest()
        {
            //Arrange
            var mockFuncionarioRepository = Substitute.For <IRepository <Funcionario> >();

            mockFuncionarioRepository.CreateList(Arg.Any <IEnumerable <Funcionario> >()).
            Returns(true);

            FuncionariosService fs            = new FuncionariosService(mockFuncionarioRepository);
            IList <Funcionario> lFuncionarios = new FuncionarioUnitModel().getDefaultFuncionarios();

            //Act
            bool result = await fs.AddOrUpdate(lFuncionarios);

            //Assert
            result.Should().Be(true);
        }
コード例 #5
0
        public async Task GetAll_Should_ReturnOk()
        {
            //Arrange
            var mockRepository = Substitute.For <IRepository <Funcionario> >();
            IList <Funcionario> lFuncionarios = new FuncionarioUnitModel().getDefaultFuncionarios();

            mockRepository.GetAll().Returns(lFuncionarios);

            var mockLog     = Substitute.For <ILogger>();
            var mockRequest = NSubstituteHttpRequest.CreateMockRequest(string.Empty);

            var funcionariosService = new FuncionariosService(mockRepository);

            //Act
            var result = await Funcionarios.GetAll(mockRequest, mockLog, funcionariosService);

            //Assert
            result.StatusCode.Should().Be(200);
        }
コード例 #6
0
        public async Task AddOrUpdate_Should_ReturnBadRequest()
        {
            //Arrange
            var mockRepository = Substitute.For <IRepository <Funcionario> >();

            mockRepository.CreateList(Arg.Any <IEnumerable <Funcionario> >()).Returns(true);

            var mockLog = Substitute.For <ILogger>();

            var mockRequest = NSubstituteHttpRequest.CreateMockRequest(string.Empty);

            var funcionariosService = new FuncionariosService(mockRepository);

            //Act
            var result = await Funcionarios.AddorUpdate(mockRequest, mockLog, funcionariosService);

            //Assert
            result.StatusCode.Should().Be(400);
        }
コード例 #7
0
        public async Task AddOrUpdate_Should_ReturnOk()
        {
            //Arrange
            var mockRepository = Substitute.For <IRepository <Funcionario> >();

            mockRepository.CreateList(Arg.Any <IEnumerable <Funcionario> >()).Returns(true);

            var mockLog = Substitute.For <ILogger>();

            IList <Funcionario> lFuncionarios = new FuncionarioUnitModel().getDefaultFuncionarios();
            var mockRequest = NSubstituteHttpRequest.CreateMockRequest(lFuncionarios);

            var funcionariosService = new FuncionariosService(mockRepository);

            //Act
            var result = await Funcionarios.AddorUpdate(mockRequest, mockLog, funcionariosService);

            //Assert
            result.StatusCode.Should().Be(200);
            var content = await result.Content.ReadAsStringAsync();

            content.Should().Be(lFuncionarios.Count.ToString());
        }
コード例 #8
0
        public async Task CalculaLucros_Should_ReturnOk()
        {
            //Arrange
            decimal             totalDisponibilizado = 100000;
            var                 mockRepository       = Substitute.For <IRepository <Funcionario> >();
            IList <Funcionario> lFuncionarios        = new FuncionarioUnitModel().getDefaultFuncionarios();

            mockRepository.GetAll().Returns(lFuncionarios);

            var mockLog     = Substitute.For <ILogger>();
            var mockRequest = NSubstituteHttpRequest.CreateMockRequest(string.Empty);

            var funcionariosService = new FuncionariosService(mockRepository);

            //Act
            var result = await Funcionarios.CalculaLucros(mockRequest, totalDisponibilizado, mockLog, funcionariosService);

            //Assert
            result.StatusCode.Should().Be(200);
            var content = await result.Content.ReadAsStringAsync();

            string.IsNullOrEmpty(content).Should().BeFalse();
            content.Should().NotBe("null");
        }
コード例 #9
0
 public FuncionariosController()
 {
     _service = new FuncionariosService();
 }
コード例 #10
0
 public FuncionariosController(FuncionariosService funcionariosService)
 {
     _funcionariosService = funcionariosService;
 }
コード例 #11
0
        public async Task <HttpResponseMessage> AddOrUpdateCandidato()
        {
            try
            {
                FuncionariosService funcService = new FuncionariosService();

                // Verifica se request contém multipart/form-data.
                if (!Request.Content.IsMimeMultipartContent())
                {
                    throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
                }

                //Diretório App_Data, para salvar o arquivo temporariamente
                string root     = HttpContext.Current.Server.MapPath("~/App_Data");
                var    provider = new MultipartFormDataStreamProvider(root);

                // Lê o arquivo da requisição assincronamente
                await Request.Content.ReadAsMultipartAsync(provider);

                //Deserializa os dados do Candidato
                JavaScriptSerializer json_serializer = new JavaScriptSerializer();
                var obj = json_serializer.DeserializeObject(provider.FormData.Get("candidato")) as Dictionary <string, object>;

                Image thumbnail = null;
                Image img       = null;
                try
                {
                    //Lê a foto do candidato

                    var httpPostedFile = HttpContext.Current.Request.Files["foto"];
                    if (httpPostedFile != null)
                    {
                        int length = httpPostedFile.ContentLength;
                        var bytes  = new byte[length]; //get imagedata
                        httpPostedFile.InputStream.Read(bytes, 0, length);
                        var stream = new MemoryStream(bytes);
                        img       = Image.FromStream(stream, false, false);
                        img       = ImageService.EnquadrarImagem((Bitmap)img);
                        thumbnail = ImageService.GetThumbnail(img, 75, 75);
                        stream.Dispose();
                        if (img.Height > 350)
                        {
                            img = ImageService.GetThumbnail(img, 350, 350);
                        }
                    }
                }
                catch
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, $"Erro ao processar imagem. Por favor, escolha outra! "));
                }

                int funcionarioId = int.Parse(obj["FuncionarioId"].ToString());
                //Cria uma instância de Funcionario
                Funcionario funcionario = null;
                try
                {
                    funcionario = funcService.GetFuncionario(funcionarioId);
                }
                catch (FuncionarioNaoEncontradoException)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Funcionário não encontrado!"));
                }

                funcionario.Login        = obj["LoginFuncionario"].ToString();
                funcionario.Nome         = obj["NomeFuncionario"].ToString();
                funcionario.Cargo        = obj["CargoFuncionario"].ToString();
                funcionario.Area         = obj["AreaFuncionario"].ToString();
                funcionario.Email        = obj["EmailFuncionario"].ToString();
                funcionario.Sobre        = (obj.ContainsKey("Sobre") && obj["Sobre"] != null) ? obj["Sobre"].ToString() : null;
                funcionario.DataAdmissao = DateTime.Parse(obj["DataAdmissaoFuncionario"].ToString());
                funcionario.Thumbnail    = ImageService.ConvertImageByte(thumbnail);

                funcService.AddOrUpdateFuncionario(funcionario);

                FuncionarioFoto funcFoto = new FuncionarioFoto
                {
                    FuncionarioId = funcionario.Id,
                    Foto          = ImageService.ConvertImageByte(img)
                };

                funcService.AddOrUpdateFuncionarioFoto(funcFoto);
                bool?validado = null;
                //if (User.IsInRole("Administrador")) validado = true;

                //Cria uma intância do candidato
                Candidato c = new Candidato
                {
                    FuncionarioId      = funcionarioId,
                    CodigoEleicao      = int.Parse(obj["CodigoEleicao"].ToString()),
                    HorarioCandidatura = HelpersMethods.HorarioBrasilia(),
                    Validado           = validado
                };

                //Tenta salvar as atualizações
                try
                {
                    c = candidatosService.AddOrUpdateCandidato(c);
                    candidatosService.ExcluirMotivoReprovacao(c);
                    //Excluir o arquivo
                    File.Delete(provider.FileData[0].LocalFileName);
                }
                catch (FuncionarioNaoCadastradoEleicaoException)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "Você não está inscrito nessa eleição! Contate o administrador."));
                }
                catch (FuncionarioNaoElegivelException e)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, e.Message));
                }
                catch
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Ocorreu um erro desconhecido. Por favor, entre em contato com o suporte."));
                }

                return(Request.CreateResponse(HttpStatusCode.OK, new CandidatoDTO(c)));
            }
            catch
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Ocorreu um erro desconhecido. Por favor, entre em contato com o suporte."));
            }
        }