Пример #1
0
        public async Task <IActionResult> Post([FromBody] GuiaDto guiaDto)
        {
            try
            {
                var guia = _mapper.Map <GuiaDto, Guia>(guiaDto);
                var guidePerformerCodeType = Enums.PerformerCodeType.codigoPrestadorNaOperadora;
                // Complemento da Guia
                var guiaNumero = await _GuiaNumeroRepository.GetLastGuiaIdAsync(guia.Prestador.Codigo);

                guia.GuiaNumero.Numero          = guiaNumero.ToString();
                guia.GuiaNumero.NumeroOperadora = "";

                BeneficiarioResponse beneficiario = _BeneficiarioService.SeachBeneficiario(guia.Beneficiario.Cartao);
                guia.Beneficiario.Nome = beneficiario.guideBeneficiaryName;

                _PushRequest.CodAtendimento            = "123";
                _PushRequest.Associado.CodAcompanhante = "";
                _PushRequest.Associado.CodAssociado    = guia.Beneficiario.Cartao;

                var prestador = _PrestadorService.PrestadorDescription(guia.Prestador.Codigo);

                _PushRequest.Prestador.CodPrestador          = guia.Prestador.Codigo;
                _PushRequest.Prestador.Endereco              = "193";
                _PushRequest.Prestador.Localizacao.Latitude  = "";
                _PushRequest.Prestador.Localizacao.Longitude = "";
                _PushRequest.Prestador.NomePrestador         = prestador;

                guia.PushId  = _PushService.GetPushCode(_PushRequest);
                guia.TokenId = _TokenService.GetTokenCode(_PushRequest.Associado.CodAssociado);

                guia.GuiaOrigemFK    = (int)Enums.SourceInterface.Telemedicina;
                guia.StatusCheckInFK = (int)Enums.StatusCheckIns.Valido;
                guia.GuiaTipoFK      = (int)Enums.TypeGuia.Consulta;
                guia.GuiaStatusFK    = (int)Enums.StatusGuia.Aberta;

                MedicoResponse profissional = _PrestadorService.PrestadorMedico(guia.Prestador.Codigo,
                                                                                guiaDto.ProfissionalUFCRM, Convert.ToInt32(guiaDto.ProfissionalCRM), null);

                guia.GuiaXML = _GuiaService.GenerateXMLGuia(guia, guidePerformerCodeType,
                                                            prestador, beneficiario, profissional, guiaDto.Procedimento);

                string textGuia = guia.GuiaXML.ToString();

                _logger.LogInformation(textGuia);

                _GuiaRepository.Save(guia);
                await _uow.CommitAsync();


                return(Created($"/v1/guia/{guia.Id}", null));
            }
            catch (System.Exception ex)
            {
                _uow.Rollback();
                return(this.StatusCode(StatusCodes.Status500InternalServerError,
                                       $"Falha no banco de dados, detalhes : {ex.Message}"));
            }
        }
Пример #2
0
        public async Task <IActionResult> Post(Guia guia)
        {
            try
            {
                _guiaRepository.Save(guia);

                await _uow.CommitAsync();

                return(Created($"/v1/guias/{guia.Id}", _mapper.Map <GuiaDto>(guia)));
            }
            catch (System.Exception ex)
            {
                _uow.Rollback();
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Falha no banco de dados, detalhes : {ex.Message}"));
            }
        }