예제 #1
0
        public async Task <ApiResponse> SetAwayWalkover([FromRoute] int competitionID, [FromRoute] short fixtureID, [FromRoute] short matchID, [FromBody] dynamic data)
        {
            this._unitOfWork.Begin();
            try
            {
                int competitionStageSequence = int.Parse(data.competitionStageSequence.ToString());

                var request = SetMatchWalkoverRequest.New()
                              .WithCompetitionID(competitionID)
                              .WithCompetitionStageSequence(competitionStageSequence)
                              .WithFixtureID(fixtureID)
                              .WithMatchID(matchID)
                              .WithWalkover(Walkover.Away)
                              .Build();
                ITeamResultEngine engine = await this._teamResultEngineManager.GetEngine(request);

                var response = await engine.SetWalkover(request);

                if (response.Status == ResultsEngineStatuses.Success)
                {
                    await engine.Save();

                    await this._sessionProvider.Session.FlushAsync();

                    this._unitOfWork.SoftCommit();
                    return(ApiResponse.CreateSuccess(null));
                }
                else
                {
                    this._unitOfWork.Rollback();
                    return(ApiResponse.CreateError(response.ValidationResult));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                this._unitOfWork.Rollback();
                throw;
            }
        }
예제 #2
0
        private async Task <ApiResponse> SaveTeamMatch(int competitionID, short fixtureID, short matchID, dynamic data, List <GameResult> gameResults)
        {
            this._unitOfWork.Begin();
            try
            {
                var request = SaveStandardResultRequest.New()
                              .WithCompetitionID(competitionID)
                              .WithCompetitionStageSequence(int.Parse(data.competitionStageSequence.ToString()))
                              .WithFixtureID(fixtureID)
                              .WithMatchID(matchID)
                              .WithGameResults(gameResults)
                              .Build();
                ITeamResultEngine engine = await this._teamResultEngineManager.GetEngine(request);

                var response = engine.SaveStandardResult(request);
                if (response.Status == ResultsEngineStatuses.Success)
                {
                    await engine.Save();

                    await this._sessionProvider.Session.FlushAsync();

                    this._unitOfWork.SoftCommit();
                    return(ApiResponse.CreateSuccess(null));
                }
                else
                {
                    this._unitOfWork.Rollback();
                    return(ApiResponse.CreateError(response.ValidationResult));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                this._unitOfWork.Rollback();
                throw;
            }
        }