Example #1
0
 public bool AddUser(Account account, out string errorMessage)
 {
     errorMessage = string.Empty;
     try
     {
         var exUser = Articles.FindAllAsync(Schemas.User, Query.Property("username").IsEqualTo(account.UserName).ToString(), new[] { "__id" }).Result;
         if (exUser == null || exUser.Count == 0)
         {
             User user = new User();
             user.Set("username", account.UserName);
             user.Set("email", account.Email);
             user.Set("firstname", account.FirstName);
             user.Set("lastname", account.LastName);
             user.Set("password", account.Password);
             var profile = new Article(Schemas.Profile);
             profile.Set("total_points", "1");
             profile.Set("level", "1");
             profile.Set("max_game_limit", AppConfigurations.MaxAllowedGamesPerUser);
             var userProfile = Connection.New(Relations.UserProfile)
                 .FromNewArticle(Schemas.User, user)
                 .ToNewArticle(Schemas.Profile, profile).SaveAsync();
             userProfile.Wait();
             account.Id = user.Id;
             return true;
         }
     }
     catch (Exception ex)
     {
         errorMessage = ex.Message;
         return false;
     }
     errorMessage = "User name already exist!!!";
     return false;
 }
Example #2
0
 public Game CreateGame(string userId, GameStatus status, bool isActive, List<string> tiles, List<string> gameTiles)
 {
     var user = new User(userId);
     var game = new Article(Schemas.Game);
     game.Set("status", status.ToString());
     game.Set("tiles", string.Join(",", gameTiles));
     var conn = Connection.New(Relations.GamePlayer)
         .FromExistingArticle("player", userId)
         .ToNewArticle("game", game);
     conn.Set("ishost", true);
     conn.Set("isactive", isActive);
     conn.Set("tiles", string.Join("|", tiles));
     conn.Set("tiles_remaining", AppConfigurations.MaxTilesPerPlayer);
     conn.SaveAsync().Wait();
     return game.ToModelGame();
 }
Example #3
0
 public void LogMessage(Log log)
 {
     Article article = new Article(Schemas.Log);
     article.Set("name",log.Name);
     article.Set("machine", log.MachineName);
     article.Set("sessionid", log.SessionId);
     article.Set("request", log.Request);
     article.Set("response", log.Response);
     article.Set("servicename", log.ServiceName);
     article.Set("status", log.Status);
     article.Set("timetaken", log.TimeTaken);
     article.SaveAsync();
 }
Example #4
0
 public bool StartGame(string gameId, string userId, GameStatus status, bool isActive, List<string> tiles, List<string> gameTiles)
 {
     var game = new Article(Schemas.Game, gameId);
     var players = game.GetAllConnectedArticles(Relations.GamePlayer, null, null, new[] {"__id"});
     if (players != null && players.Count == 1)
     {
         game.Set("status", status.ToString());
         game.Set("tiles", string.Join(",", gameTiles));
         var conn = Connection.New(Relations.GamePlayer)
             .FromExistingArticle("player", userId)
             .ToExistingArticle("game", gameId);
         conn.Set("ishost", false);
         conn.Set("isactive", isActive);
         conn.Set("tiles", string.Join("|", tiles));
         conn.Set("tiles_remaining", AppConfigurations.MaxTilesPerPlayer);
         conn.SaveAsync().Wait();
         game.SaveAsync().Wait();
         return true;
     }
     return false;
 }
Example #5
0
 public bool SaveGameTiles(string gameId, List<string> gameTiles)
 {
     var gameArticle = new Article(Schemas.Game, gameId);
     gameArticle.Set("tiles", string.Join(",",gameTiles));
     gameArticle.SaveAsync();
     return true;
 }
Example #6
0
 public bool SaveGameStatus(string gameId, GameStatus status)
 {
     var article = Articles.GetAsync(Schemas.Game, gameId, new[] {"status"}).Result;
     if (!string.Equals(GameStatus.Finished.ToString(), article.Get<string>("status"), StringComparison.OrdinalIgnoreCase))
     {
         var game = new Article(Schemas.Game, gameId);
         game.Set("status", status.ToString());
         game.SaveAsync().Wait();
     }
     return true;
 }
Example #7
0
 public void UpdateMessageStatus(string messageId)
 {
     var article = new Article(Schemas.ChatMessage, messageId);
     article.Set("is_seen",true);
     article.SaveAsync();
 }
Example #8
0
 public string SaveMessage(ChatMessage message)
 {
     var article = new Article(Schemas.ChatMessage);
     article.Set("from", message.From);
     article.Set("to", message.To);
     article.Set("message", message.Message);
     article.SaveAsync().Wait();
     return article.Id;
 }
Example #9
0
 public void LogException(Exception exception, string source, string method, Severity severity)
 {
     var log = new ExceptionLog(exception, source, method, severity);
     Article article = new Article(Schemas.Exception);
     article.Set("title",log.Title);
     article.Set("type", log.Type);
     article.Set("severity", log.Severity);
     article.Set("message", log.Message);
     article.Set("sessionid", log.SessionId);
     article.Set("machine", log.MachineName);
     article.Set("appdomain", log.AppDomainName);
     article.Set("source", log.Source);
     article.Set("targetsite", log.TargetSite);
     article.Set("statcktrace", log.StackTrace);
     article.Set("additioninfo", log.AdditionalInfo);
     article.Set("innerexception", log.InnerException);
     article.SaveAsync();
 }
Example #10
0
 public Move SaveMove(string gameId, Move move)
 {
     Article moveArticle = new Article(Schemas.Moves);
     moveArticle.Set("move_code", move.MoveCode);
     moveArticle.Set("points", move.Points);
     moveArticle.Set("player", move.Player);
     var con = Connection.New(Relations.GameMove)
         .FromExistingArticle(Schemas.Game, gameId)
         .ToNewArticle(Schemas.Moves, moveArticle);
     con.SaveAsync().Wait();
     move = moveArticle.ToModelMove();
     move.TimeStamp = DateTime.UtcNow;
     return move;
 }