Ejemplo n.º 1
0
 private async void EditarCeldaTipoUsuario(DataGridCellEditEndingEventArgs e)
 {
     if (e.EditAction == DataGridEditAction.Commit)
     {
         context.SaveChanges();
     }
 }
Ejemplo n.º 2
0
        private async void EditarCeldaEndingUsuario(DataGridCellEditEndingEventArgs e)
        {
            if (e.EditAction == DataGridEditAction.Commit)
            {
                var usuarioSeleccionado = e.Row.DataContext as Usuario;
                if (e.Column.DisplayIndex == 1) // 1 = Posición columna contraseña
                {
                    ContentPresenter contentPresenter = e.EditingElement as ContentPresenter;
                    DataTemplate     editingTemplate  = contentPresenter.ContentTemplate;
                    PasswordBox      contrasena       = editingTemplate.FindName("pbContrasena", contentPresenter) as PasswordBox;
                    string           hashContrasena   = ContrasenaHashing.ObtenerHashSHA256(ContrasenaHashing.SecureStringToString(contrasena.SecurePassword));
                    usuarioSeleccionado.Contrasena = hashContrasena;
                }

                // Comprueba si se va a baneado al admin que haya a menos otro admin activo
                if (usuarioSeleccionado.TipoUsuario.TipoUsuarioId == 1 && usuarioSeleccionado.Baneado == true &&
                    !context.Usuarios.Any(u => u.TipoId == 1 && u.Baneado != false && u.UsuarioId != usuarioSeleccionado.UsuarioId))
                {
                    usuarioSeleccionado.Baneado = false;
                    await DialogHost.Show(new MensajeInformacion()
                    {
                        Mensaje = "No se puede banear el usuario ya que al menos tiene que haber un admin activo."
                    }, "RootDialog");
                }

                context.SaveChanges();

                if (e.Column.DisplayIndex == 3) // 3 = Posición columna tipo usuario
                {
                    ContadorViewModel.Tipos = new ObservableCollection <TipoUsuario>(context.TiposUsuarios.ToList());
                }
            }
        }
Ejemplo n.º 3
0
        private async void ModificarGrupo()
        {
            var formGrupo = new FormTipo("Editar Grupo");

            formGrupo.vNombreUnico.Atributo = "Nombre";

            // Pestaña Clientes
            if (ViewModel is TabClientesViewModel)
            {
                var grupoSeleccionado = GrupoSeleccionado as GrupoCliente;
                formGrupo.Nombre      = grupoSeleccionado.Nombre;
                formGrupo.Descripcion = grupoSeleccionado.Descripcion;
                var nombreViejo = formGrupo.Nombre;
                formGrupo.vNombreUnico.Tipo         = "GrupoCliente";
                formGrupo.vNombreUnico.NombreActual = grupoSeleccionado.Nombre;
                if ((bool)await DialogHost.Show(formGrupo, "RootDialog"))
                {
                    grupoSeleccionado.Nombre      = formGrupo.Nombre;
                    grupoSeleccionado.Descripcion = formGrupo.Descripcion;
                    using (var context = new BiomasaEUPTContext())
                    {
                        var grupoCliente = context.GruposClientes.Single(gc => gc.Nombre == nombreViejo);
                        grupoCliente.Nombre      = formGrupo.Nombre;
                        grupoCliente.Descripcion = formGrupo.Descripcion;
                        context.SaveChanges();
                    }
                    CargarFiltro();
                }
            }
        }
