public async Task <LinkModel?> GetLinkModel(string linkId)
        {
            LoggingService.Trace("Querying LinksDatabase.GetLinkModel");

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

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

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

            try
            {
                var linkDatabaseModel = databaseConnection.GetConnection().Get <LinkDatabaseModel>(linkId);

                return(linkDatabaseModel != null?
                       LinkDatabaseModel.ToLinkModel(linkDatabaseModel) :
                           new LinkModel());
            }
            catch (Exception e)
            {
                LoggingService.Error(e, "Error Querying LinksDatabase.GetLinkModel");

                return(null);
            }
            finally
            {
                dbLock.Dispose();
            }
        }
        public async Task <int> SaveLinkModel(LinkModel linkModel, string operationId)
        {
            LoggingService.Trace("Querying LinksDatabase.SaveLinkModel");

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

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

            try
            {
                var linkDatabaseModel = LinkDatabaseModel.ToLinkDatabaseModel(linkModel);
                linkDatabaseModel.OpId = operationId;

                databaseConnection.GetConnection().InsertOrReplaceWithChildren(linkDatabaseModel);

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

                return(1);
            }
            finally
            {
                dbLock.Dispose();
            }
        }
 public static LinkModel ToLinkModel(LinkDatabaseModel linkDatabaseModel)
 {
     return(new LinkModel
     {
         Id = linkDatabaseModel.Id,
         FromPortalId = linkDatabaseModel.FromPortalId,
         ToPortalId = linkDatabaseModel.ToPortalId,
         Description = linkDatabaseModel.Description,
         AssignedTo = linkDatabaseModel.AssignedTo,
         AssignedToNickname = linkDatabaseModel.AssignedToNickname,
         ThrowOrderPos = linkDatabaseModel.ThrowOrderPos,
         Completed = linkDatabaseModel.Completed,
         Color = linkDatabaseModel.Color,
         Zone = linkDatabaseModel.Zone
     });
 }