示例#1
0
        public ActionResult CrearOperadorEnFlota([Bind(Include = "Id,Nombre,TipoLicencia,UsuarioId,AutoId,FlotaId")] CreacionOperador model)
        {
            if (ModelState.IsValid == false)
            {
                Flota flota = db.Flotas.Where(f => f.Id == model.FlotaId).FirstOrDefault();

                List <Auto> autosCandidatos = flota.Autos.Where(a => a.OperadorId == null).ToList();
                autosCandidatos.Add(new Auto()
                {
                    Id = 0, NombreVehiculo = "No asignar"
                });
                autosCandidatos.Reverse();

                List <Usuario> usuariosCandidatos = db.Usuarios.Where(u => u.OperadorId == null && u.Rol == Usuario.RolUsuario.Normal).ToList();
                usuariosCandidatos.Add(new Usuario()
                {
                    Id = 0, Email = "No asignar"
                });
                usuariosCandidatos.Reverse();

                ViewBag.UsuarioId = new SelectList(usuariosCandidatos, "Id", "Email");
                ViewBag.AutoId    = new SelectList(autosCandidatos, "Id", "NombreVehiculo");

                ViewBag.FlotaId = flota.Id;
                return(View("CrearOperadorEnFlota", model));
            }

            Operador.CrearOperador(db, model.FlotaId, model.Nombre, model.TipoLicencia, model.UsuarioId, model.AutoId);

            return(RedirectToAction("OperadoresFlota", new { id = model.FlotaId }));
        }
示例#2
0
        public ActionResult EditarOperadorDeFlota(int?id, int?idFlota)
        {
            if (id == null || idFlota == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Flota flota = db.Flotas.Where(f => f.Id == idFlota).FirstOrDefault();

            if (flota == null)
            {
                return(HttpNotFound());
            }
            Operador operador = flota.Operadores.Where(o => o.Id == id).FirstOrDefault();

            if (operador == null)
            {
                return(HttpNotFound());
            }

            CreacionOperador modeloOperador = new CreacionOperador()
            {
                Id        = operador.Id,
                Nombre    = operador.Nombre,
                FlotaId   = flota.Id,
                UsuarioId = 0,
                AutoId    = 0
            };

            List <Usuario> usuariosCandidatos = db.Usuarios.Where(u => u.OperadorId == null && u.Rol == Usuario.RolUsuario.Normal).ToList();
            List <Auto>    autosCandidatos    = flota.Autos.Where(a => a.OperadorId == null).ToList();

            if (operador.Usuario != null)
            {
                modeloOperador.UsuarioId = operador.Usuario.Id;
                Usuario userActual = db.Usuarios.Where(u => u.Id == operador.Usuario.Id).FirstOrDefault();
                usuariosCandidatos.Add(userActual);
            }
            usuariosCandidatos.Add(new Usuario()
            {
                Id = 0, Email = "No asignar"
            });
            usuariosCandidatos.Reverse();

            //if (operador.Auto != null)
            //{
            //    modeloOperador.AutoId = operador.Auto.Id;
            //    Auto autoActual = flota.Autos.Where(a => a.Id == operador.Auto.Id).FirstOrDefault();
            //    autosCandidatos.Add(autoActual);
            //}
            if (operador.Autos.Count > 0)
            {
                modeloOperador.AutoId = operador.Autos.First().Id;
                Auto autoActual = flota.Autos.Where(a => a.Id == modeloOperador.AutoId).FirstOrDefault();
                autosCandidatos.Add(autoActual);
            }
            autosCandidatos.Add(new Auto()
            {
                Id = 0, NombreVehiculo = "No asignar"
            });
            autosCandidatos.Reverse();

            ViewBag.UsuarioId = new SelectList(usuariosCandidatos, "Id", "Email", modeloOperador.UsuarioId);
            ViewBag.AutoId    = new SelectList(autosCandidatos, "Id", "NombreVehiculo", modeloOperador.AutoId);

            ViewBag.FlotaId = flota.Id;
            return(View(modeloOperador));
        }