コード例 #1
0
        public static string tryCreate(string token, string hubName)
        {
            User user = User.getAutentification(token);

            if (user == null)
            {
                return(new ErrorResponse(300, Constants.NetMsg.FORBIDDEN).ToJson());
            }

            var hubs = DbHolder.getDb().GetDatabase(Constants.HUBBL_DB_NAME).GetCollection <Hub>(Constants.HUBS_TABLE_NAME);

            long count = hubs.Find(Builders <Hub> .Filter.Eq <String>(e => e.name, hubName)).Count();

            if (count > 0)
            {
                return(new ErrorResponse(220, Constants.NetMsg.HUB_ALREADY_EXISTS).ToJson());
            }

            Hub hub = new Hub(hubName, user);

            hubs.InsertOne(hub);

            //Player player = new Player(hub.id.ToString());
            return(new IdResponse(hub.id.ToString()).ToJson());
        }
コード例 #2
0
 public static Hub get(string id)
 {
     try {
         return(DbHolder.getDb().GetDatabase(Constants.HUBBL_DB_NAME).GetCollection <Hub>(Constants.HUBS_TABLE_NAME)
                .Find(Builders <Hub> .Filter.Eq <ObjectId>(hub => hub.id, new ObjectId(id))).First());
     } catch {
         return(null);
     }
 }
コード例 #3
0
 public static User getAutentification(string token)
 {
     try {
         return(DbHolder.getDb().GetDatabase(Constants.HUBBL_DB_NAME).GetCollection <User>(Constants.USERS_TABLE_NAME)
                .Find(Builders <User> .Filter.Eq <String>(e => e.token, token)).First());
     } catch {
         return(null);
     }
 }
コード例 #4
0
 public static User get(string id)
 {
     try {
         var  collection = DbHolder.getDb().GetDatabase(Constants.HUBBL_DB_NAME).GetCollection <User>(Constants.USERS_TABLE_NAME);
         User user       = collection.Find(Builders <User> .Filter.Eq <String>(u => u.id.ToString(), id)).First();
         return(user);
     } catch {
         return(null);
     }
 }
コード例 #5
0
        public static User trySignUp(string name, string login, string password)
        {
            IMongoCollection <User> users = DbHolder.getDb().GetDatabase(Constants.HUBBL_DB_NAME).GetCollection <User>(Constants.USERS_TABLE_NAME);

            long count = users.Find(Builders <User> .Filter.Eq <String>(u => u.login, login)).Count();

            if (count > 0)
            {
                return(null);
            }

            string salt = Utility.randomSalt();
            User   user = new User(login, Utility.sha256(password + salt + Settings.getServerKey()), salt, name, null);

            users.InsertOne(user);
            return(user);
        }
コード例 #6
0
 public static User tryLogin(string login, string password)
 {
     try {
         var  collection = DbHolder.getDb().GetDatabase(Constants.HUBBL_DB_NAME).GetCollection <User>(Constants.USERS_TABLE_NAME);
         User user       = collection.Find(Builders <User> .Filter.Eq <String>(u => u.login, login)).First();
         if (user.password != Utility.sha256(password + user.salt + Settings.getServerKey()))
         {
             return(null);
         }
         user.token = Guid.NewGuid().ToString();
         collection.FindOneAndUpdate(
             Builders <User> .Filter.Eq <ObjectId>(e => e.id, user.id),
             Builders <User> .Update.Set(e => e.token, user.token)
             );
         return(user);
     } catch {
         return(null);
     }
 }
コード例 #7
0
 public static List <HubInfo> find(string query)
 {
     return(DbHolder.getDb().GetDatabase(Constants.HUBBL_DB_NAME).GetCollection <Hub>(Constants.HUBS_TABLE_NAME)
            .Find(Builders <Hub> .Filter.Regex(Constants.HUB_NAME, query)).ToList().ConvertAll(el => new HubInfo(el.id.ToString(), el.name, el.owner.name)));
 }
コード例 #8
0
 public static List <HubInfo> getAll()
 {
     return(DbHolder.getDb().GetDatabase(Constants.HUBBL_DB_NAME).GetCollection <Hub>(Constants.HUBS_TABLE_NAME)
            .Find(_ => true).ToList().ConvertAll(el => new HubInfo(el.id.ToString(), el.name, el.owner.name)));
 }