public async Task <MarkerModel?> GetMarkerModel(string markerId)
        {
            LoggingService.Trace("Querying MarkersDatabase.GetMarkerModel");

            if (string.IsNullOrEmpty(markerId))
            {
                return(null);
            }

            var databaseConnection = await GetDatabaseConnection <MarkerDatabaseModel>().ConfigureAwait(false);

            var dbLock = databaseConnection.GetConnection().Lock();

            try
            {
                var markerDatabaseModel = databaseConnection.GetConnection().Get <MarkerDatabaseModel>(markerId);

                return(markerDatabaseModel != null?
                       MarkerDatabaseModel.ToMarkerModel(markerDatabaseModel) :
                           new MarkerModel());
            }
            catch (Exception e)
            {
                LoggingService.Error(e, "Error Querying MarkersDatabase.GetMarkerModel");

                return(null);
            }
            finally
            {
                dbLock.Dispose();
            }
        }
        public async Task <int> SaveMarkerModel(MarkerModel markerModel, string operationId)
        {
            LoggingService.Trace("Querying MarkersDatabase.SaveMarkerModel");

            var databaseConnection = await GetDatabaseConnection <MarkerDatabaseModel>().ConfigureAwait(false);

            var dbLock = databaseConnection.GetConnection().Lock();

            try
            {
                var markerDatabaseModel = MarkerDatabaseModel.ToMarkerDatabaseModel(markerModel);
                markerDatabaseModel.OpId = operationId;

                databaseConnection.GetConnection().InsertOrReplaceWithChildren(markerDatabaseModel);

                return(0);
            }
            catch (Exception e)
            {
                LoggingService.Error(e, "Error Querying MarkersDatabase.SaveMarkerModel");

                return(1);
            }
            finally
            {
                dbLock.Dispose();
            }
        }
 public static MarkerModel ToMarkerModel(MarkerDatabaseModel markerDatabaseModel)
 {
     return(new MarkerModel()
     {
         Id = markerDatabaseModel.Id,
         PortalId = markerDatabaseModel.PortalId,
         Type = markerDatabaseModel.Type,
         Comment = markerDatabaseModel.Comment,
         AssignedTo = markerDatabaseModel.AssignedTo,
         AssignedTeam = markerDatabaseModel.AssignedTeam,
         AssignedNickname = markerDatabaseModel.AssignedNickname,
         CompletedBy = markerDatabaseModel.CompletedBy,
         CompletedId = markerDatabaseModel.CompletedId,
         State = markerDatabaseModel.State,
         Order = markerDatabaseModel.Order,
         Zone = markerDatabaseModel.Zone
     });
 }