예제 #1
0
        public async Task <IHttpActionResult> Get()
        {
            var request = new GetTeamsRequest();

            request.TenantId = (await _userManager.GetUserAsync(User)).TenantId;
            return(Ok(await _mediator.Send(request)));
        }
예제 #2
0
        public async Task <IActionResult> GetAllTeams()
        {
            var request  = new GetTeamsRequest(this._dataSourceProvider.UseDb);
            var response = await this._mediator.Send(request);

            return(this.Ok(response));
        }
예제 #3
0
        public IActionResult GetTeams(int id)
        {
            GetTeamsRequest request = new GetTeamsRequest();

            request.IDChampionship = id;
            IEnumerable <Team> lista = _service.GetTeams(request);

            return(Ok(lista));
        }
예제 #4
0
        public ListTeamsResponse ExecuteGet(GetTeamsRequest request)
        {
            var teams = _teamGateway.GetTeamsByTeamContextFlag(request.ContextFlag);

            return(new ListTeamsResponse()
            {
                Teams = teams.Select(team => team.ToDomain().ToResponse()).ToList()
            });
        }
예제 #5
0
        public Task <IEnumerable <Team> > Handle(GetTeamsRequest request, CancellationToken cancellationToken)
        {
            if (request.UseDb)
            {
                return(this._db.GetAllTeams());
            }

            return(Task.FromResult(this._mock.GetTeams()));
        }
예제 #6
0
        public static async Task <IReadOnlyList <Team> > GetTeamsAsync(GameServiceClient client, IReadOnlyList <Team> teams)
        {
            if (teams == null)
            {
                var request = new GetTeamsRequest();
                request.Fields.AddRange(new[] { TeamField.TeamId, TeamField.TeamName });
                teams = (await client.GetTeamsAsync(request)).Teams.ToList();
            }

            return(teams);
        }
        public IActionResult GetTeams([FromQuery] GetTeamsRequest request)
        {
            var validator         = new GetTeamsRequestValidator();
            var validationResults = validator.Validate(request);

            if (!validationResults.IsValid)
            {
                return(BadRequest(validationResults.ToString()));
            }

            var teams = _teamsUseCase.ExecuteGet(request);

            return(Ok(teams));
        }
예제 #8
0
        public static async Task <CreateTeamsReply> CreateTeamsAsync(CreateTeamsRequest request, ServerCallContext context)
        {
            using var db = new LegendaryDatabase();
            var connector = DbConnector.Create(db.Connection, new DbConnectorSettings {
                AutoOpen = true, LazyOpen = true
            });

            var reply = new CreateTeamsReply {
                Status = new Status {
                    Code = 200
                }
            };

            var teams = await GetTeamsAsync(new GetTeamsRequest(), context);

            var teamsToAdd = request.Teams.Where(x => !teams.Teams.Any(y => y.Name.Equals(x.Name, StringComparison.OrdinalIgnoreCase))).ToList();

            if (teamsToAdd.Count != request.Teams.Count() && request.CreateOptions.Contains(CreateOptions.ErrorOnDuplicates))
            {
                reply.Status.Code    = 400;
                reply.Status.Message = $"Cannot add duplicate teams ({request.Teams.Except(teamsToAdd).Select(x => x.Name).Join(", ")}).";
                return(reply);
            }

            List <int> insertIds = request.Teams.Except(teamsToAdd).Select(x => x.Id).ToList();

            foreach (var team in teamsToAdd)
            {
                insertIds.Add((int)(await connector.Command($@"
					insert
						into {DatabaseDefinition.DefaultTableName}
							({DatabaseDefinition.ColumnName[TeamField.TeamName]}, {DatabaseDefinition.ColumnName[TeamField.TeamImagePath]})
						values (@TeamName, @ImagePath);
					select last_insert_id();"                    ,
                                                            ("TeamName", team.Name),
                                                            ("ImagePath", team.ImagePath))
                                    .QuerySingleAsync <ulong>()));
            }

            var finalTeamsList = new GetTeamsRequest();

            finalTeamsList.TeamIds.AddRange(insertIds);
            var createdTeams = await GetTeamsAsync(finalTeamsList, context);

            reply.Teams.AddRange(createdTeams.Teams);
            return(reply);
        }
