public void CreateRegistry(Registry registry)
 {
   //  _magDb.Registries.      //Add(registry);
     try
     {
         //using (_magDb)
         //{
          var   _magDb = new MagLink_engineEntities();
             _magDb.Entry(registry).State = registry.ID == 0 ? EntityState.Added : EntityState.Modified;
             _magDb.SaveChanges();
            // _magDb.Dispose();
         //}
     }
     catch (Exception ex)
     {
         ErrorHandler._ErrorHandler.LogError(ex, "Error saving changes to registry");
     }
     
 }
        public void CreateAckRecord(String m)
        {
            //  _magDb.Registries.      //Add(registry);
            try
            {
                var message = new Message(m);

                AckMessRecieved ackMess = new AckMessRecieved();
                ackMess.Message = m;
                ackMess.MessageID = message.getElement("MSH", 9);
                ackMess.SentDateTime = System.DateTime.Now;
                var _magDb = new MagLink_engineEntities();
                _magDb.Entry(ackMess).State = ackMess.ID == 0 ? EntityState.Added : EntityState.Modified;
                _magDb.SaveChanges();
            }
            catch (Exception ex)
            {
                ErrorHandler._ErrorHandler.LogError(ex, "Error saving changes to ackMessages Received");
            }

        }
     public void SaveChangesMhistory(Message_History mhistory)
 {
        try
         {
             //using (_magDb)
             //{
               var  _magDb = new MagLink_engineEntities();
                 //_magDb.Message_History.Attach(mhistory);
             _magDb.Entry(mhistory).State = mhistory.mhistID == 0 ? EntityState.Added : EntityState.Modified;
                 _magDb.SaveChanges();
                 //_magDb.Dispose();
             //}
         }
         catch (Exception ex)
         {
             ErrorHandler._ErrorHandler.LogError(ex, "Error saving changes to queue call");
         }
     }
        public void ProcessQueue(String messageID)
        {
            try
            {
                var _magDb = new MagLink_engineEntities();
                Queue queue = _magDb.Queues.FirstOrDefault(q => q.MessageID.ToUpper().Trim() == messageID.ToUpper().Trim() && (q.Garbage == false || q.Garbage == null));
                if (queue != null)
                {
                    //using (_magDb)
                    //{
                    
                     
                        queue.Sent = true;
                        queue.Garbage = true;
                        _magDb.Entry(queue).State = queue.ID == 0 ? EntityState.Added : EntityState.Modified;
                    try
                    {
                        _magDb.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        ErrorHandler._ErrorHandler.LogError(ex, "Error saving data in the queue table");
                        
                    }

                }

                //AckMessRecieved ackMess =
                //          _magDb.AckMessRecieveds.FirstOrDefault(
                //              a => a.MessageID.Trim().ToUpper() == messageID.Trim().ToUpper());

                //if (ackMess != null)
                //{


                //}
            
            }
            catch (Exception ex)
            {
                    
                ErrorHandler._ErrorHandler.LogError(ex, "Error updating the queue table record after ack");
            }
            

        }
 public void SaveChangesQueue(Queue queue)
 {
     try
     {
         //using (_magDb)
         //{
           var   _magDb = new MagLink_engineEntities();
             //_magDb.Queues.Attach(queue);
             _magDb.Entry(queue).State = queue.ID == 0 ? EntityState.Added : EntityState.Modified;
             _magDb.SaveChanges();
            // _magDb.Dispose();
         //}
     }
     catch (Exception ex)
     {
         ErrorHandler._ErrorHandler.LogError(ex, "Error saving changes to queue call");
     }
 }