Example #1
0
        public async Task <TypeaheadResults> GetTypeAheadResults(TypeaheadParms parms)
        {
            string field = parms.Name;
            string value = parms.Value;

            if (!(new[] { "Name", "Type", "PolicyID" }.Contains(field)))
            {
                throw new ArgumentOutOfRangeException("Typeahead not available for the specified field!");
            }


            string sqlCmd    = "searchTypeAhead";
            var    results   = new List <string>();
            var    parmsList = new List <SqlParameter>()
            {
                new SqlParameter("@name", SqlDbType.NVarChar)
                {
                    Value = field ?? (object)DBNull.Value
                },
                new SqlParameter("@value", SqlDbType.NVarChar)
                {
                    Value = value ?? (object)DBNull.Value
                }
            };

            using (var connection = GetDBContext())
            {
                Task open    = connection.OpenAsync();
                var  command = new SqlCommand(sqlCmd, connection);
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.AddRange(parmsList.ToArray());
                await         open;
                SqlDataReader reader = await command.ExecuteReaderAsync();

                while (await reader.ReadAsync())
                {
                    results.Add(reader.IsDBNull(0) ? null : reader.GetString(0));
                }
                reader.Dispose();
            }
            return(new TypeaheadResults
            {
                Results = results
            });
        }
Example #2
0
        public async Task <IActionResult> SearchTA([FromServices] IReportsRepository data, [FromBody] TypeaheadParms parms)
        {
            if (!ModelState.IsValid)
            {
                return(new BadRequestResult());
            }
            TypeaheadResults results = await data.GetTypeAheadResults(parms);

            return(Content(JsonConvert.SerializeObject(results), "application/json"));
        }