예제 #1
0
        public static ErrorCode UploadReplay(MatchReplay replay, Guid gameID)
        {
            try
            {
                Guid           replayID       = Guid.NewGuid();
                string         uniqueBlobName = string.Format("{0}", replayID.ToString());
                CloudBlockBlob blob           = container.GetBlockBlobReference(uniqueBlobName);
                blob.UploadByteArray(SerializationHelper.Serialize(replay));

                Game game = (from g in db.Game
                             where g.Game_ID == gameID
                             select g).FirstOrDefault <Game>();

                game.Replay = uniqueBlobName;
                //if(replay.WinnerTeam == Guid.Empty)
                //{
                //  db.AddToTeams(Team.CreateTeam(replay.WinnerTeam, gameID));
                //}
                db.AddToGameDetails(GameDetails.CreateGameDetails(gameID, (int)replay.Steps, replay.WinnerTeam));
                db.SaveChanges();

                return(new ErrorCode(ErrorType.Ok, "Replay has been uploaded."));
            }
            catch (Exception e)
            {
                return(new ErrorCode(ErrorType.DataBaseProblems, "Blob problems: \n" + e.ToString()));
            }
        }