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; }
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(); }
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(); }
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; }
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; }
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; }
public void UpdateMessageStatus(string messageId) { var article = new Article(Schemas.ChatMessage, messageId); article.Set("is_seen",true); article.SaveAsync(); }
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; }
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(); }
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; }