public Task <IActionResult> Create([FromBody] CreateMatch match)
 {
     return(_mediator.Try(match)
            .OnSuccess(payload => Ok())
            .OnFailure(result => BadRequest())
            .Send());
 }
Beispiel #2
0
        public ValidationResult Create(CreateMatch create)
        {
            ValidationResult validation = new ValidationResult();

            /*
             * if (!JsonOperation.IsJsonFormat(create.GameData))
             * {
             *  validation.AddError(ValidationKey.MatchNoJsonFormatGameData);
             * }*/

            if (create.UserIdList == null)
            {
                validation.AddError(ValidationKey.MatchNoUsers);
            }
            else
            {
                foreach (var userId in create.UserIdList)
                {
                    if (!context.Users.Any(u => u.UserId == userId))
                    {
                        validation.AddError(ValidationKey.MatchNoUser, userId.ToString());
                    }
                }
            }

            return(validation);
        }
Beispiel #3
0
        public MatchServiceResponse Create(CreateMatch create)
        {
            ValidationResult validate = validator.Create(create);

            if (!validate.IsSucces)
            {
                return(new MatchServiceResponse(ServiceRespondStatus.Error, validate.ErrorList, null));
            }

            Match match = new Match();

            match.GameTypeId = (int)create.GameType;
            match.DateStart  = DateTime.Now;
            match.GameData   = null;
            match.MatchUsers = new List <MatchUser>();
            foreach (int user in create.UserIdList)
            {
                match.MatchUsers.Add(new MatchUser()
                {
                    UserId = user, MatchResultId = (int)Enums.MatchResults.InProgress
                });
            }

            this.context.Matches.Add(match);
            this.context.SaveChanges();

            //Uzupełnić dane o Userze
            foreach (var matchUser in match.MatchUsers)
            {
                matchUser.User = this.context.Users.First(f => f.UserId == matchUser.UserId); //Dopisać tą funkcję do servicu
            }


            return(new MatchServiceResponse(match));
        }
Beispiel #4
0
        public void onGUI()
        {
            try
            {
                switch (sceneLoader.current)
                {
                case SceneLoaderService.Scene.scGameMenu:
                    // Scene0 - Splash
                    Splash.Draw();
                    break;

                case SceneLoaderService.Scene.scCreateMatch:
                    // Scene1 - Wybor Mapy
                    CreateMatch.Draw();
                    break;

                case SceneLoaderService.Scene.scPlay:
                    // Scene3 - Play
                    GamePlay.Draw();
                    break;
                }



                ExceptionHandler.drawErrorWindow();
            }
            catch (Exception e)
            {
                ExceptionHandler.catchException(e);
            }
        }
        public async Task <IActionResult> PostMatch([FromBody] CreateMatch match, int userId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            int matchId = await _matchService.CreateAsyncMatch(match, userId);

            return(Created($"/Match/GetMatch/{matchId}", matchId));
        }
Beispiel #6
0
        // Revision Entity Framework Core
        public async Task <int> CreateMatch(CreateMatch input)
        {
            var newMatch = ObjectMapper.Map <Match>(input);

            //newMatch.State = MatchState.Open; // have automapper figure it out
            await _matchRepository.SaveChanges(newMatch);

            //var matchState = await _matchRepository.GetAsync(newMatch);
            //matchState.State = MatchState.Open;
            return(newMatch);
        }
Beispiel #7
0
        public async Task <int> CreateAsyncMatch(CreateMatch matchData, int userId)  //metoda tworzaca nowy mecz
        {
            var user = await _authRepository.UserAccount(userId);

            //zera to wynik meczu zadeklarowane z gory
            var match = new Matchh(matchData.OpponentTeam, matchData.MatchDate, matchData.Place);

            match.user = user;
            int matchId = await _matchRepository.AddAsyncMatch(match, userId);

            return(matchId);
        }
 public void createMatch(MatchMode matchMode, int nbRounds, int timeLimit)
 {
     try
     {
         CreateMatch createMatch = new CreateMatch(nbRounds, timeLimit, matchMode);
         this._socketHandler.socket.Emit("create_match", JsonConvert.SerializeObject(createMatch));
         this.userdata.matchMode = matchMode;
     }
     catch (Exception)
     {
         _events.PublishOnUIThread(new appWarningEvent("Select an option from ALL the fields to create a match."));
     }
 }
        public void Post([FromBody] CreateMatch SaveMatch)
        {
            var home = _dbContext.Clubs.Where(x => x.ShortCode == SaveMatch.HomeTeam).FirstOrDefault();
            var away = _dbContext.Clubs.Where(x => x.ShortCode == SaveMatch.AwayTeam).FirstOrDefault();

            var match = new Models.Match()
            {
                Id       = Guid.NewGuid(),
                HomeTeam = home,
                AwayTeam = away,
                KickOff  = SaveMatch.KickOff
            };

            _dbContext.Add(match);

            _dbContext.SaveChanges();
        }
