public async Task <IActionResult> CreatePOST(EmpresaAndClasificacionViewModel EmpresaVM)
        {
            //EmpresaVM.Empresa.ClasificacionID = Convert.ToInt32(Request.Form["ClasificacionId"].ToString());
            //try
            //{
            if (ModelState.IsValid)
            {
                var files = HttpContext.Request.Form.Files;

                if (files.Count > 0)
                {
                    byte[] p1 = null;
                    using (var fs1 = files[0].OpenReadStream())
                    {
                        using (var ms1 = new MemoryStream())
                        {
                            fs1.CopyTo(ms1);
                            p1 = ms1.ToArray();
                        }
                    }
                    EmpresaVM.Empresa.Imagen = p1;
                }
                _db.Empresa.Add(EmpresaVM.Empresa);
                await _db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            //}
            //catch (Exception ex)
            //{
            //ViewBag.Error = ex.Message;
            //}
            return(View(EmpresaVM.Empresa));
        }
        public async Task <IActionResult> Edit(int id, EmpresaAndClasificacionViewModel model)
        {
            if (ModelState.IsValid)
            {
                var EjeExist = _db.Empresa.Include(s => s.Clasificacion).Where(s => s.Name == model.Empresa.Name &&
                                                                               s.ClasificacionID == model.Empresa.ClasificacionID);

                if (EjeExist.Count() > 0)
                {
                    StatusMessage = "Error: Esta Empresa ya ha sido creado en la Clasificacion " + EjeExist.First().Clasificacion.Name +
                                    " Por favor, use otro nombre";
                }
                else
                {
                    var ProdCatFromDB = await _db.Empresa.FindAsync(id);

                    ProdCatFromDB.Name = model.Empresa.Name;
                    await _db.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
            }
            EmpresaAndClasificacionViewModel modelVM = new EmpresaAndClasificacionViewModel()
            {
                Clasificacion = await _db.Clasificacion.ToListAsync(),
                Empresa       = model.Empresa,
                EmpresaList   = await _db.Empresa.OrderBy(p => p.Name).Select(p => p.Name).ToListAsync(),
                StatusMessage = StatusMessage
            };

            return(View(modelVM));
        }
 public EmpresaController(ApplicationDbContext db,
                          IWebHostEnvironment hostEnvironment)
 {
     _db = db;
     _hostEnvironment = hostEnvironment;
     EmpresaVM        = new EmpresaAndClasificacionViewModel()
     {
         Clasificacion = _db.Clasificacion,
         Empresa       = new Models.Empresa()
     };
 }
        //GET - CREATE
        public async Task <IActionResult> Create()
        {
            EmpresaAndClasificacionViewModel EmpresaVM = new EmpresaAndClasificacionViewModel()
            {
                Clasificacion = await _db.Clasificacion.ToListAsync(),
                Empresa       = new Models.Empresa(),
                EmpresaList   =
                    await _db.Empresa.OrderBy(p => p.Name).Select(p => p.Name).Distinct().ToListAsync()
            };

            return(View(EmpresaVM));
        }
        //GET - DELETE
        public async Task <IActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var eje = await _db.Empresa.SingleOrDefaultAsync(m => m.Id == id);

            if (eje == null)
            {
                return(NotFound());
            }
            EmpresaAndClasificacionViewModel model = new EmpresaAndClasificacionViewModel()
            {
                Clasificacion = await _db.Clasificacion.ToListAsync(),
                Empresa       = eje,
                EmpresaList   = await _db.Empresa.OrderBy(p => p.Name).Select(p => p.Name).Distinct().ToListAsync()
            };

            return(View(model));
        }