예제 #1
0
파일: Flota.cs 프로젝트: Ocumian/AEOnline
        public static Flota CrearFlota(ProyectoAutoContext _db, string _nombre, int _idAdmin)
        {
            Flota nuevaFlota = new Flota();

            nuevaFlota.Nombre        = _nombre;
            nuevaFlota.Servicios     = new List <Servicio>();
            nuevaFlota.TiposVehiculo = new List <TipoVehiculo>();

            _db.Flotas.Add(nuevaFlota);

            if (_idAdmin != 0)
            {
                Usuario      admin = _db.Usuarios.Where(u => u.Id == _idAdmin).FirstOrDefault();
                UsuarioFlota uf    = new UsuarioFlota()
                {
                    Usuario = admin,
                    Flota   = nuevaFlota
                };
                _db.UsuarioFlotas.Add(uf);
                _db.SaveChanges();
                nuevaFlota.UsuarioFlota = uf;
                admin.UsuarioFlota      = uf;
            }

            _db.SaveChanges();

            //Creacion de datos default

            List <Servicio>     serviciosDefault     = CrearServiciosDefault();
            List <TipoVehiculo> tiposVehiculoDefault = CrearTiposVehiculoDefault();

            for (int i = 0; i < serviciosDefault.Count; i++)
            {
                nuevaFlota.Servicios.Add(serviciosDefault[i]);
            }

            for (int i = 0; i < tiposVehiculoDefault.Count; i++)
            {
                nuevaFlota.TiposVehiculo.Add(tiposVehiculoDefault[i]);
            }
            _db.SaveChanges();

            return(nuevaFlota);
        }
예제 #2
0
        public static void CrearProveedor(ProyectoAutoContext _db, int _idFlota,
                                          string _nombreComercial, string _telefono, string _direccion, string _personaContacto,
                                          string _telefonoContacto, string _emailContacto)
        {
            Flota flota = _db.Flotas.Where(f => f.Id == _idFlota).FirstOrDefault();

            Proveedor nuevoProveedor = new Proveedor();

            nuevoProveedor.NombreComercial         = _nombreComercial;
            nuevoProveedor.Telefono                = _telefono;
            nuevoProveedor.Direccion               = _direccion;
            nuevoProveedor.PersonaContacto         = _personaContacto;
            nuevoProveedor.TelefonoContacto        = _telefonoContacto;
            nuevoProveedor.EmailContacto           = _emailContacto;
            nuevoProveedor.GastoTotalCombustible   = 0;
            nuevoProveedor.GastoTotalMantenimiento = 0;

            flota.Proveedores.Add(nuevoProveedor);
            _db.SaveChanges();
        }
예제 #3
0
파일: Flota.cs 프로젝트: Ocumian/AEOnline
        public static void EliminarFlota(ProyectoAutoContext _db, int _idFlota)
        {
            Flota flota = _db.Flotas.Where(f => f.Id == _idFlota).FirstOrDefault();

            List <int> autosEliminables      = new List <int>();
            List <int> operadoresEliminables = new List <int>();

            foreach (Auto a in flota.Autos)
            {
                autosEliminables.Add(a.Id);
            }
            foreach (int aId in autosEliminables)
            {
                Auto.ElimiarAuto(_db, aId);
            }

            foreach (Operador o in flota.Operadores)
            {
                operadoresEliminables.Add(o.Id);
            }
            foreach (int oId in operadoresEliminables)
            {
                Operador.EliminarOperador(_db, oId);
            }

            if (flota.UsuarioFlotaId != null)
            {
                flota.UsuarioFlota.Usuario.UsuarioFlota = null;
                _db.UsuarioFlotas.Remove(flota.UsuarioFlota);
            }

            _db.Proveedores.RemoveRange(flota.Proveedores);
            _db.TiposVehiculo.RemoveRange(flota.TiposVehiculo);
            _db.Servicios.RemoveRange(flota.Servicios);
            _db.Alertas.RemoveRange(flota.Alerttas);
            _db.Recordatorios.RemoveRange(flota.Recordatorios);
            _db.SaveChanges();

            _db.Flotas.Remove(flota);
            _db.SaveChanges();
        }
예제 #4
0
        public static void EliminarServicio(ProyectoAutoContext _db, int _idFlota, int _idServicio)
        {
            Flota    flota = _db.Flotas.Where(f => f.Id == _idFlota).FirstOrDefault();
            Servicio serv  = flota.Servicios.Where(s => s.Id == _idServicio).FirstOrDefault();

            List <MantencionServicio> ManSerEliminables = new List <MantencionServicio>();

            foreach (Auto a in flota.Autos)
            {
                foreach (HistorialMantencion hm in a.Mantenciones)
                {
                    foreach (MantencionServicio ms in hm.ServiciosAplicados)
                    {
                        if (ms.ServicioId == _idServicio)
                        {
                            ManSerEliminables.Add(ms);
                        }
                    }
                }
            }
            _db.MantencionServicios.RemoveRange(ManSerEliminables);
            _db.Servicios.Remove(serv);
            _db.SaveChanges();
        }
