示例#1
0
        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);
        }
示例#2
0
        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));
        }
示例#3
0
        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());
            }
        }
示例#4
0
        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());
        }
示例#5
0
        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);
        }