}                                                                                //DEBE SER UNA

        public static UsuarioTienda CrearUsuarioTienda(TiendaOnlineContext _db, int idUsuario, Tienda tienda)
        {
            //Asignar Rol Administrador a Usuario
            Usuario usuario = _db.Usuarios.Find(idUsuario);

            Usuario.EditarUsuario(_db, usuario, tienda.Id, UsuarioTienda.RolEnTienda.Admin);
            UsuarioTienda usTienda = _db.UsuariosTienda.Where(ut => ut.Usuario.Id == idUsuario).FirstOrDefault();

            return(usTienda);
        }
        public static Usuario EditarUsuario(TiendaOnlineContext _db, Usuario _model,
                                            int _tiendaId = 0, UsuarioTienda.RolEnTienda _rolTienda = UsuarioTienda.RolEnTienda.Admin) //opcionales)
        {
            if (_model.NombreUsuario != null)
            {
                _model.NombreUsuario = _model.NombreUsuario.ToUpper();
            }
            if (_model.Nombre != null)
            {
                _model.Nombre = _model.Nombre.ToUpper();
            }
            if (_model.Apellido != null)
            {
                _model.Apellido = _model.Apellido.ToUpper();
            }


            Usuario usuarioAEditar = _db.Usuarios.Find(_model.Id);

            usuarioAEditar.NombreUsuario  = _model.NombreUsuario;
            usuarioAEditar.Nombre         = _model.Nombre;
            usuarioAEditar.Apellido       = _model.Apellido;
            usuarioAEditar.Email          = _model.Email;
            usuarioAEditar.RolUsuario     = _model.RolUsuario;
            usuarioAEditar.NombreCompleto = _model.Nombre + " " + _model.Apellido;

            if (_tiendaId > 0)
            {
                UsuarioTienda existeAsoc = usuarioAEditar.UsuarioTiendas.Where(ut => ut.Tienda.Id == _tiendaId).FirstOrDefault();

                if (existeAsoc != null)
                {
                    existeAsoc.RolTienda = _rolTienda;
                }
                else
                {
                    Tienda        tienda = _db.Tienda.Where(t => t.Id == _tiendaId).FirstOrDefault();
                    UsuarioTienda ut     = new UsuarioTienda();
                    ut.RolTienda = _rolTienda;
                    ut.Tienda    = tienda;
                    ut.TiendaId  = tienda.Id;

                    _model.UsuarioTiendas.Add(ut);
                }
            }


            _db.SaveChanges();

            return(usuarioAEditar);
        }
        public static Usuario CrearNuevoUsuario(TiendaOnlineContext _db, Usuario _model,
                                                int _tiendaId = 0, UsuarioTienda.RolEnTienda _rolTienda = UsuarioTienda.RolEnTienda.Admin) //opcionales
        {
            if (_model.NombreUsuario != null)
            {
                _model.NombreUsuario = _model.NombreUsuario.ToUpper();
            }
            if (_model.Nombre != null)
            {
                _model.Nombre = _model.Nombre.ToUpper();
            }
            if (_model.Apellido != null)
            {
                _model.Apellido = _model.Apellido.ToUpper();
            }

            Usuario existe = _db.Usuarios.Where(u => u.NombreUsuario == _model.NombreUsuario).FirstOrDefault();

            if (existe != null)
            {
                return(null);
            }


            string pass = PasswordHash.CreateHash(_model.Password);

            _model.Password       = pass;
            _model.NombreCompleto = _model.Nombre + " " + _model.Apellido;

            if (_tiendaId > 0)
            {
                _model.UsuarioTiendas = new List <UsuarioTienda>();

                Tienda        tienda = _db.Tienda.Where(t => t.Id == _tiendaId).FirstOrDefault();
                UsuarioTienda ut     = new UsuarioTienda();
                ut.RolTienda = _rolTienda;
                ut.Tienda    = tienda;
                ut.TiendaId  = tienda.Id;

                _model.UsuarioTiendas.Add(ut);
            }

            _db.Usuarios.Add(_model);
            _db.SaveChanges();


            return(_model);
        }
        public static void CrearHorarioPorDia(TiendaOnlineContext _db, int tiendaId, int usuarioTiendaMecanicoId, DiaHorarioTrabajador diaHorarioTrabajador,
                                              string hEntrada, string hDescansoInicio, string hDescansoTermino, string hSalida, bool hDescanso)
        {
            Tienda        tienda        = _db.Tienda.Where(t => t.Id == tiendaId).FirstOrDefault();
            UsuarioTienda usuarioTienda = tienda.UsuariosTienda.Where(ut => ut.Id == usuarioTiendaMecanicoId).FirstOrDefault();

            HorarioTrabajador horarioTrabajadorDia = new HorarioTrabajador();

            horarioTrabajadorDia.Dia                 = diaHorarioTrabajador;
            horarioTrabajadorDia.HoraEntrada         = DateTime.ParseExact(hEntrada, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTrabajadorDia.HoraDescansoInicio  = DateTime.ParseExact(hDescansoInicio, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTrabajadorDia.HoraDescansoTermino = DateTime.ParseExact(hDescansoTermino, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTrabajadorDia.HoraSalida          = DateTime.ParseExact(hSalida, "hh:mmtt", CultureInfo.InvariantCulture);
            horarioTrabajadorDia.HorarioDescanso     = hDescanso;

            usuarioTienda.UsuariosTiendaMecanicos.First().Horario.Add(horarioTrabajadorDia);
            _db.SaveChanges();
        }
        public static UsuarioTienda CrearMecanico(TiendaOnlineContext _db, UsuarioTienda _usuarioTienda)
        {
            if (_usuarioTienda.UsuariosTiendaMecanicos == null || _usuarioTienda.UsuariosTiendaMecanicos.Count == 0)
            {
                UsuarioTiendaMecanico usuarioTiendaMecanico = new UsuarioTiendaMecanico();
                usuarioTiendaMecanico.Disponibilidad = DisponibilidadMecanico.Disponible;
                //usuarioTiendaMecanico.UsuarioTienda = usuarioTienda;
                usuarioTiendaMecanico.Agendas = new List <Agenda>();
                usuarioTiendaMecanico.Horario = new List <HorarioTrabajador>();

                _usuarioTienda.UsuariosTiendaMecanicos = new List <UsuarioTiendaMecanico>();
                _usuarioTienda.UsuariosTiendaMecanicos.Add(usuarioTiendaMecanico); //DEBE SER UNA RELACIÓN

                //_db.UsuarioTiendaMecanicos.Add(usuarioTiendaMecanico);
                _db.SaveChanges();
            }


            return(_usuarioTienda);
        }