Ejemplo n.º 4
0
        private async void BorrarGrupo()
        {
            var mensajeConf = new MensajeConfirmacion();

            // Pestaña Clientes
            if (ViewModel is TabClientesViewModel)
            {
                var grupoSeleccionado = GrupoSeleccionado as GrupoCliente;
                mensajeConf.Mensaje = "¿Está seguro de que desea borrar el grupo " + grupoSeleccionado.Nombre + "?";
                if ((bool)await DialogHost.Show(mensajeConf, "RootDialog"))
                {
                    using (var context = new BiomasaEUPTContext())
                    {
                        if (!context.GruposClientes.Any(gc => gc.GrupoClienteId == grupoSeleccionado.GrupoClienteId))
                        {
                            var grupo = context.GruposClientes.Where(gc => gc.GrupoClienteId == grupoSeleccionado.GrupoClienteId).First();
                            context.GruposClientes.Remove(grupo);
                            context.SaveChanges();
                            CargarFiltro();
                        }
                        else
                        {
                            await DialogHost.Show(new MensajeInformacion("No puede borrar el grupo debido a que está en uso."), "RootDialog");
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
0
        private async void AnadirGrupo()
        {
            var formGrupo = new FormTipo("Nuevo Grupo");

            formGrupo.vNombreUnico.Atributo = "Nombre";

            // Pestaña Clientes
            if (ViewModel is TabClientesViewModel)
            {
                formGrupo.vNombreUnico.Tipo = "GrupoCliente";
            }

            if ((bool)await DialogHost.Show(formGrupo, "RootDialog"))
            {
                using (var context = new BiomasaEUPTContext())
                {
                    if (ViewModel is TabClientesViewModel)
                    {
                        context.GruposClientes.Add(new GrupoCliente()
                        {
                            Nombre = formGrupo.Nombre, Descripcion = formGrupo.Descripcion
                        });
                    }

                    context.SaveChanges();
                }
                CargarFiltro();
            }
        }
Ejemplo n.º 6
0
        void Municipios(BiomasaEUPTContext context)
        {
            context.Configuration.AutoDetectChangesEnabled = false;
            context.Provincias.Load();
            var    municipios   = new List <Municipio>();
            string resourceName = "BiomasaEUPT.Migrations.DatosSeed.SeedMunicipios.csv";

            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                {
                    CsvReader csvReader = new CsvReader(reader);
                    csvReader.Configuration.WillThrowOnMissingField = false;
                    csvReader.Configuration.Delimiter = ";";
                    while (csvReader.Read())
                    {
                        var municipio       = csvReader.GetRecord <Municipio>();
                        var codigoProvincia = csvReader.GetField <string>("CodigoProvincia");
                        municipio.Provincia = context.Provincias.Local.Single(c => c.Codigo == codigoProvincia);
                        municipios.Add(municipio);
                        //  context.Municipios.AddOrUpdate(p => p.MunicipioId, municipio);
                    }
                }
            }

            int cantidad = 2500;

            for (int i = 0; i < municipios.Count; i += cantidad)
            {
                var listaMunicipios = municipios.GetRange(i, Math.Min(cantidad, municipios.Count - i));
                context.Municipios.AddOrUpdate(p => p.MunicipioId, listaMunicipios.ToArray());
                context.SaveChanges();
            }
        }
Ejemplo n.º 7
0
        private async void ModificarTipo()
        {
            var formTipo = new FormTipo("Editar Tipo");

            formTipo.vNombreUnico.Atributo = "Nombre";

            // Pestaña Clientes
            if (ViewModel is TabClientesViewModel)
            {
                var tipoSeleccionado = TipoSeleccionado as TipoCliente;
                formTipo.Nombre      = tipoSeleccionado.Nombre;
                formTipo.Descripcion = tipoSeleccionado.Descripcion;
                var nombreViejo = formTipo.Nombre;
                formTipo.vNombreUnico.Tipo         = "TipoCliente";
                formTipo.vNombreUnico.NombreActual = tipoSeleccionado.Nombre;
                if ((bool)await DialogHost.Show(formTipo, "RootDialog"))
                {
                    tipoSeleccionado.Nombre      = formTipo.Nombre;
                    tipoSeleccionado.Descripcion = formTipo.Descripcion;
                    using (var context = new BiomasaEUPTContext())
                    {
                        var tipoCliente = context.TiposClientes.Single(tc => tc.Nombre == nombreViejo);
                        tipoCliente.Nombre      = formTipo.Nombre;
                        tipoCliente.Descripcion = formTipo.Descripcion;
                        context.SaveChanges();
                    }
                    CargarFiltro();
                }
            }

            // Pestaña Proveedores
            else if (ViewModel is TabProveedoresViewModel)
            {
                var tipoSeleccionado = TipoSeleccionado as TipoProveedor;
                formTipo.Nombre      = tipoSeleccionado.Nombre;
                formTipo.Descripcion = tipoSeleccionado.Descripcion;
                var nombreViejo = formTipo.Nombre;
                formTipo.vNombreUnico.Tipo         = "TipoProveedor";
                formTipo.vNombreUnico.NombreActual = tipoSeleccionado.Nombre;
                if ((bool)await DialogHost.Show(formTipo, "RootDialog"))
                {
                    tipoSeleccionado.Nombre      = formTipo.Nombre;
                    tipoSeleccionado.Descripcion = formTipo.Descripcion;
                    using (var context = new BiomasaEUPTContext())
                    {
                        var tipoProveedor = context.TiposProveedores.Single(tc => tc.Nombre == nombreViejo);
                        tipoProveedor.Nombre      = formTipo.Nombre;
                        tipoProveedor.Descripcion = formTipo.Descripcion;
                        context.SaveChanges();
                    }
                    CargarFiltro();
                }
            }
        }
Ejemplo n.º 8
0
        private async void BorrarTipo()
        {
            var mensajeConf = new MensajeConfirmacion();

            // Pestaña Clientes
            if (ViewModel is TabClientesViewModel)
            {
                var tipoSeleccionado = TipoSeleccionado as TipoCliente;
                mensajeConf.Mensaje = "¿Está seguro de que desea borrar el tipo " + tipoSeleccionado.Nombre + "?";
                if ((bool)await DialogHost.Show(mensajeConf, "RootDialog"))
                {
                    using (var context = new BiomasaEUPTContext())
                    {
                        if (!context.Clientes.Any(t => t.TipoId == tipoSeleccionado.TipoClienteId))
                        {
                            var tipoABorrar = context.TiposClientes.Single(tc => tc.TipoClienteId == tipoSeleccionado.TipoClienteId);
                            context.TiposClientes.Remove(tipoABorrar);
                            context.SaveChanges();
                            CargarFiltro();
                        }
                        else
                        {
                            await DialogHost.Show(new MensajeInformacion("No puede borrar el tipo debido a que está en uso."), "RootDialog");
                        }
                    }
                }
            }

            // Pestaña Proveedores
            else if (ViewModel is TabProveedoresViewModel)
            {
                var tipoSeleccionado = TipoSeleccionado as TipoProveedor;
                mensajeConf.Mensaje = "¿Está seguro de que desea borrar el tipo " + tipoSeleccionado.Nombre + "?";
                if ((bool)await DialogHost.Show(mensajeConf, "RootDialog"))
                {
                    using (var context = new BiomasaEUPTContext())
                    {
                        if (!context.Proveedores.Any(t => t.TipoId == tipoSeleccionado.TipoProveedorId))
                        {
                            var tipoABorrar = context.TiposProveedores.Single(tc => tc.TipoProveedorId == tipoSeleccionado.TipoProveedorId);
                            context.TiposProveedores.Remove(tipoABorrar);
                            context.SaveChanges();
                            CargarFiltro();
                        }
                        else
                        {
                            await DialogHost.Show(new MensajeInformacion("No puede borrar el tipo debido a que está en uso"), "RootDialog");
                        }
                    }
                }
            }
        }
        private async void AnadirOrdenElaboracion()
        {
            var formElaboracion = new FormElaboracion(context);

            if ((bool)await DialogHost.Show(formElaboracion, "RootDialog"))
            {
                context.OrdenesElaboraciones.Add(new OrdenElaboracion()
                {
                    Descripcion         = formElaboracion.Descripcion,
                    EstadoElaboracionId = 1
                });
                context.SaveChanges();
            }
        }
Ejemplo n.º 10
0
        private async void AnadirTipo()
        {
            var formTipo = new FormTipo();

            formTipo.vNombreUnico.Atributo = "Nombre";

            // Pestaña Clientes
            if (ViewModel is TabClientesViewModel)
            {
                formTipo.vNombreUnico.Tipo = "TipoCliente";
            }

            // Pestaña Proveedores
            else if (ViewModel is TabProveedoresViewModel)
            {
                formTipo.vNombreUnico.Tipo = "TipoProveedor";
            }

            if ((bool)await DialogHost.Show(formTipo, "RootDialog"))
            {
                using (var context = new BiomasaEUPTContext())
                {
                    if (ViewModel is TabClientesViewModel)
                    {
                        context.TiposClientes.Add(new TipoCliente()
                        {
                            Nombre      = formTipo.Nombre,
                            Descripcion = formTipo.Descripcion
                        });
                        var tabClientesViewModel = ViewModel as TabClientesViewModel;
                        tabClientesViewModel.CargarClientes();
                    }
                    if (ViewModel is TabProveedoresViewModel)
                    {
                        context.TiposProveedores.Add(new TipoProveedor()
                        {
                            Nombre      = formTipo.Nombre,
                            Descripcion = formTipo.Descripcion
                        });
                        var tabProveedoresViewModel = ViewModel as TabProveedoresViewModel;
                        tabProveedoresViewModel.CargarProveedores();
                    }
                    context.SaveChanges();
                }
                CargarFiltro();
            }
        }
Ejemplo n.º 11
0
        void Paises(BiomasaEUPTContext context)
        {
            string resourceName = "BiomasaEUPT.Migrations.DatosSeed.SeedPaises.csv";

            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader);
                    csvReader.Configuration.WillThrowOnMissingField = false;
                    csvReader.Configuration.Delimiter = ";";
                    var paises = csvReader.GetRecords <Pais>().ToArray();
                    context.Paises.AddOrUpdate(c => c.Codigo, paises);
                }
            }
            context.SaveChanges();
        }
Ejemplo n.º 12
0
        private async void bCambiarContrasena_Click(object sender, RoutedEventArgs e)
        {
            int usuarioId      = ((winAjustes.Owner as MainWindow).DataContext as MainWindowViewModel).Usuario.UsuarioId;
            var viewModel      = DataContext as WinAjustesViewModel;
            var hashContrasena = ContrasenaHashing.ObtenerHashSHA256(
                ContrasenaHashing.SecureStringToString(viewModel.Contrasena)
                );

            using (var context = new BiomasaEUPTContext())
            {
                var usuario = context.Usuarios.Single(u => u.UsuarioId == usuarioId);
                usuario.Contrasena = hashContrasena;
                context.SaveChanges();
            }
            var mensaje = new MensajeInformacion()
            {
                Titulo  = "Contraseña Cambiada",
                Mensaje = "La contraseña se ha cambiado correctamente."
            };
            var resultado = await DialogHost.Show(mensaje, "RootDialog");
        }
Ejemplo n.º 13
0
        private async void AnadirOrdenEnvasado()
        {
            var formEnvasado = new FormEnvasado(context);

            if ((bool)await DialogHost.Show(formEnvasado, "RootDialog"))
            {
                context.OrdenesEnvasados.Add(new OrdenEnvasado()
                {
                    Descripcion      = formEnvasado.Descripcion,
                    EstadoEnvasadoId = 1
                });
                context.SaveChanges();
            }

            //CargarOrdenesEnvasados();
        }
Ejemplo n.º 14
0
        void MunicipiosLENTO(BiomasaEUPTContext context)
        {
            context.Provincias.Load();
            string resourceName = "BiomasaEUPT.Migrations.DatosSeed.SeedMunicipios.csv";

            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                {
                    CsvReader csvReader = new CsvReader(reader);
                    csvReader.Configuration.WillThrowOnMissingField = false;
                    csvReader.Configuration.Delimiter = ";";
                    while (csvReader.Read())
                    {
                        var municipio       = csvReader.GetRecord <Municipio>();
                        var codigoProvincia = csvReader.GetField <string>("CodigoProvincia");
                        municipio.Provincia = context.Provincias.Local.Single(c => c.Codigo == codigoProvincia);
                        context.Municipios.AddOrUpdate(p => p.MunicipioId, municipio);
                    }
                }
            }
            context.SaveChanges();
        }
