//public IActionResult PedidosTrabajo()
        //{

        //}

        public async Task <IActionResult> CargaExcel(McmaeCargaForDosRequest maeCargaActividadRequest)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    maeCargaActividadRequest.UsuarioCreacion  = "QUALIS";
                    maeCargaActividadRequest.TerminalCreacion = "SERVER";

                    var    maeCargaActividadBus = new McmaeCargaForDosBus();
                    string baseUrl = this.configuration.GetSection("AppSettings").GetSection("Servicio").Value;
                    var    maeCargaActividadResponse = await maeCargaActividadBus.CargarExcel(maeCargaActividadRequest, baseUrl);

                    if (maeCargaActividadResponse != null)
                    {
                        if (maeCargaActividadResponse.IsSuccessStatusCode)
                        {
                            var carga = JsonConvert.DeserializeObject <McmaeCargaForDosResponse>(maeCargaActividadResponse.Content.ReadAsStringAsync().Result);
                            ViewBag.Mensaje = carga.Mensaje;
                            return(View());
                        }
                        else
                        {
                            switch (maeCargaActividadResponse.StatusCode)
                            {
                            case HttpStatusCode.InternalServerError:
                                var mensajeErrorInterno = JsonConvert.DeserializeObject <ErrorInternoResponse>(maeCargaActividadResponse.Content.ReadAsStringAsync().Result);
                                ModelState.AddModelError("ErrorMensaje", mensajeErrorInterno.Mensaje);
                                Console.Write("Error");
                                break;

                            case HttpStatusCode.UnprocessableEntity:
                                var mensajeEntidadImprosesable = JsonConvert.DeserializeObject <ErrorInternoResponse>(maeCargaActividadResponse.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)
            {
                ModelState.AddModelError("ErrorMensaje", "Error interno en la web.");
                Console.Write(ex.Message);
            }
            return(View(maeCargaActividadRequest));
        }
        public async Task <IActionResult> ListadoCabecera(DataSourceLoadOptionsBase loadOptions)
        {
            try
            {
                var maeCargaActividadBus = new McmaeCargaForDosBus();

                string baseUrl = this.configuration.GetSection("AppSettings").GetSection("Servicio").Value;

                var maeCargaActividadRequest = new McmaeCargaForDosListadoRequest {
                    Activo = true
                };

                var maeCargaActividadListadoResponse = await maeCargaActividadBus.BusquedaCabecera(maeCargaActividadRequest, baseUrl);

                if (maeCargaActividadListadoResponse != null)
                {
                    if (maeCargaActividadListadoResponse.IsSuccessStatusCode)
                    {
                        //var  maeCargaActividadListado = JsonConvert.DeserializeObject<MCMaeCargaForDosListadoResponse>(jsonResponse);
                        //ICollection<PedidoTrabajoBResponse> listadoPT = JsonConvert.DeserializeObject<ICollection<PedidoTrabajoBResponse>>(listadoResponseMessage.Content.ReadAsStringAsync().Result);

                        ICollection <MCMaeCargaForDosListadoResponse> maeCargaActividadListado = JsonConvert.DeserializeObject <ICollection <MCMaeCargaForDosListadoResponse> >(maeCargaActividadListadoResponse.Content.ReadAsStringAsync().Result);

                        return(NewtonsoftJson(maeCargaActividadListado));
                    }
                    else
                    {
                        switch (maeCargaActividadListadoResponse.StatusCode)
                        {
                        case HttpStatusCode.InternalServerError:
                            var mensajeErrorInterno = JsonConvert.DeserializeObject <ErrorInternoResponse>(maeCargaActividadListadoResponse.Content.ReadAsStringAsync().Result);
                            Console.Write("Error");
                            break;

                        case HttpStatusCode.UnprocessableEntity:
                            var mensajeEntidadImprosesable = JsonConvert.DeserializeObject <ErrorInternoResponse>(maeCargaActividadListadoResponse.Content.ReadAsStringAsync().Result);
                            Console.Write("Error");
                            break;

                        default:
                            Console.Write("Error");
                            break;
                        }
                    }
                }
                else
                {
                    Console.Write("Error");
                }
            }
            catch (Exception ex)
            {
                Console.Write("Error");
            }
            return(Content("Ups! Un error ocurrio"));
        }
        public async Task <IActionResult> ProcesarPlantilla(McParametrosProcessPlantillaRequest request)
        {
            try
            {
                var    IP       = Request.HttpContext.Connection.RemoteIpAddress;
                string compName = DetermineCompName(IP.ToString());

                request.Computador = compName;

                var carga = new McmaeCargaForDosBus();

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

                var response = await carga.ProcesarPlantilla(request, baseUrl);

                if (response != null)
                {
                    if (response.IsSuccessStatusCode)
                    {
                        var resultado = JsonConvert.DeserializeObject <McmaeCargaForDosResponse>(response.Content.ReadAsStringAsync().Result);
                        if (resultado.Exito == true)
                        {
                            ViewBag.MensajeExito = resultado.Mensaje;
                        }
                        else
                        {
                            ViewBag.MensajeError = resultado.Mensaje;
                        }
                        //ViewData["Categorias"] = ListarCategoriasInconveniente();
                        return(View("ListadoCabecereAcciones"));
                    }
                    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"));
        }