public async Task <IActionResult> AddLocation([FromBody] GroupMemberLocationVM groupMemberLocationVM)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            await _dbRepository.InsertOrUpdateLocation(groupMemberLocationVM);

            return(Ok());
        }
Beispiel #2
0
        public async Task InsertOrUpdateLocation(GroupMemberLocationVM groupMemberLocation)
        {
            var locationId = await GetMemberLocationId(groupMemberLocation.MemberId, groupMemberLocation.GroupUid);

            if (!locationId.HasValue)
            {
                await InsertMemberLocation(groupMemberLocation);
            }
            else
            {
                await UpdateLocation(locationId.Value, groupMemberLocation.Coordinate);
            }
        }
Beispiel #3
0
        public async Task InsertMemberLocation(GroupMemberLocationVM groupMemberLocation)
        {
            var sqlCommand = new CommandDefinition(@"
                insert [dbo].[MemberLocations] (MemberId, GroupUid, Latitude, Longitude)
                values (@memberId, @groupUid, @latitude, @longitude)",
                                                   new
            {
                @memberId  = groupMemberLocation.MemberId,
                @groupUid  = groupMemberLocation.GroupUid,
                @latitude  = groupMemberLocation.Coordinate.Latitude,
                @longitude = groupMemberLocation.Coordinate.Longitude
            });

            using (var conn = CreateConnection())
                await conn.ExecuteAsync(sqlCommand);
        }
Beispiel #4
0
        public async Task UpdateLocation(GroupMemberLocationVM groupMemberLocation)
        {
            var sqlCommand = new CommandDefinition(@"
                update [dbo].[MemberLocations]
                set 
                    Latitude = @latitude, 
                    Longitude = @longitude
                where MemberId = @memberId and GroupUid = @groupUid",
                                                   new
            {
                @memberId  = groupMemberLocation.MemberId,
                @groupUid  = groupMemberLocation.GroupUid,
                @latitude  = groupMemberLocation.Coordinate.Latitude,
                @longitude = groupMemberLocation.Coordinate.Longitude
            });

            using (var conn = CreateConnection())
                await conn.ExecuteAsync(sqlCommand);
        }