예제 #1
0
        public ActionResult Create(ModeloEditViewModel modeloVm)
        {
            if (!ModelState.IsValid)
            {
                modeloVm.Marcas = _dbContext.Marcas.ToList();
                modeloVm.Tipos  = _dbContext.Tipos.ToList();
                return(View(modeloVm));
            }

            Modelo modelo = ConstruirModelo(modeloVm);

            if (_dbContext.Modelos.Any(m => m.MarcaId == modelo.MarcaId &&
                                       m.TipoId == modelo.TipoId &&
                                       m.NombreModelo == modelo.NombreModelo))
            {
                modeloVm.Marcas = _dbContext.Marcas.ToList();
                modeloVm.Tipos  = _dbContext.Tipos.ToList();
                ModelState.AddModelError(string.Empty, "Modelo repetido!!!");
                return(View(modeloVm));
            }

            using (var tran = _dbContext.Database.BeginTransaction())
            {
                try
                {
                    var folder = "~/Content/Images/Modelos/";
                    var file   = "";
                    _dbContext.Modelos.Add(modelo);
                    _dbContext.SaveChanges();
                    if (modeloVm.FotoFile != null)
                    {
                        file = $"{modelo.ModeloId}.jpg";
                        var response = Helper.UploadPhoto(modeloVm.FotoFile, folder, file);
                        if (!response)
                        {
                            file = "SinImagenDisponible.jpg";
                        }
                    }
                    else
                    {
                        file = "SinImagenDisponible.jpg";
                    }

                    modelo.Foto = $"{folder}{file}";
                    _dbContext.Entry(modelo).State = EntityState.Modified;
                    _dbContext.SaveChanges();
                    tran.Commit();
                    TempData["Msg"] = "Registro agregado";
                    return(RedirectToAction("Index"));
                }
                catch (Exception e)
                {
                    modeloVm.Marcas = _dbContext.Marcas.ToList();
                    modeloVm.Tipos  = _dbContext.Tipos.ToList();

                    ModelState.AddModelError(string.Empty, e.Message);
                    return(View(modeloVm));
                }
            }
        }
예제 #2
0
        public ActionResult Create(MarcaEditViewModel marcaVm)
        {
            if (!ModelState.IsValid)
            {
                return(View(marcaVm));
            }

            Marca marca = ConstruirMarca(marcaVm);

            if (_dbContext.Marcas.Any(m => m.NombreMarca == marca.NombreMarca))
            {
                ModelState.AddModelError(string.Empty, "Registro repetido!!!");
                return(View(marcaVm));
            }

            using (var transaction = _dbContext.Database.BeginTransaction())
            {
                try
                {
                    var    folder = "~/Content/Images/Marcas/";
                    string file   = "";
                    _dbContext.Marcas.Add(marca);
                    _dbContext.SaveChanges();
                    if (marcaVm.LogoFile != null)
                    {
                        file = $"{marca.MarcaId}.jpg";
                        var response = Helper.UploadPhoto(marcaVm.LogoFile, folder, file);
                        if (!response)
                        {
                            file = "SinImagenDisponible.jpg";
                        }
                    }
                    else
                    {
                        file = "SinImagenDisponible.jpg";
                    }
                    marca.Logo = $"{folder}{file}";
                    _dbContext.Entry(marca).State = EntityState.Modified;
                    _dbContext.SaveChanges();
                    transaction.Commit();
                    TempData["Msg"] = "Registro agregado";

                    return(RedirectToAction("Index"));
                }
                catch (Exception e)
                {
                    ModelState.AddModelError(string.Empty, e.Message);
                    return(View(marcaVm));
                }
            }
        }
예제 #3
0
        public ActionResult Edit(TipoEditViewModel tipoVm)
        {
            if (!ModelState.IsValid)
            {
                return(View(tipoVm));
            }

            var tipo = ConstruirTipo(tipoVm);

            try
            {
                if (_dbContext.Tipos.Any(t => t.Descripcion == tipo.Descripcion && t.TipoId != tipo.TipoId))
                {
                    ModelState.AddModelError(string.Empty, "Registro repetido");
                    return(View(tipoVm));
                }

                _dbContext.Entry(tipo).State = EntityState.Modified;
                _dbContext.SaveChanges();
                TempData["Msg"] = "Registro editado";
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                ModelState.AddModelError(string.Empty, "Error inesperado al intentar editar un registro");
                return(View(tipoVm));
            }
        }
        public async Task <IActionResult> PutCar(Guid id, Car car)
        {
            if (id != car.Id)
            {
                return(BadRequest());
            }

            _context.Entry(car).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CarExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #5
0
        public ActionResult Create(ViajeEditViewModel viajeVm)
        {
            if (!ModelState.IsValid)
            {
                viajeVm.Autos    = _dbContext.Autos.Where(a => a.Disponible).ToList();
                viajeVm.Clientes = CargarListaClientes();

                return(View(viajeVm));
            }

            Viaje viaje = new Viaje
            {
                ViajeId         = viajeVm.ViajeId,
                AutoId          = viajeVm.AutoId,
                UsuarioId       = viajeVm.UsuarioId,
                FechaHoraSalida = viajeVm.FechaHoraSalida,
                Estado          = EstadoViaje.EnProceso
            };

            if (_dbContext.Viajes.Any(v => v.UsuarioId == viaje.UsuarioId &&
                                      v.Estado == EstadoViaje.EnProceso))
            {
                viajeVm.Autos    = _dbContext.Autos.Where(a => a.Disponible).ToList();
                viajeVm.Clientes = CargarListaClientes();

                ModelState.AddModelError(string.Empty, "Error: Usuario con viaje sin terminar...");
                return(View(viajeVm));
            }

            using (var tran = _dbContext.Database.BeginTransaction())
            {
                try
                {
                    _dbContext.Viajes.Add(viaje);
                    var autoEnViaje = _dbContext.Autos.SingleOrDefault(a => a.AutoId == viaje.AutoId);
                    if (autoEnViaje == null)
                    {
                        viajeVm.Autos    = _dbContext.Autos.Where(a => a.Disponible).ToList();
                        viajeVm.Clientes = CargarListaClientes();

                        ModelState.AddModelError(String.Empty, "Joder... estamos en problemas");
                        return(View(viajeVm));
                    }

                    autoEnViaje.Disponible = false;
                    _dbContext.Entry(autoEnViaje).State = EntityState.Modified;
                    _dbContext.SaveChanges();
                    tran.Commit();
                    TempData["Msg"] = "Viaje guardado...";
                    return(RedirectToAction("Index"));
                }
                catch (Exception ex)
                {
                    viajeVm.Autos    = _dbContext.Autos.Where(a => a.Disponible).ToList();
                    viajeVm.Clientes = CargarListaClientes();

                    ModelState.AddModelError(String.Empty, "Error al intentar guardar un viaje...");
                    tran.Rollback();
                    return(View(viajeVm));
                }
            }
        }