예제 #5
0
파일: Usuario.cs 프로젝트: Ocumian/AEOnline
        public static void EditarUsuario(ProyectoAutoContext _db, int _idOriginal, string _nuevoNombre, string _nuevoEmail, RolUsuario _nuevoRol, int _nuevaFlotaId)
        {
            Usuario userOriginal = _db.Usuarios.Where(u => u.Id == _idOriginal).FirstOrDefault();

            //Dependiendo del rol, primero se remueven las relaciones que se tenian como el rol anterior
            if (_nuevoRol == RolUsuario.Normal)
            {
                if (userOriginal.UsuarioFlotaId != null)
                {
                    userOriginal.UsuarioFlota.Flota.UsuarioFlota = null;
                    _db.UsuarioFlotas.Remove(userOriginal.UsuarioFlota);
                }
            }
            else if (_nuevoRol == RolUsuario.AdminDeFlota)
            {
                if (userOriginal.OperadorId != null)
                {
                    userOriginal.Operador.Usuario = null;
                }

                int idFlotaOriginal = 0;
                if (userOriginal.UsuarioFlotaId != null)
                {
                    idFlotaOriginal = userOriginal.UsuarioFlota.Flota.Id;
                }


                if (_nuevaFlotaId != idFlotaOriginal)
                {
                    if (userOriginal.UsuarioFlotaId != null)
                    {
                        userOriginal.UsuarioFlota.Flota.UsuarioFlota = null;
                        _db.UsuarioFlotas.Remove(userOriginal.UsuarioFlota);
                    }


                    if (_nuevaFlotaId != 0)
                    {
                        Flota flotaBuscada = _db.Flotas.Where(f => f.Id == _nuevaFlotaId).FirstOrDefault();

                        UsuarioFlota uf = new UsuarioFlota()
                        {
                            Usuario = userOriginal,
                            Flota   = flotaBuscada
                        };

                        _db.UsuarioFlotas.Add(uf);
                        _db.SaveChanges();
                        userOriginal.UsuarioFlota = uf;
                        flotaBuscada.UsuarioFlota = uf;
                    }
                }
            }
            else
            {
                if (userOriginal.OperadorId != null)
                {
                    userOriginal.Operador.Usuario = null;
                }


                if (userOriginal.UsuarioFlotaId != null)
                {
                    userOriginal.UsuarioFlota.Flota.UsuarioFlota = null;
                    _db.UsuarioFlotas.Remove(userOriginal.UsuarioFlota);
                }
            }


            userOriginal.Nombre = _nuevoNombre;
            userOriginal.Email  = _nuevoEmail;
            userOriginal.Rol    = _nuevoRol;

            _db.SaveChanges();
        }
예제 #6
0
        public static void EditarOperador(ProyectoAutoContext _db, int _idFlota, int _idOriginal,
                                          string _nuevoNombre, string _tipoLicencia, int _idNuevoUsuario, int _idNuevoAuto)
        {
            Flota    flota    = _db.Flotas.Where(f => f.Id == _idFlota).FirstOrDefault();
            Operador operador = flota.Operadores.Where(o => o.Id == _idOriginal).FirstOrDefault();

            operador.Nombre       = _nuevoNombre;
            operador.TipoLicencia = _tipoLicencia;

            if (_idNuevoAuto == 0)
            {
                //if(operador.Auto != null)
                //{
                //    operador.Auto.Operador = null;
                //    operador.Auto = null;
                //}

                if (operador.Autos.Count > 0)
                {
                    operador.Autos.First().Operador = null;
                    operador.Autos.Clear();
                }
            }
            else
            {
                //if (operador.Auto != null)
                //    operador.Auto.Operador = null;

                //Auto autoNuevo = flota.Autos.Where(a => a.Id == _idNuevoAuto).FirstOrDefault();
                //operador.Auto = autoNuevo;
                //autoNuevo.Operador = operador;

                if (operador.Autos.Count > 0)
                {
                    operador.Autos.First().Operador = null;
                    operador.Autos.Clear();
                }

                Auto autoNuevo = flota.Autos.Where(a => a.Id == _idNuevoAuto).FirstOrDefault();
                operador.Autos.Add(autoNuevo);
                autoNuevo.Operador = operador;
            }


            if (_idNuevoUsuario == 0)
            {
                if (operador.Usuario != null)
                {
                    operador.Usuario.Operador = null;
                    operador.Usuario          = null;
                }
            }
            else
            {
                if (operador.Usuario != null)
                {
                    operador.Usuario.Operador = null;
                }

                Usuario nuevoUser = _db.Usuarios.Where(u => u.Id == _idNuevoUsuario).FirstOrDefault();
                operador.Usuario   = nuevoUser;
                nuevoUser.Operador = operador;
            }

            _db.SaveChanges();
        }