Exemplo n.º 1
0
        /// <summary>
        /// DEVUELVE LOS ADMINISTRATIVOS DEL SISTEMA
        /// DEJA POR FUERA UN USUARIO "SUPER" PARA QUE NO PUEDA SER MODIFICADO
        /// </summary>
        /// <returns>LISTA DE ADMINISTRATIVOS</returns>
        public async Task<List<Administrativo>> getAdministrativos()
        {
            try
            {
                var items = await DBRepositoryMongo<Administrativo>.GetItemsAsync("Administrativos");
                List<Administrativo> aux = items.ToList();
                List<Administrativo> salida = new List<Administrativo>();
                Administrativo admin = null;

                foreach (Administrativo a in aux)
                {
                    admin = a.Desencriptar(a);
                    salida.Add(admin);
                }
                Administrativo eliminar = null;
                foreach (Administrativo a in salida)
                {
                    if (a.User.Equals("super"))
                    {
                        eliminar = a;
                    }
                }
                salida.Remove(eliminar);
                return salida;
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception)
            {
                throw new MensajeException("Se produjo un error inesperado, intente de nuevo mas tarde");
            }
           
        }
Exemplo n.º 2
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IOptions <AppSettingsMongo> appSettingsMongo)
        {
            if (env.IsDevelopment())
            {
                app.UseBrowserLink();
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseAuthentication();
            app.UseStaticFiles();
            app.UseSession();
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
            _settingsMongo = appSettingsMongo;

            //DBRepository<AppSettings>.Iniciar(_settings);
            DBRepositoryMongo <AppSettingsMongo> .Iniciar(_settingsMongo);
        }
Exemplo n.º 3
0
 /// <summary>
 /// ingresa un nuevo chofer al sistema y lo devuelve
 /// </summary>
 /// <param name="chofer"></param>
 /// <param name="libreta"></param>
 /// <returns>Chofer</returns>
 public async Task<Chofer> CrearChofer(Chofer chofer, LibretaDeConducir libreta)
 {
     Chofer salida = null;
     try
     {
         Chofer c = await DBRepositoryMongo<Chofer>.GetUsuario(chofer.User, "Choferes");
         if (c != null)
         {
             throw new MensajeException("El chofer ya existe");
         }
         else
         {
             salida = chofer;
             salida.Tipo = "Chofer";
             salida.Disponible = true;
             salida.LibretaDeConducir = libreta;
             salida.Leyenda = chofer.Numero + " - " + chofer.Nombre + " " + chofer.Apellido;
             if (salida.Ubicacion == null)
             {
                 salida.Ubicacion = new PosicionSatelital() { Latitud = "", Longitud = "" };
             }
             salida = salida.Encriptar(salida);
             await DBRepositoryMongo<Chofer>.Create(salida, "Choferes");
         }
         return salida;
     }
     catch(MensajeException msg)
     {
         throw msg;
     }catch(Exception ex)
     {
         throw ex;
     }
 }
        /// <summary>
        /// se devuelve el chofer con el id seleccionado
        /// se desencripta antes de devolverlo
        /// </summary>
        /// <param name="idChofer"></param>
        /// <returns>Chofer</returns>
        public async Task <Chofer> getChofer(string idChofer)
        {
            try
            {
                if (idChofer != null)
                {
                    Chofer chofer = await DBRepositoryMongo <Chofer> .GetItemAsync(idChofer, "Choferes");

                    chofer = chofer.Desencriptar(chofer);
                    return(chofer);
                }
                else
                {
                    throw new MensajeException("El Id del chofer no existe");
                }
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// SE ELIMINA EL CHOFER Y SE ACTUALIZAN LOS VEHICULOS EN MEMORIA Y EN LA BD
        /// </summary>
        /// <param name="chofer"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task EliminarChofer(Chofer chofer, string id)
        {
            try
            {
                if (chofer != null && id != null)
                {
                    await DBRepositoryMongo<Usuario>.DeleteAsync(id, "Choferes");
                    var vehiculos = await ControladoraVehiculos.getInstance(_settings).getVehiculos();
                    List<Vehiculo> aux = vehiculos.ToList();
                    foreach (Vehiculo v in aux)
                    {
                        if (v.Chofer.Id.ToString().Equals(id))
                        {
                            v.Chofer = new Chofer();
                            await ControladoraVehiculos.getInstance(_settings).editarVehiculo(v, v.Id.ToString(), v.Chofer.Id.ToString(), v.Tipo); //  se acualiza el vehiculo en memoria y en la bd
                        }
                    }
                }
                else
                {
                    throw new MensajeException("Ha ocurrido un error inesperado, vuelva a intentarlo mas tarde");
                }

            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// SE ELIMINA EL CLIENTE SELECCIONADO
        /// </summary>
        /// <param name="cliente"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task EliminarCliente(Cliente cliente, string id)
        {
            try
            {
                if (cliente != null && id != null)
                {
                    
                    await DBRepositoryMongo<Usuario>.DeleteAsync(id, "Clientes");
                    
                }
                else
                {
                    throw new MensajeException("Ha ocurrido un error inesperado, vuelva a intentarlo mas tarde");
                }

            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
Exemplo n.º 7
0
        /// <summary>
        /// SE MODIFICA EL PEON SELECCIONADO EN LA BD
        /// </summary>
        /// <param name="peon"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task ModificarPeon(Peon peon, string id)
        {
            try
            {
                if (peon != null && id != null)
                {
                    peon.Id = new ObjectId(id);
                    peon.Encriptar(peon);
                    await DBRepositoryMongo<Peon>.UpdateAsync(peon.Id, peon, "Peones");
                }
                else
                {
                    throw new MensajeException("Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde");
                }

            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// SE MODIFICA EL CLIENTE SELECCIONADO
        /// </summary>
        /// <param name="cliente"></param>
        /// <param name="id"></param>
        /// <param name="tarjeta"></param>
        /// <returns></returns>
        public async Task ModificarCliente(Cliente cliente, string id, TarjetaDeCredito tarjeta)
        {
            try
            {
                if (cliente != null && id != null)
                {
                    cliente.Id = new ObjectId(id);
                    cliente.Tarjeta = tarjeta;
                    cliente.Encriptar(cliente);
                    await DBRepositoryMongo<Cliente>.UpdateAsync(cliente.Id, cliente, "Clientes");
                }
                else
                {
                    throw new MensajeException("Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde");
                }

            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
Exemplo n.º 9
0
        /// <summary>
        /// SE CREA UN NUEVO PEON EN LA BD
        /// </summary>
        /// <param name="peon"></param>
        /// <returns></returns>
        public async Task CrearPeon(Peon peon)
        {
            try
            {
                Peon salida = null;
                Peon p = await DBRepositoryMongo<Peon>.GetPeon(Seguridad.Encriptar(peon.Documento), "Peones");
                if (p == null)
                {
                    salida = peon;
                    salida = salida.Encriptar(salida);
                    await DBRepositoryMongo<Peon>.Create(salida, "Peones");
                }
                else
                {
                    throw new MensajeException("Ya existe el peon");
                }

            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// se toma en cuenta los vehiculos de la bd
        /// se desencriptan los choferes antes de devolverlos
        /// </summary>
        /// <returns>lista de vehiculos que estan ingresados al sistema</returns>
        public async Task <IEnumerable <Vehiculo> > getVehiculos()
        {
            try
            {
                var items = await DBRepositoryMongo <Vehiculo> .GetItemsAsync("Vehiculos");

                List <Vehiculo> salida = new List <Vehiculo>();
                foreach (Vehiculo v in items)
                {
                    if (!v.Chofer.Id.ToString().Equals("000000000000000000000000"))
                    {
                        Chofer c = v.Chofer;
                        v.Chofer = c.Desencriptar(c);
                        salida.Add(v);
                    }
                    else
                    {
                        salida.Add(v);
                    }
                }
                return(salida);
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 11
0
 /// <summary>
 /// modifica un administrativo pasado como parametro
 /// </summary>
 /// <param name="usuario"></param>
 /// <param name="id"></param>
 /// <returns></returns>
 public async Task ModificarAdministrativo(Administrativo usuario, string id) 
 {
     try
     {
         if (usuario != null && id!=null)
         {
             usuario.Id = new ObjectId(id);
             if (usuario.Ubicacion == null)
             {
                 usuario.Ubicacion = new PosicionSatelital() { Latitud = "", Longitud = "" };
             }
             usuario = usuario.Encriptar(usuario);
             await DBRepositoryMongo<Usuario>.UpdateAsync(usuario.Id, usuario, "Administrativos");
         }
         else
         {
             throw new MensajeException("Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde");
         }
        
     }
     catch(MensajeException msg)
     {
         throw msg;
     }
     catch (Exception ex)
     {
         throw ex;
     }
    
 }
        /// <summary>
        /// se elimina el vehiculo y se actualiza el estado del chofer.
        /// </summary>
        /// <param name="id"></param>
        /// <param name="vehiculo"></param>
        /// <returns></returns>
        public async Task eliminarVehiculo(string id)
        {
            try
            {
                if (id != null)
                {
                    Vehiculo eliminar = await DBRepositoryMongo <Vehiculo> .GetItemAsync(id, "Vehiculos");

                    await DBRepositoryMongo <Vehiculo> .DeleteAsync(id, "Vehiculos");

                    Vehiculos.Remove(eliminar);
                    eliminar.Chofer.Disponible = true;
                    await DBRepositoryMongo <Chofer> .UpdateAsync(eliminar.Chofer.Id, eliminar.Chofer, "Choferes");
                }
                else
                {
                    throw new MensajeException("Ha ocurrido un error inesperado vuelva a intentarlo mas tarde");
                }
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// devuelve la lista de choferes de la bd que no tienen vehiculos asociados
        /// </summary>
        /// <returns>lista de choferes</returns>
        public async Task <List <Chofer> > choferesDisponibles()
        {
            try
            {
                List <Chofer> salida = new List <Chofer>();
                var           lista  = await DBRepositoryMongo <Chofer> .GetItemsAsync("Choferes");

                List <Chofer> aux = new List <Chofer>();

                foreach (Chofer c in lista)
                {
                    Chofer chofer = c.Desencriptar(c);
                    aux.Add(chofer);
                }

                foreach (Chofer c in aux)
                {
                    if (c.Disponible)
                    {
                        salida.Add(c);
                    }
                }
                return(salida);
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 14
0
 /// <summary>
 /// devuelve el chofer si lo puede validar o si no devuelve null
 /// </summary>
 /// <param name="usuario"></param>
 /// <param name="pass"></param>
 /// <returns>el chofer con las credenciales solicitadas</returns>
 public async Task<Chofer>LoginChofer(string usuario, string pass)
 {
     try
     {
         Chofer chofer = await DBRepositoryMongo<Chofer>.Login(Seguridad.Encriptar(usuario), "Choferes");
         if (chofer != null)
         {
             chofer = chofer.Desencriptar(chofer);
             if (chofer.Password == pass)
             {
                 return chofer;
             }
             else
             {
                 throw new MensajeException("Usuario y/o contraseña incorrecta");
             }
         }
         else
         {
             throw new MensajeException("Usuario y/o contraseña incorrecta");
         }
     }
     catch(MensajeException msg)
     {
         throw msg;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemplo n.º 15
0
 public PeonController(IOptions <AppSettingsMongo> settings, IHttpContextAccessor httpContextAccessor, IConfiguration configuration)
 {
     _session       = httpContextAccessor.HttpContext.Session;
     _configuration = configuration;
     _httpContext   = httpContextAccessor;
     _settings      = settings;
     DBRepositoryMongo <Peon> .Iniciar(_settings);
 }
Exemplo n.º 16
0
        /// <summary>
        /// Inserta un cliente encriptado en la base de datos
        /// </summary>
        /// <param name="cliente"></param>
        /// <param name="tarjeta"></param>
        /// <returns></returns>
        public async Task CrearCliente(Cliente cliente, TarjetaDeCredito tarjeta)
        {
            try
            {
                Cliente salida = null;
                Usuario usuario = await DBRepositoryMongo<Usuario>.GetUsuario(Seguridad.Encriptar(cliente.User), "Usuarios");
                Cliente cli = await DBRepositoryMongo<Cliente>.GetUsuario(Seguridad.Encriptar(cliente.User), "Clientes");
                Chofer chofer = await DBRepositoryMongo<Chofer>.GetUsuario(Seguridad.Encriptar(cliente.User), "Choferes");
                if (usuario == null && cli == null && chofer == null)
                {
                    cliente.Tipo = "Cliente";
                    cliente.Tarjeta = tarjeta;
                    if (cliente.RazonSocial != null)
                    {
                        cliente.Leyenda = cliente.RazonSocial;
                    }
                    else
                    {
                        cliente.Leyenda = cliente.Nombre + " " + cliente.Apellido;
                        cliente.RazonSocial = "";

                    }
                    if (cliente.Rut == null)
                    {
                        cliente.Rut = "";
                    }
                    if (cliente.Ubicacion == null)
                    {
                        cliente.Ubicacion = new PosicionSatelital() { Latitud = "", Longitud = "" };
                    }
                    if (string.IsNullOrEmpty(cliente.Tarjeta.fVencimiento))
                    {
                        cliente.Tarjeta.fVencimiento = "";
                    }
                    if (string.IsNullOrEmpty(cliente.Tarjeta.Numero))
                    {
                        cliente.Tarjeta.Numero = "";
                    }
                    salida = cliente.Encriptar(cliente);
                    await DBRepositoryMongo<Cliente>.Create(salida, "Clientes");
                }
                else
                {
                    throw new MensajeException("Ya existe un usuario con ese nick");
                }
                
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 17
0
        private ControladoraUsuarios(IOptions<AppSettingsMongo> settings)
        {
            _settings = settings;
            DBRepositoryMongo<Administrativo>.Iniciar(_settings);
            DBRepositoryMongo<Chofer>.Iniciar(_settings);
            DBRepositoryMongo<Cliente>.Iniciar(_settings);
            DBRepositoryMongo<Peon>.Iniciar(_settings);
            UbicacionesClientes = new Hashtable();

        }
        public AdministrativoController(IOptions <AppSettingsMongo> settings, IHttpContextAccessor httpContextAccessor, IConfiguration configuration)
        {
            _session       = httpContextAccessor.HttpContext.Session;
            _configuration = configuration;
            _httpContext   = httpContextAccessor;
            _settings      = settings;
            DBRepositoryMongo <Usuario> .Iniciar(_settings);

            _controladoraUsuarios = ControladoraUsuarios.getInstance(_settings);
        }
        private ControladoraVehiculos(IOptions <AppSettingsMongo> settings)
        {
            _settings           = settings;
            _controladoraViajes = ControladoraViajes.getInstancia(_settings);
            UbicacionVehiculos  = new Hashtable();
            DBRepositoryMongo <Vehiculo> .Iniciar(_settings);

            DBRepositoryMongo <Chofer> .Iniciar(_settings);

            cargarVehicuos();
            datos();
        }
Exemplo n.º 20
0
 /// <summary>
 /// DEVUELVE EL CHOFER CON EL ID SOLICITADO
 /// </summary>
 /// <param name="id"></param>
 /// <returns>CHOFER</returns>
 public async Task<Chofer> getChofer(string id)
 {
     Chofer usuario = null;
     if (id == null)
     {
         throw new MensajeException("Id de usuario inexistente");
     }
     else
     {
         usuario = await DBRepositoryMongo<Chofer>.GetItemAsync(id, "Choferes");
         usuario.Desencriptar(usuario);
         return usuario;
     }
 }
Exemplo n.º 21
0
 /// <summary>
 /// DEVUELVE EL ADMINISTRATIVO CON EL SOLICITADO
 /// </summary>
 /// <param name="id"></param>
 /// <returns>ADMINISTRATIVO</returns>
 public async Task<Administrativo>getAdministrativo(string id)
 {
     Administrativo administrativo = null;
     if (id == null)
     {
         throw new MensajeException("Id de usuario inexistente");
     }
     else
     {
         administrativo = await DBRepositoryMongo<Administrativo>.GetItemAsync(id, "Administrativos");
         administrativo = administrativo.Desencriptar(administrativo);
         return administrativo;
     }
 }
Exemplo n.º 22
0
 /// <summary>
 /// DEVUELVE UNA LISTA DE LOS CLIENTES QUE HAY EN EL SISTEMA
 /// </summary>
 /// <param name="id"></param>
 /// <returns>LISTA DE CLIENTE</returns>
 public async Task<Cliente> getCliente(string id)
 {
     Cliente cliente = null;
     if (id == null)
     {
         throw new MensajeException("Id de usuario inexistente");
     }
     else
     {
         cliente = await DBRepositoryMongo<Cliente>.GetItemAsync(id, "Clientes");
         cliente = cliente.Desencriptar(cliente);
         return cliente;
     }
 }
        public APIController(IOptions <AppSettingsMongo> settings, IHttpContextAccessor httpContextAccessor, IConfiguration configuration)
        {
            _session       = httpContextAccessor.HttpContext.Session;
            _configuration = configuration;
            _httpContext   = httpContextAccessor;
            _settings      = settings;
            DBRepositoryMongo <Usuario> .Iniciar(_settings);

            DBRepositoryMongo <Cliente> .Iniciar(_settings);

            DBRepositoryMongo <Chofer> .Iniciar(_settings);

            _controladoraViajes    = ControladoraViajes.getInstancia(_settings);
            _controladoraVehiculos = ControladoraVehiculos.getInstance(_settings);
            _controladoraUsuarios  = ControladoraUsuarios.getInstance(_settings);
        }
Exemplo n.º 24
0
 /// <summary>
 /// DEVUELVE EL PEON CON EL ID SOLICITADO
 /// </summary>
 /// <param name="idPeon"></param>
 /// <returns>PEON</returns>
 public async Task<Peon> getPeon(string idPeon)
 {
     try
     {
         Peon peon = await DBRepositoryMongo<Peon>.GetItemAsync(idPeon, "Peones");
         peon = peon.Desencriptar(peon);
         return peon;
     }
     catch (MensajeException msg)
     {
         throw msg;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemplo n.º 25
0
        /// <summary>
        /// devuelve el administrativo o el cliente si lo puede validar o si no devuelve null
        /// </summary>
        /// <param name="administrativo"></param>
        /// <param name="pass"></param>
        /// <returns>el administrativo o cliente con las credenciales solicitadas</returns>
        public async Task<Usuario> Login(string administrativo, string pass)
        {
            MensajeException mensajeError = new MensajeException("Usuario y/o contraseña incorrecta");
            Usuario salida = null;
            try
            {
                Administrativo user = await DBRepositoryMongo<Administrativo>.Login(Seguridad.Encriptar(administrativo), "Administrativos");
                if (user == null)
                {
                    Cliente cliente = await DBRepositoryMongo<Cliente>.Login(Seguridad.Encriptar(administrativo), "Clientes");
                    if (cliente != null)
                    {
                        cliente = cliente.Desencriptar(cliente);
                        if (cliente.Password == pass)
                        {
                            salida = cliente; 
                        }
                        else
                        {
                            throw mensajeError;
                        }
                    }
                    else
                    {
                        throw new MensajeException("Usuario incorrecto");
                    }
                }
                else
                {
                    user = user.Desencriptar(user);
                    if (user.Password == pass)
                    {
                        salida = user;
                    }
                    else
                    {
                        throw mensajeError;
                    }
                }
                return salida;

            }catch(MensajeException msg)
            {
                throw msg;
            }
        }
        /// <summary>
        /// se toma en cuenta los vehiculos de la bd. se utiliza para el abm
        /// </summary>
        /// <param name="idVehiculo"></param>
        /// <returns>vehiculo solicitado</returns>
        public async Task <Vehiculo> getVehiculoBaseDatos(string idVehiculo)
        {
            try
            {
                Vehiculo vehiculo = await DBRepositoryMongo <Vehiculo> .GetItemAsync(idVehiculo, "Vehiculos");

                return(vehiculo);
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// se devuelve el vehiculo que tiene un chofer determinado desde la bd
        /// </summary>
        /// <param name="idChofer"></param>
        /// <returns></returns>
        public async Task <Vehiculo> getVehiculoChofer(string idChofer)
        {
            try
            {
                var aux = await DBRepositoryMongo <Vehiculo> .GetItemsAsync("Vehiculos");

                Vehiculo vehiculo = aux.Where(v => v.Chofer.Id.ToString().Equals(idChofer)).FirstOrDefault();
                return(vehiculo);
            }
            catch (MensajeException msg)
            {
                throw msg;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task <JsonResult> RegistroChofer([FromBody] Chofer nuevo)
        {
            Usuario usu = await DBRepositoryMongo <Usuario> .GetUsuario(nuevo.User, "Usuarios");

            Usuario cliente = await DBRepositoryMongo <Cliente> .GetUsuario(nuevo.User, "Clientes");

            Usuario chofer = await DBRepositoryMongo <Chofer> .GetUsuario(nuevo.User, "Choferes");

            if (cliente == null && usu == null && chofer == null)
            {
                await DBRepositoryMongo <Chofer> .Create(nuevo, "Choferes");

                return(Json(nuevo));
            }
            else
            {
                return(Json(null));
            }
        }
Exemplo n.º 29
0
 /// <summary>
 /// crea un usuario administrativo
 /// </summary>
 /// <param name="usuario"></param>
 /// <param name="administrador"></param>
 /// <returns>el administrativo creado</returns>
 public async Task<Usuario> CrearAdministrativo(Administrativo usuario, bool administrador)
 {
     try
     {
         Usuario salida = null;
         Usuario u = await DBRepositoryMongo<Usuario>.GetUsuario(Seguridad.Encriptar(usuario.User), "Administrativos");
         if (u != null)
         {
             throw new MensajeException("El usuario ya existe");
         }
         else
         {
             if (usuario.Ubicacion == null)
             {
                 usuario.Ubicacion = new PosicionSatelital() { Latitud = "", Longitud = "" };
             }
             Administrativo nuevo = new Administrativo();
             nuevo = usuario;
             nuevo.Tipo = "Administrador";
             if (administrador)
             {
                 nuevo.Administrador = true;
             }
             else
             {
                 nuevo.Administrador = false;
             }
             nuevo = nuevo.Encriptar(nuevo);
             await DBRepositoryMongo<Usuario>.Create(nuevo, "Administrativos");
             salida = nuevo;
         }
         return salida;
     }
     catch (MensajeException msg)
     {
         throw msg;
     }
     catch(Exception ex)
     {
         throw ex;
     }
 }
        public async Task <JsonResult> RegistroCliente([FromBody] Cliente cliente)
        {
            Cliente cli = await DBRepositoryMongo <Cliente> .GetUsuario(cliente.User, "Clientes");

            Chofer chofer = await DBRepositoryMongo <Chofer> .GetUsuario(cliente.User, "Choferes");

            Usuario usu = await DBRepositoryMongo <Usuario> .GetUsuario(cliente.User, "Usuarios");

            if (cli == null && chofer == null && usu == null)
            {
                Cliente nuevo = cliente;
                await DBRepositoryMongo <Cliente> .Create(nuevo, "Clientes");

                return(Json(nuevo));
            }
            else
            {
                return(Json(null));
            }
        }