Ejemplo n.º 15
0
        void Comunidades(BiomasaEUPTContext context)
        {
            context.Paises.Load();
            string resourceName = "BiomasaEUPT.Migrations.DatosSeed.SeedComunidades.csv";

            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                {
                    CsvReader csvReader = new CsvReader(reader);
                    csvReader.Configuration.WillThrowOnMissingField = false;
                    csvReader.Configuration.Delimiter = ";";
                    while (csvReader.Read())
                    {
                        var comunidad  = csvReader.GetRecord <Comunidad>();
                        var codigoPais = csvReader.GetField <string>("Codigo").Substring(0, 2);
                        comunidad.Pais = context.Paises.Local.Single(c => c.Codigo == codigoPais);
                        context.Comunidades.AddOrUpdate(p => p.Codigo, comunidad);
                    }
                }
            }
            context.SaveChanges();
        }
Ejemplo n.º 16
0
        public SeedTablas(BiomasaEUPTContext context)
        {
            this.context = context;
            assembly     = Assembly.GetExecutingAssembly();

            CsvConfiguration csvConfig = new CsvConfiguration()
            {
                WillThrowOnMissingField = false,
                Delimiter = ";"
            };

            string resourceName = String.Format(NOMBRE_CSV, "TiposUsuarios");

            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <TipoUsuario>().ToArray();
                    context.TiposUsuarios.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "Permisos");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <Permiso>();
                    while (csvReader.Read())
                    {
                        // Alternativa a PermisoMap
                        datos.Add(new Permiso()
                        {
                            PermisoId = csvReader.GetField <int>("PermisoId"),
                            Tab       = (Tab)Enum.Parse(typeof(Tab), csvReader.GetField <string>("Tab")),
                            TipoId    = csvReader.GetField <int>("TipoId")
                        });
                    }
                    context.Permisos.AddOrUpdate(d => d.PermisoId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "Usuarios");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    csvReader.Configuration.RegisterClassMap <UsuarioMap>();
                    var datos = csvReader.GetRecords <Usuario>().ToArray();
                    foreach (var d in datos)
                    {
                        if (d.Contrasena == null)
                        {
                            d.Contrasena = ContrasenaHashing.ObtenerHashSHA256(d.Nombre);
                        }
                    }
                    context.Usuarios.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "TiposProveedores");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <TipoProveedor>().ToArray();
                    context.TiposProveedores.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "TiposClientes");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <TipoCliente>().ToArray();
                    context.TiposClientes.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "GruposClientes");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <GrupoCliente>().ToArray();
                    context.GruposClientes.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "Paises");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <Pais>().ToArray();
                    context.Paises.AddOrUpdate(d => d.Codigo, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "Comunidades");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    // Hay que mapear cada columna ya que la columna Codigo
                    // piensa que es la de la tabla Pais
                    csvReader.Configuration.RegisterClassMap <ComunidadMap>();
                    var datos = csvReader.GetRecords <Comunidad>().ToArray();
                    foreach (var d in datos)
                    {
                        if (d.PaisId == null)
                        {
                            d.PaisId = context.Paises.Single(c => c.Codigo == d.Codigo.Substring(0, 2)).PaisId;
                        }
                    }
                    context.Comunidades.AddOrUpdate(d => d.Codigo, datos);
                }
            }
            context.SaveChanges();

            resourceName = String.Format(NOMBRE_CSV, "Provincias");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    csvReader.Configuration.RegisterClassMap <ProvinciaMap>();
                    while (csvReader.Read())
                    {
                        var provincia       = csvReader.GetRecord <Provincia>();
                        var codigoComunidad = csvReader.GetField <string>("CodigoComunidad");
                        provincia.ComunidadId = context.Comunidades.Single(c => c.Codigo == codigoComunidad).ComunidadId;
                        context.Provincias.AddOrUpdate(p => p.Codigo, provincia);
                    }
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "Municipios");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    csvReader.Configuration.RegisterClassMap <MunicipioMap>();
                    while (csvReader.Read())
                    {
                        var municipio       = csvReader.GetRecord <Municipio>();
                        var codigoProvincia = csvReader.GetField <string>("CodigoProvincia");
                        municipio.ProvinciaId = context.Provincias.Single(c => c.Codigo == codigoProvincia).ProvinciaId;
                        // Si se ejecuta dos veces el seed puede machacar municipios por tener el mismo código postal
                        context.Municipios.AddOrUpdate(m => m.CodigoPostal, municipio);
                    }
                }
            }
            context.SaveChanges();

            resourceName = String.Format(NOMBRE_CSV, "Clientes");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    csvReader.Configuration.RegisterClassMap <ClienteMap>();
                    var datos = csvReader.GetRecords <Cliente>().ToArray();
                    foreach (var d in datos)
                    {
                        if (d.Observaciones == string.Empty)
                        {
                            d.Observaciones = null;
                        }
                    }
                    context.Clientes.AddOrUpdate(p => p.ClienteId, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "Proveedores");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    csvReader.Configuration.RegisterClassMap <ProveedorMap>();
                    var datos = csvReader.GetRecords <Proveedor>().ToArray();
                    foreach (var d in datos)
                    {
                        if (d.Observaciones == string.Empty)
                        {
                            d.Observaciones = null;
                        }
                    }
                    context.Proveedores.AddOrUpdate(p => p.ProveedorId, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "EstadosRecepciones");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <EstadoRecepcion>().ToArray();
                    context.EstadosRecepciones.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "SitiosRecepciones");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <SitioRecepcion>().ToArray();
                    context.SitiosRecepciones.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "HuecosRecepciones");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <HuecoRecepcion>();
                    while (csvReader.Read())
                    {
                        // Alternativa a HuecoRecepcionMap
                        datos.Add(new HuecoRecepcion()
                        {
                            HuecoRecepcionId = csvReader.GetField <int>("HuecoRecepcionId"),
                            Nombre           = csvReader.GetField <string>("Nombre"),
                            UnidadesTotales  = csvReader.GetField <int>("UnidadesTotales"),
                            VolumenTotal     = csvReader.GetField <double>("VolumenTotal"),
                            SitioId          = csvReader.GetField <int>("SitioId")
                        });
                    }
                    context.HuecosRecepciones.AddOrUpdate(d => d.HuecoRecepcionId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "Procedencias");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <Procedencia>().ToArray();
                    context.Procedencias.AddOrUpdate(d => d.ProcedenciaId, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "Recepciones");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <Recepcion>();
                    while (csvReader.Read())
                    {
                        // Alternativa a RecepcionMap
                        datos.Add(new Recepcion()
                        {
                            NumeroAlbaran  = csvReader.GetField <string>("NumeroAlbaran"),
                            FechaRecepcion = csvReader.GetField <DateTime>("FechaRecepcion"),
                            ProveedorId    = csvReader.GetField <int>("ProveedorId"),
                            EstadoId       = csvReader.GetField <int>("EstadoId")
                        });
                    }
                    context.Recepciones.AddOrUpdate(d => d.NumeroAlbaran, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "GruposMateriasPrimas");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <GrupoMateriaPrima>();
                    while (csvReader.Read())
                    {
                        // Alternativa a GrupoMateriaPrimaMap
                        datos.Add(new GrupoMateriaPrima()
                        {
                            GrupoMateriaPrimaId = csvReader.GetField <int>("GrupoMateriaPrimaId"),
                            Nombre      = csvReader.GetField <string>("Nombre"),
                            Descripcion = csvReader.GetField <string>("Descripcion")
                        });
                    }
                    context.GruposMateriasPrimas.AddOrUpdate(d => d.GrupoMateriaPrimaId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "TiposMateriasPrimas");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <TipoMateriaPrima>();
                    while (csvReader.Read())
                    {
                        // Alternativa a TipoMateriaPrimaMap
                        datos.Add(new TipoMateriaPrima()
                        {
                            TipoMateriaPrimaId = csvReader.GetField <int>("TipoMateriaPrimaId"),
                            Nombre             = csvReader.GetField <string>("Nombre"),
                            Descripcion        = csvReader.GetField <string>("Descripcion"),
                            MedidoEnUnidades   = csvReader.GetField <bool>("MedidoEnUnidades"),
                            MedidoEnVolumen    = csvReader.GetField <bool>("MedidoEnVolumen"),
                            GrupoId            = csvReader.GetField <int>("GrupoId")
                        });
                    }
                    context.TiposMateriasPrimas.AddOrUpdate(d => d.TipoMateriaPrimaId, datos.ToArray());
                }
            }
            context.SaveChanges();

            resourceName = String.Format(NOMBRE_CSV, "MateriasPrimas");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <MateriaPrima>();
                    while (csvReader.Read())
                    {
                        // Campos opcionales
                        csvReader.TryGetField <string>("Observaciones", out var observaciones);
                        observaciones = (observaciones == "") ? null : observaciones;

                        datos.Add(new MateriaPrima()
                        {
                            MateriaPrimaId = csvReader.GetField <int>("MateriaPrimaId"),
                            TipoId         = csvReader.GetField <int>("TipoId"),
                            Volumen        = csvReader.GetField <double?>("Volumen"),
                            Unidades       = csvReader.GetField <int?>("Unidades"),
                            RecepcionId    = csvReader.GetField <int>("RecepcionId"),
                            ProcedenciaId  = csvReader.GetField <int>("ProcedenciaId"),
                            FechaBaja      = csvReader.GetField <DateTime?>("FechaBaja"),
                            Observaciones  = observaciones
                        });
                    }
                    context.MateriasPrimas.AddOrUpdate(d => d.MateriaPrimaId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "HistorialHuecosRecepciones");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <HistorialHuecoRecepcion>();
                    while (csvReader.Read())
                    {
                        // Alternativa a HistorialHuecoRecepcionMap
                        datos.Add(new HistorialHuecoRecepcion()
                        {
                            HistorialHuecoRecepcionId = csvReader.GetField <int>("HistorialHuecoRecepcionId"),
                            Volumen          = csvReader.GetField <double?>("Volumen"),
                            Unidades         = csvReader.GetField <int?>("Unidades"),
                            MateriaPrimaId   = csvReader.GetField <int>("MateriaPrimaId"),
                            HuecoRecepcionId = csvReader.GetField <int>("HuecoRecepcionId")
                        });
                    }
                    context.HistorialHuecosRecepciones.AddOrUpdate(d => d.HistorialHuecoRecepcionId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "EstadosElaboraciones");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <EstadoElaboracion>().ToArray();
                    context.EstadosElaboraciones.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "GruposProductosTerminados");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <GrupoProductoTerminado>();
                    while (csvReader.Read())
                    {
                        // Alternativa a GrupoProductoTerminadoMap
                        datos.Add(new GrupoProductoTerminado()
                        {
                            GrupoProductoTerminadoId = csvReader.GetField <int>("GrupoProductoTerminadoId"),
                            Nombre      = csvReader.GetField <string>("Nombre"),
                            Descripcion = csvReader.GetField <string>("Descripcion")
                        });
                    }
                    context.GruposProductosTerminados.AddOrUpdate(d => d.GrupoProductoTerminadoId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "TiposProductosTerminados");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <TipoProductoTerminado>();
                    while (csvReader.Read())
                    {
                        // Alternativa a TipoProductoTerminadoMap
                        datos.Add(new TipoProductoTerminado()
                        {
                            TipoProductoTerminadoId = csvReader.GetField <int>("TipoProductoTerminadoId"),
                            Nombre           = csvReader.GetField <string>("Nombre"),
                            Tamano           = csvReader.GetField <string>("Tamano"),
                            Humedad          = csvReader.GetField <double>("Humedad"),
                            MedidoEnUnidades = csvReader.GetField <bool>("MedidoEnUnidades"),
                            MedidoEnVolumen  = csvReader.GetField <bool>("MedidoEnVolumen"),
                            GrupoId          = csvReader.GetField <int>("GrupoId")
                        });
                    }
                    context.TiposProductosTerminados.AddOrUpdate(d => d.TipoProductoTerminadoId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "OrdenesElaboraciones");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <OrdenElaboracion>();
                    while (csvReader.Read())
                    {
                        // Alternativa a OrdenElaboracionMap
                        datos.Add(new OrdenElaboracion()
                        {
                            OrdenElaboracionId  = csvReader.GetField <int>("OrdenElaboracionId"),
                            EstadoElaboracionId = csvReader.GetField <int>("EstadoElaboracionId"),
                            Descripcion         = csvReader.GetField <string>("Descripcion")
                        });
                    }
                    context.OrdenesElaboraciones.AddOrUpdate(d => d.OrdenElaboracionId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "SitiosAlmacenajes");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <SitioAlmacenaje>().ToArray();
                    context.SitiosAlmacenajes.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "HuecosAlmacenajes");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <HuecoAlmacenaje>();
                    while (csvReader.Read())
                    {
                        // Alternativa a HuecoAlmacenajeMap
                        datos.Add(new HuecoAlmacenaje()
                        {
                            HuecoAlmacenajeId = csvReader.GetField <int>("HuecoAlmacenajeId"),
                            Nombre            = csvReader.GetField <string>("Nombre"),
                            UnidadesTotales   = csvReader.GetField <int>("UnidadesTotales"),
                            VolumenTotal      = csvReader.GetField <double>("VolumenTotal"),
                            SitioId           = csvReader.GetField <int>("SitioId")
                        });
                    }
                    context.HuecosAlmacenajes.AddOrUpdate(d => d.HuecoAlmacenajeId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "ProductosTerminados");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <ProductoTerminado>();
                    while (csvReader.Read())
                    {
                        // Campos opcionales
                        csvReader.TryGetField <string>("Observaciones", out var observaciones);
                        observaciones = (observaciones == "") ? null : observaciones;

                        datos.Add(new ProductoTerminado()
                        {
                            ProductoTerminadoId = csvReader.GetField <int>("ProductoTerminadoId"),
                            TipoId        = csvReader.GetField <int>("TipoId"),
                            Volumen       = csvReader.GetField <double?>("Volumen"),
                            Unidades      = csvReader.GetField <int?>("Unidades"),
                            OrdenId       = csvReader.GetField <int>("OrdenId"),
                            FechaBaja     = csvReader.GetField <DateTime?>("FechaBaja"),
                            Observaciones = observaciones
                        });
                    }
                    context.ProductosTerminados.AddOrUpdate(d => d.ProductoTerminadoId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "HistorialHuecosAlmacenajes");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <HistorialHuecoAlmacenaje>();
                    while (csvReader.Read())
                    {
                        // Alternativa a HistorialHuecoAlmacenajeMap
                        datos.Add(new HistorialHuecoAlmacenaje()
                        {
                            HistorialHuecoAlmacenajeId = csvReader.GetField <int>("HistorialHuecoAlmacenajeId"),
                            Volumen             = csvReader.GetField <double?>("Volumen"),
                            Unidades            = csvReader.GetField <int?>("Unidades"),
                            ProductoTerminadoId = csvReader.GetField <int>("ProductoTerminadoId"),
                            HuecoAlmacenajeId   = csvReader.GetField <int>("HuecoAlmacenajeId")
                        });
                    }
                    context.HistorialHuecosAlmacenajes.AddOrUpdate(d => d.HistorialHuecoAlmacenajeId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "ProductosTerminadosComposiciones");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <ProductoTerminadoComposicion>();
                    while (csvReader.Read())
                    {
                        // Alternativa a ProductoTerminadoComposicionMap
                        datos.Add(new ProductoTerminadoComposicion()
                        {
                            ProductoTerminadoComposicionId = csvReader.GetField <int>("ProductoTerminadoComposicionId"),
                            Volumen          = csvReader.GetField <int?>("Volumen"),
                            Unidades         = csvReader.GetField <int?>("Unidades"),
                            HistorialHuecoId = csvReader.GetField <int>("HistorialHuecoId"),
                            ProductoId       = csvReader.GetField <int>("ProductoId")
                        });
                    }
                    context.ProductosTerminadosComposiciones.AddOrUpdate(d => d.ProductoTerminadoComposicionId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "EstadosPedidos");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <EstadoPedido>().ToArray();
                    context.EstadosPedidos.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();

            resourceName = String.Format(NOMBRE_CSV, "EstadosEnvasados");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = csvReader.GetRecords <EstadoEnvasado>().ToArray();
                    context.EstadosEnvasados.AddOrUpdate(d => d.Nombre, datos);
                }
            }
            context.SaveChanges();

            resourceName = String.Format(NOMBRE_CSV, "GruposProductosEnvasados");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <GrupoProductoEnvasado>();
                    while (csvReader.Read())
                    {
                        // Alternativa a GrupoProductoEnvasadoMap
                        datos.Add(new GrupoProductoEnvasado()
                        {
                            GrupoProductoEnvasadoId = csvReader.GetField <int>("GrupoProductoEnvasadoId"),
                            Nombre      = csvReader.GetField <string>("Nombre"),
                            Descripcion = csvReader.GetField <string>("Descripcion")
                        });
                    }
                    context.GruposProductosEnvasados.AddOrUpdate(d => d.GrupoProductoEnvasadoId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "TiposProductosEnvasados");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <TipoProductoEnvasado>();
                    while (csvReader.Read())
                    {
                        datos.Add(new TipoProductoEnvasado()
                        {
                            TipoProductoEnvasadoId = csvReader.GetField <int>("TipoProductoEnvasadoId"),
                            Nombre           = csvReader.GetField <string>("Nombre"),
                            Descripcion      = csvReader.GetField <string>("Descripcion"),
                            MedidoEnVolumen  = csvReader.GetField <bool>("MedidoEnVolumen"),
                            MedidoEnUnidades = csvReader.GetField <bool>("MedidoEnUnidades"),
                            GrupoId          = csvReader.GetField <int>("GrupoId")
                        });
                    }
                    context.TiposProductosEnvasados.AddOrUpdate(d => d.TipoProductoEnvasadoId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "Picking");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <Picking>();
                    while (csvReader.Read())
                    {
                        datos.Add(new Picking()
                        {
                            PickingId       = csvReader.GetField <int>("PickingId"),
                            Nombre          = csvReader.GetField <string>("Nombre"),
                            VolumenTotal    = csvReader.GetField <double>("VolumenTotal"),
                            UnidadesTotales = csvReader.GetField <int>("UnidadesTotales")
                        });
                    }
                    context.Picking.AddOrUpdate(d => d.PickingId, datos.ToArray());
                }
            }
            context.SaveChanges();


            resourceName = String.Format(NOMBRE_CSV, "OrdenesEnvasados");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <OrdenEnvasado>();
                    while (csvReader.Read())
                    {
                        // Alternativa a OrdenEnvasadoMap
                        datos.Add(new OrdenEnvasado()
                        {
                            OrdenEnvasadoId  = csvReader.GetField <int>("OrdenEnvasadoId"),
                            EstadoEnvasadoId = csvReader.GetField <int>("EstadoEnvasadoId"),
                            Descripcion      = csvReader.GetField <string>("Descripcion")
                        });
                    }
                    context.OrdenesEnvasados.AddOrUpdate(d => d.OrdenEnvasadoId, datos.ToArray());
                }
            }
            context.SaveChanges();

            resourceName = String.Format(NOMBRE_CSV, "ProductosEnvasados");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <ProductoEnvasado>();
                    while (csvReader.Read())
                    {
                        // Campos opcionales
                        csvReader.TryGetField <string>("Observaciones", out var observaciones);
                        observaciones = (observaciones == "") ? null : observaciones;

                        datos.Add(new ProductoEnvasado()
                        {
                            ProductoEnvasadoId     = csvReader.GetField <int>("ProductoEnvasadoId"),
                            Volumen                = csvReader.GetField <double?>("Volumen"),
                            Unidades               = csvReader.GetField <int?>("Unidades"),
                            TipoProductoEnvasadoId = csvReader.GetField <int>("TipoProductoEnvasadoId"),
                            OrdenId                = csvReader.GetField <int>("OrdenId"),
                            PickingId              = csvReader.GetField <int>("PickingId"),
                            Observaciones          = observaciones
                        });
                    }
                    context.ProductosEnvasados.AddOrUpdate(d => d.ProductoEnvasadoId, datos.ToArray());
                }
            }
            context.SaveChanges();

            resourceName = String.Format(NOMBRE_CSV, "ProductosEnvasadosComposiciones");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <ProductoEnvasadoComposicion>();
                    while (csvReader.Read())
                    {
                        // Alternativa a ProductoTerminadoComposicionMap
                        datos.Add(new ProductoEnvasadoComposicion()
                        {
                            ProductoEnvasadoComposicionId = csvReader.GetField <int>("ProductoEnvasadoComposicionId"),
                            Volumen          = csvReader.GetField <int?>("Volumen"),
                            Unidades         = csvReader.GetField <int?>("Unidades"),
                            HistorialHuecoId = csvReader.GetField <int>("HistorialHuecoId"),
                            ProductoId       = csvReader.GetField <int>("ProductoId")
                        });
                    }
                    context.ProductosEnvasadosComposiciones.AddOrUpdate(d => d.ProductoEnvasadoComposicionId, datos.ToArray());
                }
            }
            context.SaveChanges();

            resourceName = String.Format(NOMBRE_CSV, "PedidosCabeceras");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <PedidoCabecera>();
                    while (csvReader.Read())
                    {
                        datos.Add(new PedidoCabecera()
                        {
                            PedidoCabeceraId = csvReader.GetField <int>("PedidoCabeceraId"),
                            FechaPedido      = csvReader.GetField <DateTime>("FechaPedido"),
                            EstadoId         = csvReader.GetField <int>("EstadoId"),
                            ClienteId        = csvReader.GetField <int>("ClienteId")
                        });
                    }
                    context.PedidosCabeceras.AddOrUpdate(d => d.PedidoCabeceraId, datos.ToArray());
                }
            }
            context.SaveChanges();

            resourceName = String.Format(NOMBRE_CSV, "PedidosLineas");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <PedidoLinea>();
                    while (csvReader.Read())
                    {
                        datos.Add(new PedidoLinea()
                        {
                            PedidoLineaId          = csvReader.GetField <int>("PedidoLineaId"),
                            Volumen                = csvReader.GetField <double?>("Volumen"),
                            Unidades               = csvReader.GetField <int?>("Unidades"),
                            VolumenPreparado       = csvReader.GetField <double?>("VolumenPreparado"),
                            UnidadesPreparadas     = csvReader.GetField <int?>("UnidadesPreparadas"),
                            PedidoCabeceraId       = csvReader.GetField <int>("PedidoCabeceraId"),
                            TipoProductoEnvasadoId = csvReader.GetField <int>("TipoProductoEnvasadoId")
                        });
                    }
                    context.PedidosLineas.AddOrUpdate(d => d.PedidoLineaId, datos.ToArray());
                }
            }
            context.SaveChanges();

            resourceName = String.Format(NOMBRE_CSV, "PedidosDetalles");
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    CsvReader csvReader = new CsvReader(reader, csvConfig);
                    var       datos     = new List <PedidoDetalle>();
                    while (csvReader.Read())
                    {
                        datos.Add(new PedidoDetalle()
                        {
                            PedidoDetalleId    = csvReader.GetField <int>("PedidoDetalleId"),
                            Volumen            = csvReader.GetField <double?>("Volumen"),
                            Unidades           = csvReader.GetField <int?>("Unidades"),
                            PedidoLineaId      = csvReader.GetField <int>("PedidoLineaId"),
                            ProductoEnvasadoId = csvReader.GetField <int>("ProductoEnvasadoId")
                        });
                    }
                    context.PedidosDetalles.AddOrUpdate(d => d.PedidoDetalleId, datos.ToArray());
                }
            }
            context.SaveChanges();
        }