public async Task <List <PlayfieldState> > GetPlayfieldStatebyStatesAsync(PlayfieldStateCriteria criteria)
        {
            var queryable = context.PlayfieldStates.AsQueryable();

            if (criteria.State != null)
            {
                queryable = queryable.Where(x => x.State == criteria.State);
            }

            return(await queryable.ToListAsync());
        }
        public async Task <IActionResult> GetPlayfieldStates(string jsonState = null)
        {
            var criteria = new PlayfieldStateCriteria();

            if (!string.IsNullOrEmpty(jsonState))
            {
                criteria.State = JsonConvert.DeserializeObject <string[, ]>(jsonState);
            }

            var playfieldStates = await playfieldStatesService.GetPlayfieldStatebyStatesAsync(criteria);

            var response = new GetPlayfieldStatesResponseDto()
            {
                PlayfieldStates = playfieldStates.Select(x => new GetPlayfieldStateResponseDto()
                {
                    JsonState = JsonConvert.SerializeObject(x.State)
                })
            };

            return(Ok(response));
        }