Beispiel #10
0
        async Task ProcessAsync(HttpListenerContext ctx)
        {
            if (ctx.Request.UserAgent != "osu!")
            {
                return;
            }
            if (ctx.Request.Url.AbsolutePath.StartsWith("/web/"))
            {
                return;
            }

            if (string.IsNullOrEmpty(ctx.Request.Headers["osu-token"]))
            {
                await Login.Handle(ctx);

                return;
            }

            Player p = Global.FindPlayer(ctx.Request.Headers["osu-token"]);

            if (p == null) // if they arent part of the player collection, force them to relogin
            {
                ctx.Response.StatusCode = 403;
                ctx.Response.OutputStream.Write(Packets.Packets.SingleIntPacket(5, -5));
                ctx.Response.Close();
                return;
            }

            using (MemoryStream ms = new MemoryStream())
                using (BinaryReader r = new BinaryReader(ms))
                {
                    await ctx.Request.InputStream.CopyToAsync(ms);

                    ms.Position = 0;
                    while (ms.Position < ctx.Request.ContentLength64 - 6)
                    {
                        short Id = r.ReadInt16();
                        ms.Position += 1;
                        int Length = r.ReadInt32();
                        if (ms.Position + Length > ctx.Request.ContentLength64)
                        {
                            break;
                        }
                        if (Id == 68 || Id == 79)
                        {
                            ms.Position += Length;
                            continue;
                        }

                        byte[] Data = r.ReadBytes(Length);
                        switch (Id)
                        {
                        case 4: p.Ping = DateTime.Now.Ticks; break;

                        case 0:
                            StatusUpdate.Handle(p, Data);
                            break;

                        case 1:
                            IrcMessage.Handle(p, Data);
                            break;

                        case 2:
                            Player.RemovePlayer(p);
                            break;

                        case 3:
                            await StatsUpdateRequest.Handle(p);

                            break;

                        case 16:
                            StartSpectating.Handle(p, Data);
                            break;

                        case 17:
                            StopSpectating.Handle(p);
                            break;

                        case 18:
                            SpectatorFrames.Handle(p, Data);
                            break;

                        case 25:
                            IrcMessage.HandlePrivate(p, Data);
                            break;

                        case 29:
                            Global.LeaveLobby(p);
                            break;

                        case 30:
                            Global.JoinLobby(p);
                            break;

                        case 31:
                            CreateMatch.Handle(p, Data);
                            break;

                        case 32:
                            JoinMatch.Handle(p, Data);
                            break;

                        case 33:
                            LeaveMatch.Handle(p);
                            break;

                        case 38:
                            ChangeSlot.Handle(p, Data);
                            break;

                        case 39:
                            MatchReady.Handle(p);
                            break;

                        case 40:
                            SlotLock.Handle(p, Data);
                            break;

                        case 41:
                            MatchSettings.Handle(p, Data);
                            break;

                        case 44:
                            MatchStart.Handle(p, Data);
                            break;

                        case 49:
                            MatchFinished.Handle(p);
                            break;

                        case 51:
                            ModsChange.Handle(p, Data);
                            break;

                        case 52:
                            MatchLoaded.Handle(p);
                            break;

                        case 54:
                            NoBeatmap.Handle(p);
                            break;

                        case 55:
                            MatchReady.Handle(p);
                            break;

                        case 56:
                            MatchFailed.Handle(p);
                            break;

                        case 59:
                            HasBeatmap.Handle(p);
                            break;

                        case 60:
                            MatchSkip.Handle(p);
                            break;

                        case 63:
                            ChannelJoinEvent.Handle(p, Data);
                            break;

                        case 70:
                            ChangeHost.Handle(p, Data);
                            break;

                        case 73:
                            AddFriend.Handle(p, Data);
                            break;

                        case 74:
                            RemoveFriend.Handle(p, Data);
                            break;

                        case 77:
                            ChangeTeam.Handle(p, Data);
                            break;

                        case 78:
                            ChannelLeaveEvent.Handle(p, Data);
                            break;

                        case 85:
                            StatsUpdateRequest.Handle(p, Data);
                            break;

                        case 90:
                            MatchChangePassword.Handle(p, Data);
                            break;

                        default:
                            Log.LogFormat($"%#FFFF%Unhandled Packet {Id} with {Length}");
                            break;
                        }
                    }
                }

            if (p.StreamLength != 0)
            {
                p.StreamCopyTo(ctx.Response.OutputStream);
            }
            ctx.Response.Close();
        }
