Пример #1
0
        public async Task <GameViewModel> GetFilteredItemAsync(GameQueryRequest request)
        {
            var queryArgs = new DynamicParameters();

            var query = $@"SELECT 
                            Id,
                            Name,
                            Genre,
                            Synopsis,
                            Platform,
                            LaunchDate,
                            IsAvailable,
                            IsActive
                           FROM [Game]
                           {FormatQueryFilter(request, ref queryArgs)}
                           ORDER BY Name";

            return((await _sqlConnection.QueryAsync <GameViewModel>(query, queryArgs)).FirstOrDefault());
        }
Пример #2
0
        private static string FormatQueryFilter(GameQueryRequest request, ref DynamicParameters queryArgs)
        {
            var filter = string.Empty;

            if (request.Id.HasValue)
            {
                queryArgs.Add("Id", request.Id);

                filter += filter.Length > 0
                    ? "AND Id = @Id "
                    : "WHERE Id = @Id ";
            }

            if (request.IsAvailable.HasValue)
            {
                queryArgs.Add("IsAvailable", request.IsAvailable.Value);

                filter += filter.Length > 0
                    ? "AND IsAvailable = @IsAvailable "
                    : "WHERE IsAvailable = @IsAvailable";
            }

            return(filter);
        }