コード例 #1
0
        public async Task <string> CompleteAdoption([FromQuery] string petId, string pettype)
        {
            try
            {
                Console.WriteLine($"[{AWSXRayRecorder.Instance.GetEntity().TraceId}] - In CompleteAdoption Action method - PetId:{petId} - PetType:{pettype}");
                AWSXRayRecorder.Instance.AddAnnotation("PetId", petId);
                AWSXRayRecorder.Instance.AddAnnotation("PetType", pettype);

                _sqlConnection.ConnectionString = await GetConnectionString();

                var sqlCommandText = $"INSERT INTO [dbo].[transactions] ([PetId], [Transaction_Id], [Adoption_Date]) VALUES ('{petId}', '{Guid.NewGuid().ToString()}', '{DateTime.Now.ToString()}')";

                AWSXRayRecorder.Instance.AddMetadata("Query", sqlCommandText);

                using (_sqlConnection)
                {
                    using var command = new TraceableSqlCommand(sqlCommandText, _sqlConnection);
                    command.Connection.Open();
                    command.ExecuteNonQuery();
                }
            }
            catch (Exception e)
            {
                return(e.Message);
            }

            AWSXRayRecorder.Instance.TraceMethod("UpdateAvailability", () => UpdateAvailability(petId, pettype));

            return("Success");
        }
コード例 #2
0
        public async Task <IEnumerable <AdoptionItem> > Get()
        {
            List <AdoptionItem> adoptionItems = new List <AdoptionItem>();

            try
            {
                AWSXRayRecorder.Instance.BeginSubsegment("Fetching adoption list");

                _sqlConnection.ConnectionString = await GetConnectionString();

                var sqlCommandText = $"SELECT TOP 25 * FROM [dbo].[transactions]";

                Console.WriteLine(
                    $"[{AWSXRayRecorder.Instance.TraceContext.GetEntity().RootSegment.TraceId}] - Fetching transaction data from RDS. {sqlCommandText}");

                AWSXRayRecorder.Instance.AddMetadata("Query", sqlCommandText);
                using (_sqlConnection)
                {
                    var command = new TraceableSqlCommand(sqlCommandText, _sqlConnection);

                    command.Connection.Open();

                    using (SqlDataReader reader = await command.ExecuteReaderAsync())
                    {
                        while (await reader.ReadAsync())
                        {
                            var petItem =
                                await httpClient.GetStringAsync(
                                    $"{_configuration["searchapiurl"]}&petid={reader.GetValue(1)}");

                            var adoptionItem = JsonSerializer.Deserialize <List <AdoptionItem> >(petItem).FirstOrDefault();

                            if (adoptionItem != null)
                            {
                                adoptionItem.transactionid = reader.GetValue(3).ToString();
                                adoptionItem.adoptiondate  = reader.GetValue(2).ToString();
                            }

                            adoptionItems.Add(adoptionItem);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine($"EXCEPTION - {e.Message}");
                AWSXRayRecorder.Instance.AddException(e);
            }
            finally
            {
                AWSXRayRecorder.Instance.EndSubsegment();
            }

            return(adoptionItems);
        }
コード例 #3
0
        private void QuerySql(int id)
        {
            var connectionString = ConfigurationManager.AppSettings["RDS_CONNECTION_STRING"];

            using (var sqlConnection = new SqlConnection(connectionString))
                using (var sqlCommand = new TraceableSqlCommand("SELECT " + id, sqlConnection))
                {
                    sqlCommand.Connection.Open();
                    sqlCommand.ExecuteNonQuery();
                }
        }
コード例 #4
0
        private void QuerySql(int id)
        {
            var connectionString = ""; // Configure Connection string -> Format : "Data Source=(RDS endpoint),(port number);User ID=(your user name);Password=(your password);"

            using (var sqlConnection = new SqlConnection(connectionString))
                using (var sqlCommand = new TraceableSqlCommand("SELECT " + id, sqlConnection))
                {
                    sqlCommand.Connection.Open();
                    sqlCommand.ExecuteNonQuery();
                }
        }
コード例 #5
0
        public DataTable GetDataTable(string commandText)
        {
            using (var conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                var command = new TraceableSqlCommand(commandText, conn, true);
                command.CommandType = CommandType.Text;
                var sqlReader = command.ExecuteReader();
                var dataTable = new DataTable();
                dataTable.Load(sqlReader);

                return(dataTable);
            }
        }
コード例 #6
0
        public async Task CleanupAdoptions()
        {
            _sqlConnection.ConnectionString = await GetConnectionString();

            var sqlCommandText = $"DELETE FROM [dbo].[transactions]";

            AWSXRayRecorder.Instance.AddMetadata("Query", sqlCommandText);

            using (_sqlConnection)
            {
                using var command = new TraceableSqlCommand(sqlCommandText, _sqlConnection);
                command.Connection.Open();
                command.ExecuteNonQuery();
            }
        }
コード例 #7
0
        public void CleanupAdoptions()
        {
            _sqlConnection.ConnectionString = _configuration["rdsconnectionstring"];

            var sqlCommandText = $"DELETE FROM [dbo].[transactions]";

            AWSXRayRecorder.Instance.AddMetadata("Query", sqlCommandText);

            using (_sqlConnection)
            {
                using var command = new TraceableSqlCommand(sqlCommandText, _sqlConnection);
                command.Connection.Open();
                command.ExecuteNonQuery();
            }
        }