예제 #9
0
        public Task <List <TeamDTO> > GetTeamsAsync(CancellationTokenSource cancellationTokenSource) =>
        Task <List <TeamDTO> > .Run(async() => {
            if (!CrossConnectivity.Current.IsConnected)
            {
                throw new InvalidOperationException(AppConsts.ERROR_INTERNET_CONNECTION);
            }

            List <TeamDTO> foundTeams = null;

            GetTeamsRequest getTeamsRequest = new GetTeamsRequest()
            {
                AccessToken = GlobalSettings.Instance.UserProfile.AccesToken,
                Url         = GlobalSettings.Instance.Endpoints.TeamEndPoints.GetAllTeams
            };

            try {
                GetTeamsResponse getTeamsResponse = await _requestProvider.GetAsync <GetTeamsRequest, GetTeamsResponse>(getTeamsRequest);

                if (getTeamsResponse != null)
                {
                    foundTeams = (getTeamsResponse.Data != null) ? getTeamsResponse.Data.ToList() : new List <TeamDTO>();
                }
                else
                {
                    throw new InvalidOperationException(TeamService.GET_TEAMS_COMMON_ERROR_MESSAGE);
                }
            }
            catch (ServiceAuthenticationException exc) {
                _identityUtilService.RefreshToken();

                throw exc;
            }
            catch (Exception exc) {
                Crashes.TrackError(exc);
                throw;
            }

            return(foundTeams);
        }, cancellationTokenSource.Token);
예제 #10
0
        public static async Task DisplayTeamsAsync(GameServiceClient client, IReadOnlyList <int> teamIds = null, string name = null, NameMatchStyle nameMatchStyle = NameMatchStyle.MixedCase)
        {
            var request = new GetTeamsRequest();

            if (teamIds != null && teamIds.Count() != 0)
            {
                request.TeamIds.AddRange(teamIds);
            }
            else if (!string.IsNullOrWhiteSpace(name))
            {
                request.Name = name;
            }

            request.NameMatchStyle = nameMatchStyle;

            var teams = await client.GetTeamsAsync(request);

            foreach (var team in teams.Teams)
            {
                ConsoleUtility.WriteLine($"{team}");
            }
        }
예제 #11
0
        public static async Task <GetTeamsReply> GetTeamsAsync(GetTeamsRequest request, ServerCallContext context)
        {
            using var db = new LegendaryDatabase();
            var connector = DbConnector.Create(db.Connection, new DbConnectorSettings {
                AutoOpen = true, LazyOpen = true
            });

            var reply = new GetTeamsReply {
                Status = new Status {
                    Code = 200
                }
            };

            var select = DatabaseDefinition.BuildSelectStatement(request.Fields);
            var joins  = DatabaseDefinition.BuildRequiredJoins(request.Fields);

            var where = !string.IsNullOrWhiteSpace(request.Name) ?
                        $"where { DatabaseDefinition.BuildWhereStatement(TeamField.TeamName, WhereStatementType.Like)}" :
                        request.TeamIds.Count() != 0 ?
                        $"where { DatabaseDefinition.BuildWhereStatement(TeamField.TeamId, WhereStatementType.Includes)}" :
                        "";

            var whereMatch = !string.IsNullOrWhiteSpace(request.Name) ?
                             new (string, object)[] { (DatabaseDefinition.GetSelectResult(TeamField.TeamName), $"%{request.Name}%") } :
예제 #12
0
 public override async Task <GetTeamsReply> GetTeams(GetTeamsRequest request, ServerCallContext context)
 {
     return(await TeamUtility.GetTeamsAsync(request, context));
 }