public IActionResult Solicitar(SolicitacaoCompraModel model) { if (!ModelState.IsValid) { return(JsonResultErro(ModelState)); } try { //Recuperar o ativo para registrar a baixa; SolicitacaoCompraModelApi modelApi = new SolicitacaoCompraModelApi(); modelApi.DataSolicitacao = model.DataSolicitacao; modelApi.DescricaoSolicitacao = model.DescricaoSolicitacao; modelApi.CodigoSituacaoSolicitacao = model.CodigoSituacaoSolicitacao; modelApi.SituacaoSolicitacao = model.SituacaoSolicitacao; modelApi.Responsavel = User.Identity.Name; string numeroProtocolo = _sgaAtivoApiClient.SolicitarCompraAtivo(modelApi); return(JsonResultSucesso(numeroProtocolo, "Solicitação de compra de ativo registrada com sucesso.")); } catch (Exception erro) { return(JsonResultErro(erro)); } }
/// <summary> /// Registra uma solicitação de compra no sistema de compras e guarda na gestão de ativos para acompanhamento. /// </summary> /// <param name="modelApi"></param> /// <returns></returns> public string SolicitarCompraAtivo(SolicitacaoCompraModelApi modelApi) { //Encaminhar solicitação para o sistema de compras. aguarda protocolo. string numeroProtocolo = Guid.NewGuid().ToString().Substring(0, 13); //Manter a solicitação de ativo dentro do módulo para acompanhamento. try { string baseURL = _configuration.GetSection("SGA_ComprarAtivoAPI:BaseURL").Value; string key = _configuration.GetSection("SGA_ComprarAtivoAPI:Key").Value; if (!string.IsNullOrEmpty(key)) { baseURL += $"?api_key={key}"; } modelApi.NumeroProtocolo = numeroProtocolo; StringContent content = new StringContent(JsonConvert.SerializeObject(modelApi), System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage response = _client.PostAsync(baseURL, content).Result; response.EnsureSuccessStatusCode(); return(numeroProtocolo); } catch (Exception erro) { throw new HttpRequestException("Erro ao registrar solicitação de compra de novo ativo.", erro); } }
internal static SolicitacaoCompraModel ConvertToModel(SolicitacaoCompraModelApi modelApi) { SolicitacaoCompraModel model = new SolicitacaoCompraModel(); model.Id = modelApi.Id; model.NumeroProtocolo = modelApi.NumeroProtocolo; model.DataSolicitacao = modelApi.DataSolicitacao; model.DescricaoSolicitacao = modelApi.DescricaoSolicitacao; model.CodigoSituacaoSolicitacao = modelApi.CodigoSituacaoSolicitacao; model.SituacaoSolicitacao = modelApi.SituacaoSolicitacao; return(model); }