Beispiel #11
0
 public async Task CreateMatch(CreateMatch input)
 {
     await _matchRepository.InsertAsync(ObjectMapper.Map <Match>(input));
 }
        public void Create()
        {
            //Arrange
            var userData = new List <User>
            {
                new User {
                    Email = "[email protected]", Name = "IhaveName1", Password = "******", UserId = 1
                },
                new User {
                    Email = "[email protected]", Name = "IhaveName2", Password = "******", UserId = 2
                },
                new User {
                    Email = "[email protected]", Name = "IhaveName3", Password = "******", UserId = 3
                },
                new User {
                    Email = "[email protected]", Name = "IhaveName4", Password = "******", UserId = 4
                }
            }.AsQueryable();

            var mockUserSet = new Mock <DbSet <User> >();

            mockUserSet.SetupData(userData);

            var mockContext = new Mock <IBoardGameDbContext>();

            mockContext.Setup(s => s.Users).Returns(mockUserSet.Object);

            IMatchServiceValidation serviceValidation = new MatchServiceValidation(new MatchValidation(), mockContext.Object);

            CreateMatch createMatchOk = new CreateMatch {
                GameType = (int)GameTypes.Chess, UserIdList = new List <int> {
                    1, 2
                }
            };
            CreateMatch createMatchOkMultipleUser = new CreateMatch {
                GameType = (int)GameTypes.Chess, UserIdList = new List <int> {
                    1, 2, 3, 4
                }
            };
            CreateMatch createMatchNoGameData = new CreateMatch {
                GameType = (int)GameTypes.Chess, UserIdList = new List <int> {
                    1, 2
                }
            };
            CreateMatch createMatchNoUserList = new CreateMatch {
                GameType = (int)GameTypes.Chess, UserIdList = null
            };
            CreateMatch createMatchNoUserInDB = new CreateMatch {
                GameType = (int)GameTypes.Chess, UserIdList = new List <int> {
                    1, 6
                }
            };


            //Act
            var resultOk              = serviceValidation.Create(createMatchOk);
            var resultOkMultipleUser  = serviceValidation.Create(createMatchOk);
            var resultNoGameData      = serviceValidation.Create(createMatchNoGameData);
            var resultNoUserList      = serviceValidation.Create(createMatchNoUserList);
            var resultMatchNoUserInDB = serviceValidation.Create(createMatchNoUserInDB);


            //Assert
            Assert.AreEqual(resultOk.IsSucces, true);
            Assert.AreEqual(resultOk.ErrorList.Count, 0);

            Assert.AreEqual(resultOkMultipleUser.IsSucces, true);
            Assert.AreEqual(resultOkMultipleUser.ErrorList.Count, 0);

            /*
             * Assert.AreEqual(resultNoGameData.IsSucces, false);
             * Assert.AreEqual(resultNoGameData.ErrorList.Any(a=> a.Key == ValidationKey.MatchNoJsonFormatGameData.ToString()), true);
             * Assert.AreEqual(resultNoGameData.ErrorList.Count, 1);
             */
            Assert.AreEqual(resultNoUserList.IsSucces, false);
            Assert.AreEqual(resultNoUserList.ErrorList.Any(a => a.Key == ValidationKey.MatchNoUsers.ToString()), true);
            Assert.AreEqual(resultNoUserList.ErrorList.Count, 1);

            Assert.AreEqual(resultMatchNoUserInDB.IsSucces, false);
            Assert.AreEqual(resultMatchNoUserInDB.ErrorList.Any(a => a.Key == ValidationKey.MatchNoUser.ToString() && a.Value.Contains("6")), true);
            Assert.AreEqual(resultMatchNoUserInDB.ErrorList.Count, 1);
        }