public async Task <IActionResult> FinalizarPedidoTrabajo(PedidosTrabajo request)
        {
            try
            {
                var    IP       = Request.HttpContext.Connection.RemoteIpAddress;
                string compName = DetermineCompName(IP.ToString());

                var req = new MCMovEstadoPTRequest
                {
                    iNumIdPT            = request.MovimientoEstadoPT.iNumIdPT,
                    iNumDetPT           = request.MovimientoEstadoPT.iNumDetPT,
                    vCodUsuarioCreacion = request.MovimientoEstadoPT.vCodUsuarioCreacion,
                    iNumDetEstPT        = request.MovimientoEstadoPT.iNumDetEstPT,
                    Terminal            = compName,
                    Opcion = request.MovimientoEstadoPT.Opcion
                };

                var pedido = new PedidoTrabajoBus();

                //request.Terminal = Dns.GetHostEntry(Request.ServerVariables["REMOTE_ADDR"]).HostName;
                string baseUrl = this.configuration.GetSection("AppSettings").GetSection("Servicio").Value;

                var response = await pedido.FinalizarPedidoTrabajo(req, baseUrl);

                if (response != null)
                {
                    if (response.IsSuccessStatusCode)
                    {
                        var carga = JsonConvert.DeserializeObject <McmaeCargaForDosResponse>(response.Content.ReadAsStringAsync().Result);
                        if (carga.Exito == true)
                        {
                            ViewBag.MensajeExito = carga.Mensaje;
                        }
                        else
                        {
                            ViewBag.MensajeError = carga.Mensaje;
                        }
                        ViewData["Categorias"] = ListarCategoriasInconveniente();
                        return(View("PedidosTrabajo"));
                    }
                    else
                    {
                        switch (response.StatusCode)
                        {
                        case HttpStatusCode.InternalServerError:
                            var mensajeErrorInterno = JsonConvert.DeserializeObject <ErrorInternoResponse>(response.Content.ReadAsStringAsync().Result);
                            ModelState.AddModelError("ErrorMensaje", mensajeErrorInterno.Mensaje);
                            Console.Write("Error");
                            break;

                        case HttpStatusCode.UnprocessableEntity:
                            var mensajeEntidadImprosesable = JsonConvert.DeserializeObject <ErrorInternoResponse>(response.Content.ReadAsStringAsync().Result);
                            ModelState.AddModelError("ErrorMensaje", mensajeEntidadImprosesable.Mensaje);
                            Console.Write("Error");
                            break;

                        default:
                            ModelState.AddModelError("ErrorMensaje", "Error interno en la aplicación web.");
                            Console.Write("Error");
                            break;
                        }
                    }
                }
                else
                {
                    ModelState.AddModelError("ErrorMensaje", "Error de comunicación con el servidor.");
                }
            }
            catch (Exception ex)
            {
                Console.Write("Error" + ex.Message);
            }
            return(Content("Ups! Un error ocurrio"));
        }
        public async Task <IActionResult> ResponderInconvPT(PedidosTrabajo request)
        {
            List <string> paths = new List <string>();

            //var a = Dns.GetHostByAddress(Request.Host.Host .ServerVariables.Item("REMOTE_HOST")).HostName;
            try
            {
                var    IP       = Request.HttpContext.Connection.RemoteIpAddress;
                string compName = DetermineCompName(IP.ToString());

                var req = new MCMovBanPTRequest
                {
                    iNumIdPT            = request.MovimientoBanPT.iNumIdPT,
                    iNumDetPT           = request.MovimientoBanPT.iNumDetPT,
                    vCodUsuarioCreacion = request.MovimientoBanPT.vCodUsuarioCreacion,
                    ICodTraResponsable  = request.MovimientoBanPT.ICodTraResponsable,
                    VTipInconveniente   = request.MovimientoBanPT.VTipInconveniente,
                    Mensaje             = request.MovimientoBanPT.Mensaje,
                    Terminal            = compName,
                    Email = request.MovimientoBanPT.Email
                };

                if (Request.Form.Files.Count > 0)
                {
                    //req.Adjuntos = Request.Form.Files;
                    foreach (var file in Request.Form.Files)
                    {
                        var ruta = SaveFile(file, request.MovimientoBanPT.PedidoTrabajo, "AdjuntosRpta");
                        paths.Add(ruta);
                    }
                    req.Rutas = paths;
                }

                var pedido = new NotificacionBus();

                //request.Terminal = Dns.GetHostEntry(Request.ServerVariables["REMOTE_ADDR"]).HostName;
                string baseUrl = this.configuration.GetSection("AppSettings").GetSection("Servicio").Value;

                var response = await pedido.ResponderInconvenientePT(req, baseUrl);

                if (response != null)
                {
                    if (response.IsSuccessStatusCode)
                    {
                        var carga = JsonConvert.DeserializeObject <McmaeCargaForDosResponse>(response.Content.ReadAsStringAsync().Result);
                        if (carga.Exito == true)
                        {
                            ViewBag.MensajeExito = carga.Mensaje;
                        }
                        else
                        {
                            ViewBag.MensajeError = carga.Mensaje;
                        }
                        ViewData["Categorias"] = ListarCategoriasInconveniente();
                        return(View("Notificaciones"));
                    }
                    else
                    {
                        switch (response.StatusCode)
                        {
                        case HttpStatusCode.InternalServerError:
                            var mensajeErrorInterno = JsonConvert.DeserializeObject <ErrorInternoResponse>(response.Content.ReadAsStringAsync().Result);
                            ModelState.AddModelError("ErrorMensaje", mensajeErrorInterno.Mensaje);
                            Console.Write("Error");
                            break;

                        case HttpStatusCode.UnprocessableEntity:
                            var mensajeEntidadImprosesable = JsonConvert.DeserializeObject <ErrorInternoResponse>(response.Content.ReadAsStringAsync().Result);
                            ModelState.AddModelError("ErrorMensaje", mensajeEntidadImprosesable.Mensaje);
                            Console.Write("Error");
                            break;

                        default:
                            ModelState.AddModelError("ErrorMensaje", "Error interno en la aplicación web.");
                            Console.Write("Error");
                            break;
                        }
                    }
                }
                else
                {
                    ModelState.AddModelError("ErrorMensaje", "Error de comunicación con el servidor.");
                }
            }
            catch (Exception ex)
            {
                Console.Write("Error" + ex.Message);
            }
            return(Content("Ups! Un error ocurrio"));
        }