public async Task <IActionResult> ExtraerVariables(int id, int?pais)
        {
            var rutaArchivo = "";

            try
            {
                Stopwatch time = new Stopwatch();
                time.Start();
                this._log.WriteInfo($"Inicia el servicio para extraer las variables");
                List <TipoProductoFamilia> tipoProductoFamilias = null;
                int cantidadArchivos = Request.Form.Files.Count;

                if (cantidadArchivos > 0 && cantidadArchivos == 1)
                {
                    var    archivoExcelPeticion = Request.Form.Files.Select(e => e).ToList()[0];
                    string extensionArchivo     = Path.GetExtension(archivoExcelPeticion.FileName).ToUpperInvariant();

                    if (string.IsNullOrEmpty(extensionArchivo) || this.extensionesPermitidas.Contains(extensionArchivo))
                    {
                        ArchivoExcelEventos archivoExcel = null;
                        rutaArchivo = $"{Path.GetTempPath()}variablesEvento{DateTime.Now.Ticks}.xlsx";
                        using (var stream = new FileStream(rutaArchivo, FileMode.Create))
                        {
                            await archivoExcelPeticion.CopyToAsync(stream);

                            stream.Close();
                            archivoExcel = new ArchivoExcelEventos(rutaArchivo);//Se envia la ruta temporal del archivo e:\Users\ppastrana\AppData\Local\Temp\variables637388951388493557.xlsx
                        }
                        archivoExcel.RutaTemportal = rutaArchivo;
                        tipoProductoFamilias       = archivoExcel.ExcelUsingEPPlus().ToList();
                        time.Stop();
                        this._log.WriteAndCountService($"Método:{nameof(ExtraerVariables)}-> Se ejecuto correctamente",
                                                       new Dictionary <string, int>
                        {
                            {
                                nameof(WsAdministracionVariables),
                                Convert.ToInt32(time.ElapsedMilliseconds)
                            }
                        });
                        return(Ok(
                                   new RespuestaOK
                        {
                            respuesta =
                                new
                            {
                                productosFamilias = tipoProductoFamilias,
                                esValido = !(tipoProductoFamilias.Any(e => e.fiFamiliaId == 0))
                            }
                        }));
                    }
                    else
                    {
                        time.Stop();
                        this._log.WriteAndCountService($"Método:{nameof(ExtraerVariables)}-> No es un archivo el archivo que se cargo",
                                                       new Dictionary <string, int>
                        {
                            {
                                nameof(WsAdministracionVariables),
                                Convert.ToInt32(time.ElapsedMilliseconds)
                            }
                        });
                        return(BadRequest(
                                   new RespuestaError400
                        {
                            errorInfo = string.Empty,
                            errorMessage = $"No es un archivo de Excel"
                        }));
                    }
                }
                else
                {
                    time.Stop();
                    this._log.WriteAndCountService($"Método:{nameof(ExtraerVariables)}-> Se cargo más de un archivo o no se cargo ningún archivo",
                                                   new Dictionary <string, int>
                    {
                        {
                            nameof(WsAdministracionVariables),
                            Convert.ToInt32(time.ElapsedMilliseconds)
                        }
                    });
                    return(BadRequest(
                               new RespuestaError400
                    {
                        errorInfo = string.Empty,
                        errorMessage = cantidadArchivos > 0 ? "Solo se puede subir un archivo" : "No subiste ningún archivo"
                    }));
                }
            }
            catch (Exception ex)
            {
                if (ex is UnauthorizedAccessException)
                {
                    if (this._log is null)
                    {
                        this._log = new BibliotecaSimulador.Logs.Logg(this.Nombrelog);
                        this._log.WriteErrorService(ex, nameof(WsAdministracionVariables));
                        return(StatusCode(StatusCodes.Status500InternalServerError,
                                          new RespuestaError
                        {
                            errorMessage = this._configuration.GetValue <string>("Mensajes:Errores:CrearArchivoExcel")
                        }));
                    }
                    this._log.WriteErrorService(ex, nameof(WsAdministracionVariables));
                    return(StatusCode(StatusCodes.Status500InternalServerError,
                                      new RespuestaError
                    {
                        errorMessage = this._configuration.GetValue <string>($"Mensajes:Errores:Generico")
                    }));
                }
                else if (ex is ArgumentNullException)
                {
                    if (this._log is null)
                    {
                        this._log = new BibliotecaSimulador.Logs.Logg(this.Nombrelog);
                        this._log.WriteErrorService(ex, nameof(WsAdministracionVariables));
                        return(StatusCode(StatusCodes.Status500InternalServerError,
                                          new RespuestaError
                        {
                            errorMessage = this._configuration.GetValue <string>("Mensajes:Errores:Argumento")
                        }));
                    }
                    this._log.WriteErrorService(ex, nameof(WsAdministracionVariables));
                    return(StatusCode(StatusCodes.Status500InternalServerError,
                                      new RespuestaError
                    {
                        errorMessage = this._configuration.GetValue <string>("Mensajes:Errores:Generico")
                    }));
                }
                else
                {
                    this._log.WriteErrorService(ex, nameof(WsAdministracionVariables));
                    return(StatusCode(StatusCodes.Status500InternalServerError,
                                      new RespuestaError
                    {
                        errorMessage = this._configuration.GetValue <string>("Mensajes:Errores:Generico")
                    }));
                }
            }
            finally
            {
                if (System.IO.File.Exists(rutaArchivo))
                {
                    System.IO.File.Delete(rutaArchivo);
                }
            }
        }
 public GeneraEventoController(IConfiguration configuration)
 {
     this._configuration = configuration;
     this.Nombrelog      = this._configuration.GetValue <string>("NombreLogVariables");
     this._log           = new BibliotecaSimulador.Logs.Logg(this.Nombrelog);
 }