コード例 #1
0
        private int UpdateDbUser(string username)
        {
            try
            {
                using (SBEntities dc = new SBEntities())
                {
                    User u;
                    u = dc.Users.Where(w => w.Username == TextBoxLogin.Text.Trim()).FirstOrDefault();
                    if (u == null)
                    {
                        u             = new User();
                        u.Username    = username;
                        u.DateCreated = DateTime.UtcNow;
                        dc.Users.Add(u);
                    }
                    u.LastLogin = DateTime.UtcNow;
                    dc.SaveChanges();

                    return(u.UserKey);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("There was a failure contacting the ShackBattles database.<br/><br/>" + ex.Message);
            }
        }
コード例 #2
0
        public ApiResult JoinBattle(JObject data)
        {
            dynamic json       = data;
            int     UserKey    = (int)json.userKey;
            String  battleGUID = json.battleGUID;
            bool    joinBattle = (bool)json.joinBattle;

            try
            {
                using (SBEntities db = new SBEntities())
                {
                    int        battleKey = db.Battles.Where(w => w.BattleGUID == battleGUID).FirstOrDefault().BattleKey;
                    UserBattle ub        = db.UserBattles.Where(w => w.BattleKey == battleKey && w.UsersKey == UserKey).FirstOrDefault();

                    if (joinBattle && ub == null)
                    {
                        ub           = new UserBattle();
                        ub.BattleKey = battleKey;
                        ub.UsersKey  = UserKey;
                        db.UserBattles.Add(ub);
                        db.SaveChanges();
                        return(new ApiResult(true, string.Empty, "User added to battle " + battleGUID));
                    }
                    else if (!joinBattle && ub != null)
                    {
                        db.UserBattles.Remove(ub);
                        db.SaveChanges();
                        return(new ApiResult(true, string.Empty, "User removed from battle " + battleGUID));
                    }
                }
            }
            catch (Exception ex)
            {
                return(new ApiResult(false, string.Empty, ex.Message));
            }

            return(new ApiResult(false, string.Empty, "No changes where made."));
        }
コード例 #3
0
 public static void DeleteShackBattle(string battleGUID)
 {
     using (SBEntities db = new SBEntities())
     {
         Battle b = db.Battles.Where(w => w.BattleGUID == battleGUID).FirstOrDefault();
         if (b != null)
         {
             b.Deleted = true;
             db.SaveChanges();
             User          u  = db.Users.Where(w => w.UserKey == b.CreatorKey).FirstOrDefault();
             StringBuilder sb = new StringBuilder();
             sb.AppendLine("Your ShackBattle titled " + b.Title + " was deleted succesfully.");
             ShackNewsHelper.SendShackMessage(u.Username, "Your ShackBattle was Deleted", sb.ToString());
         }
     }
 }
コード例 #4
0
        protected void ButtonSubmit_Click(object sender, EventArgs e)
        {
            using (SBEntities db = new SBEntities())
            {
                UserSession uc = Helper.GetUserSession();
                User        u  = db.GetUser(uc.userKey);

                u.GamerTag        = TextBoxGamerTag.Text.Trim();
                u.PSNID           = TextBoxPSN.Text.Trim();
                u.NintendoAccount = TextBoxNintendo.Text.Trim();
                u.BattleNet       = TextBoxBattleNet.Text.Trim();
                u.SteamAccount    = TextBoxSteam.Text.Trim();
                u.OriginAccount   = TextBoxOrigin.Text.Trim();
                u.Bio             = TextBoxBio.Text.Trim();

                db.SaveChanges();
            }
        }
コード例 #5
0
        protected void AddGame_Command(object sender, CommandEventArgs e)
        {
            int gameID = int.Parse(e.CommandArgument.ToString());

            using (SBEntities db = new SBEntities())
            {
                Game g = db.Games.Where(w => w.GamesDbId == gameID).FirstOrDefault();
                if (g != null)
                {
                    // show error
                    SetError("This game is already in the system.");
                    return;
                }
                else
                {
                    g = new Game();
                }

                // if not call and get game details
                string search = "http://thegamesdb.net/api/GetGame.php?id=" + gameID.ToString();

                MemoryStream  stream = new MemoryStream();
                XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
                XmlDocument   doc    = new XmlDocument();
                doc.Load(search);

                List <GameDBGamesListResult> searchResults = new List <GameDBGamesListResult>();
                XmlNode games = doc.SelectSingleNode("Data/Game");
                g.GameSystemKey = int.Parse(DropDownListSystem.SelectedValue);
                g.GameName      = games.SelectSingleNode("GameTitle").InnerText;

                string boxArtPath = "";
                try
                {
                    g.OverView = games.SelectSingleNode("Overview").InnerText;
                }
                catch { g.OverView = ""; }
                g.GamesDbId = int.Parse(games.SelectSingleNode("id").InnerText);
                try
                {
                    g.ReleaseDate = DateTime.Parse(games.SelectSingleNode("ReleaseDate").InnerText);
                }
                catch
                {
                    g.ReleaseDate = null;
                }
                try
                {
                    XmlNode images = games.SelectSingleNode("Images/boxart[@side='front']");
                    g.CoverImage = Path.GetFileName(images.InnerText);
                    boxArtPath   = images.InnerText;
                }
                catch
                {
                    g.CoverImage = "missing.jpg";
                }

                db.Games.Add(g);
                db.SaveChanges();

                try
                {
                    // download and store cover
                    if (!string.IsNullOrEmpty(g.CoverImage) && !string.IsNullOrEmpty(boxArtPath) && g.CoverImage != "missing.jpg")
                    {
                        using (WebClient wc = new WebClient())
                        {
                            string imageUrl = "http://thegamesdb.net/banners/" + boxArtPath;
                            wc.DownloadFile(imageUrl, Server.MapPath("~") + "images/boxart/" + Path.GetFileName(imageUrl));

                            try
                            {
                                Helper.ResizeImage(Server.MapPath("~") + "images/boxart/" + Path.GetFileName(imageUrl), Server.MapPath("~") + "images/boxart/" + Path.GetFileName(imageUrl), 300, 423, false);
                            }
                            catch { }
                        }
                    }
                }
                catch {
                    // image grab failed
                    g.CoverImage = "missing.jpg";
                    db.SaveChanges();
                }

                // done
                PanelMain.Visible = false;
                PanelDone.Visible = true;
            }
        }
コード例 #6
0
        public Battle SaveBattle([FromBody] JObject data)
        {
            using (SBEntities db = new SBEntities())
            {
                dynamic json = data;
                try
                {
                    string battleGUID = (string)json["BattleGUID"];

                    // this should handle DST
                    TimeZoneInfo est        = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
                    DateTime     battleDate = TimeZoneInfo.ConvertTimeToUtc(DateTime.Parse((string)json["BattleDate"]), est);
                    Battle       b;
                    bool         newBattle = false;
                    if (!string.IsNullOrEmpty(battleGUID))
                    {
                        b = db.Battles.Where(w => w.BattleGUID == battleGUID).FirstOrDefault();
                    }
                    else
                    {
                        newBattle     = true;
                        b             = new Battle();
                        b.BattleGUID  = Guid.NewGuid().ToString();
                        b.DateCreated = DateTime.UtcNow;
                        b.Deleted     = false;
                        db.Battles.Add(b);
                    }

                    b.GameKey    = (int)json["GameKey"];
                    b.Title      = (string)json["Title"];
                    b.BattleDate = battleDate;
                    b.Details    = (string)json["Details"];
                    b.CreatorKey = (int)json["CreatorKey"];

                    db.SaveChanges();

                    // The user is added to their own battle
                    if (newBattle)
                    {
                        UserBattle ub = db.UserBattles.Where(w => w.UsersKey == b.CreatorKey && w.BattleKey == b.BattleKey).FirstOrDefault();
                        if (ub == null)
                        {
                            ub           = new UserBattle();
                            ub.UsersKey  = b.CreatorKey;
                            ub.BattleKey = b.BattleKey;
                            db.UserBattles.Add(ub);
                            db.SaveChanges();
                        }
                        try
                        {
                            User u = db.Users.Where(w => w.UserKey == b.CreatorKey).FirstOrDefault();
                            if (u != null)
                            {
                                ShackNewsHelper.SendBattleCreation(u.Username, b.BattleKey);
                            }
                        }
                        catch
                        {
                        }
                    }

                    return(b);
                }
                catch (Exception)
                {
                    // TODO: handle
                }
                return(null);
            }
        }