private async Task <AdoPatient> FindBySsnAsync(string plainTextSsn) { var patient = new AdoPatient(); try { using (SqlConnection connection = new SqlConnection(GetConnectionString())) using (SqlCommand cmd = connection.CreateCommand()) { await connection.OpenAsync(); cmd.CommandText = @" SELECT [Id] , [FirstName] , [LastName] , [Ssn] , [BirthDate] , [Created] , [LastModified] FROM [dbo].[AdoPatients] WHERE [Ssn]=@Ssn "; var sqlParameterSsn = cmd.CreateParameter(); sqlParameterSsn.ParameterName = @"@Ssn"; sqlParameterSsn.DbType = DbType.AnsiStringFixedLength; sqlParameterSsn.Direction = ParameterDirection.Input; sqlParameterSsn.Value = plainTextSsn; sqlParameterSsn.Size = 11; cmd.Parameters.Add(sqlParameterSsn); using (SqlDataReader sqlDataReader = cmd.ExecuteReader()) { if (!sqlDataReader.HasRows) { return(null); } while (sqlDataReader.Read()) { patient = new AdoPatient { Id = Convert.ToInt32(sqlDataReader["Id"]), Ssn = sqlDataReader["Ssn"].ToString(), FirstName = sqlDataReader["FirstName"].ToString(), LastName = sqlDataReader["LastName"].ToString(), BirthDate = (DateTime)sqlDataReader["BirthDate"], Created = (DateTime)sqlDataReader["Created"], LastModified = (DateTime)sqlDataReader["LastModified"], }; } } } } catch (Exception ex) { Logger.LogError($"Read/Find operation error: {ex}"); } return(patient); }
private async Task <AdoPatient> UpdateAsync(AdoPatient entity) { try { var query = $@" UPDATE [dbo].[AdoPatients] SET [FirstName]=@FirstName , [LastName]=@LastName , [Ssn]=@Ssn , [BirthDate]=@BirthDate , [LastModified]=@LastModified WHERE [Id]=@Id "; using (var sqlConnection = new SqlConnection(GetConnectionString())) using (var sqlCommand = new SqlCommand(query, sqlConnection)) { sqlCommand.Parameters.AddWithValue("@FirstName", entity.FirstName); sqlCommand.Parameters.AddWithValue("@LastName", entity.LastName); var sqlParameterSsn = sqlCommand.CreateParameter(); sqlParameterSsn.ParameterName = @"@Ssn"; sqlParameterSsn.DbType = DbType.AnsiStringFixedLength; sqlParameterSsn.Direction = ParameterDirection.Input; sqlParameterSsn.Value = entity.Ssn; sqlParameterSsn.Size = 11; sqlCommand.Parameters.Add(sqlParameterSsn); var sqlParameterBirthdate = sqlCommand.CreateParameter(); sqlParameterBirthdate.ParameterName = @"@BirthDate"; sqlParameterBirthdate.SqlDbType = SqlDbType.Date; sqlParameterBirthdate.Direction = ParameterDirection.Input; sqlParameterBirthdate.Value = entity.BirthDate; sqlCommand.Parameters.Add(sqlParameterBirthdate); sqlCommand.Parameters.AddWithValue("@LastModified", DateTime.UtcNow); sqlCommand.Parameters.AddWithValue("@Id", entity.Id); await sqlConnection.OpenAsync(); await sqlCommand.ExecuteNonQueryAsync(); } } catch (Exception ex) { Logger.LogError($"Update operation error: {ex}"); } var updatedPatient = await FindBySsnAsync(entity.Ssn); return(updatedPatient); }
private async Task CreateAsync(AdoPatient entity) { try { using (var sqlConnection = new SqlConnection(GetConnectionString())) using (var sqlCommand = sqlConnection.CreateCommand()) { await sqlConnection.OpenAsync(); sqlCommand.CommandText = @" INSERT INTO [dbo].[AdoPatients] ( [Ssn] , [FirstName] , [LastName] , [BirthDate] , [Created] , [LastModified] ) VALUES ( @SSN , @FirstName , @LastName , @BirthDate , @CreatedDate , @LastModifiedDate ); "; var sqlParameterSsn = sqlCommand.CreateParameter(); sqlParameterSsn.ParameterName = @"@SSN"; sqlParameterSsn.DbType = DbType.AnsiStringFixedLength; sqlParameterSsn.Direction = ParameterDirection.Input; sqlParameterSsn.Value = entity.Ssn; sqlParameterSsn.Size = 11; sqlCommand.Parameters.Add(sqlParameterSsn); var sqlParameterFirstName = sqlCommand.CreateParameter(); sqlParameterFirstName.ParameterName = @"@FirstName"; sqlParameterFirstName.DbType = DbType.String; sqlParameterFirstName.Direction = ParameterDirection.Input; sqlParameterFirstName.Value = entity.FirstName; sqlParameterFirstName.Size = 50; sqlCommand.Parameters.Add(sqlParameterFirstName); var sqlParameterLastName = sqlCommand.CreateParameter(); sqlParameterLastName.ParameterName = @"@LastName"; sqlParameterLastName.DbType = DbType.String; sqlParameterLastName.Direction = ParameterDirection.Input; sqlParameterLastName.Value = entity.LastName; sqlParameterLastName.Size = 50; sqlCommand.Parameters.Add(sqlParameterLastName); var sqlParameterBirthdate = sqlCommand.CreateParameter(); sqlParameterBirthdate.ParameterName = @"@BirthDate"; sqlParameterBirthdate.SqlDbType = SqlDbType.Date; sqlParameterBirthdate.Direction = ParameterDirection.Input; sqlParameterBirthdate.Value = entity.BirthDate; sqlCommand.Parameters.Add(sqlParameterBirthdate); var sqlParameterCreated = sqlCommand.CreateParameter(); sqlParameterCreated.ParameterName = @"@CreatedDate"; sqlParameterCreated.SqlDbType = SqlDbType.DateTime; sqlParameterCreated.Direction = ParameterDirection.Input; sqlParameterCreated.Value = entity.BirthDate; sqlCommand.Parameters.Add(sqlParameterCreated); var sqlParameterLastModified = sqlCommand.CreateParameter(); sqlParameterLastModified.ParameterName = @"@LastModifiedDate"; sqlParameterLastModified.SqlDbType = SqlDbType.DateTime; sqlParameterLastModified.Direction = ParameterDirection.Input; sqlParameterLastModified.Value = entity.LastModified; sqlCommand.Parameters.Add(sqlParameterLastModified); await sqlCommand.ExecuteNonQueryAsync(); } } catch (Exception ex) { Logger.LogError($"Create operation error: {ex}"); } }