예제 #1
0
 private void Handle(GetMatchesRequest request)
 {
     Context.Sender.Tell(new GetMatchesResponse()
     {
         Matches = Matches
     });
 }
예제 #2
0
        public Response <List <Matches> > GetMatches([FromQuery] GetMatchesRequest request)
        {
            _logger.LogInfo("request for search matches arrived");
            var result = _matchManager.GetMatches(request);

            return(result);
        }
예제 #3
0
        /// <summary>
        /// Method that does the searching for matches from the GetMatches endpoint
        /// </summary>
        public Response <List <Matches> > GetMatches(GetMatchesRequest request)
        {
            var response      = new Response <List <Matches> >();
            var pagedResponse = new List <Matches>();

            if (!string.IsNullOrEmpty(request.Type))
            {
                var getMatches = _repository.GetAll <Matches>().Where(x => x.Type.Equals(request.Type));
                pagedResponse = getMatches.OrderByDescending(x => x.CurrentPlayers)
                                .Skip((request.CurrentPage - 1) * request.PageSize)
                                .Take(request.PageSize)
                                .ToList();
            }
            else
            {
                var getMatches = _repository.GetAll <Matches>();
                pagedResponse = getMatches.OrderByDescending(x => x.CurrentPlayers)
                                .Skip((request.CurrentPage - 1) * request.PageSize)
                                .Take(request.PageSize)
                                .ToList();
            }
            if (pagedResponse == null)
            {
                _logger.LogInfo("there are no matches with this search criteria");
                response.Messages.Add(new ResponseMessage
                {
                    Type    = Contracts.Enums.ResponseMessageEnum.Info,
                    Message = "There are no matches with this search criteria",
                });
                response.Status = System.Net.HttpStatusCode.NotFound;
            }
            _logger.LogInfo("list of matches returned");
            response.Payload = pagedResponse;
            return(response);
        }
예제 #4
0
        public object Get(GetMatchesRequest Request)
        {
            User user = GetAuthenticatedUser(((NHibernate.ISession)base.Request.Items["hibernateSession"]));

            IQueryable <Match> Matches = new BaseRepository <Match>(((NHibernate.ISession)base.Request.Items["hibernateSession"])).List(x =>
                                                                                                                                        x.SecondUser != null
                                                                                                                                        &&
                                                                                                                                        (x.FirstUser == user || x.SecondUser == user)
                                                                                                                                        &&
                                                                                                                                        (x.IsFirstUserLike && x.IsSecondUserLike != null && x.IsSecondUserLike == true)
                                                                                                                                        ).OrderByDescending(y => y.Updated);

            GetMatchesResponse Response = new GetMatchesResponse(user, Matches.ToList());

            Response.data = Response.data.Skip(Request.offset).ToArray();

            if (Request.limit > 0)
            {
                Response.data = Response.data.Take(Request.limit).ToArray();
            }

            return(Response);
        }