public async Task <int> UpdateAsync(int userId, int id, BusinessContactRecord record) { var sql = @" UPDATE [dbo].[Records] SET [Name] = @Name ,[Email] = @Email ,[AddressLine1] = @Line1 ,[AddressLine2] = @Line2 ,[AddressCity] = @City ,[AddressStateOrProvince] = @StateOrProvince ,[AddressPostalCode] = @PostalCode WHERE UserId = @userId AND Id = @id "; var rowsUpdated = await connection.ExecuteAsync(sql, new { userId, id, record.Name, record.Email, record.Address.Line1, record.Address.Line2, record.Address.City, record.Address.StateOrProvince, record.Address.PostalCode }); return(rowsUpdated); }
public async Task <ActionResult> Post(int userId, [FromBody] BusinessContactRecord record) { var id = await recordRepository.InsertAsync(userId, record); record.Id = id; record.UserId = userId; return(CreatedAtRoute(nameof(GetById), new { userId, id }, record)); }
public async Task <ActionResult> Put(int userId, int id, [FromBody] BusinessContactRecord record) { var rowsUpdatd = await recordRepository.UpdateAsync(userId, id, record); if (rowsUpdatd == 0) { // Cannot use PUT to create rows, use POST instead return(BadRequest()); } else { return(NoContent()); } }
public async Task <ActionResult> GenerateFakeData([FromServices] UserRepository userRepository, int userId) { var username = "******" + userId.ToString(); await userRepository.ForceInsertAsync(new User() { Username = username, Id = userId }); var rand = new Random(); var cities = new List <string> { "Newberg", "Hillsdale", "Portland", "Lincoln City" }; var states = new List <string> { "OR", "NE", "CA", "NY" }; var streets = new List <string> { "Aquarius", "Elm", "Division", "Main" }; for (int i = 0; i < 1000; i++) { var record = new BusinessContactRecord() { UserId = userId, Name = "Customer " + rand.Next(), Email = $"Test-{rand.Next()}@example.com", Address = new BusinessContactAddress() { Line1 = $"{rand.Next(1000, 9999)} {streets[rand.Next(streets.Count)]} street", Line2 = "", City = cities[rand.Next(cities.Count)], StateOrProvince = states[rand.Next(states.Count)], PostalCode = rand.Next(10000, 99999).ToString() } }; await recordRepository.InsertAsync(userId, record); } return(Ok()); }
public async Task <int> InsertAsync(int userId, BusinessContactRecord record) { var sql = @" INSERT INTO [dbo].[Records] ([UserId] ,[Name] ,[Email] ,[AddressLine1] ,[AddressLine2] ,[AddressCity] ,[AddressStateOrProvince] ,[AddressPostalCode]) OUTPUT INSERTED.Id VALUES ( @userId ,@Name ,@Email ,@Line1 ,@Line2 ,@City ,@StateOrProvince ,@PostalCode ); "; var id = await connection.QuerySingleAsync <int>(sql, new { userId, record.Name, record.Email, record.Address.Line1, record.Address.Line2, record.Address.City, record.Address.StateOrProvince, record.Address.PostalCode }); return(id); }