ソースを参照

DB Context 분할 Test

DESKTOP-Kang 6 年 前
コミット
40ebb88812

+ 1 - 1
Dev/OHV/OHV.Module.Interactivity/PopUp/ConfigViewModel.cs

@@ -76,7 +76,7 @@ namespace OHV.Module.Interactivity.PopUp
 
         public void OnDialogOpened(IDialogParameters parameters)
         {
-            this.ConfigListProperty = sql.ConfigDal.All;
+            this.ConfigListProperty = sql.ConfigDal.GetAll().ToList();
         }
 
         private void CloseDialog(string parameter)

+ 4 - 1
Dev/OHV/OHV.Module.Interactivity/PopUp/DriveServoViewModel.cs

@@ -1,4 +1,5 @@
 using GSG.NET.Extensions;
+using GSG.NET.Utils;
 using OHV.Common.Events;
 using OHV.Common.Model;
 using OHV.Common.Shareds;
@@ -564,7 +565,9 @@ namespace OHV.Module.Interactivity.PopUp
                 var vcsMsg = new VCSMessageEventArgs() { Kind = VCSMessageEventArgs.eVCSMessageKind.ReqRouteManager };
                 this.eventAggregator.GetEvent<VCSMessagePubSubEvent>().Publish( vcsMsg );
 
-                this.RouteList = new ObservableCollection<Route>( sql.RouteDal.All );
+                var sT = SwUtils.CurrentTimeMillis;
+                this.RouteList = new ObservableCollection<Route>( sql.RouteDal.GetAll() );
+                Console.WriteLine( SwUtils.Elapsed( sT ) );
             } );
 
             await task;

+ 6 - 6
Dev/OHV/OHV.Module.Interactivity/PopUp/LockServoViewModel.cs

@@ -253,11 +253,11 @@ namespace OHV.Module.Interactivity.PopUp
             this.LeftAxisBrush = Brushes.Orange;
 
             List<AxisPositionData> positionList = null;
-            positionList = sql.AxisPositionDataDAL.GetKFromPostion( ConstString.TEACH_POSITION_LOCK );
+            positionList = sql.AxisPositionDataDAL.Get( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).ToList();
             this.TargetPosLockLeft = positionList.Where( x => x.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) ).Single().Value;
 
             //초기 Pos 선택
-            positionList = sql.AxisPositionDataDAL.GetKFromPostion( ConstString.TEACH_POSITION_LOCK );
+            positionList = sql.AxisPositionDataDAL.Get( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).ToList();
             this.TargetPosLockRight = positionList.Where( x => x.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_RIGHT ) ).Single().Value;
 
             this.SelectedPosition = ConstString.TEACH_POSITION_LOCK;
@@ -306,10 +306,10 @@ namespace OHV.Module.Interactivity.PopUp
                     switch ( this.SelectedPosition )
                     {
                         case ConstString.TEACH_POSITION_LOCK:
-                            dataList = sql.AxisPositionDataDAL.GetKFromPostion( ConstString.TEACH_POSITION_LOCK );
+                            dataList = sql.AxisPositionDataDAL.Get( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).ToList();
                             break;
                         case ConstString.TEACH_POSITION_UNLOCK:
-                            dataList = sql.AxisPositionDataDAL.GetKFromPostion( ConstString.TEACH_POSITION_UNLOCK );
+                            dataList = sql.AxisPositionDataDAL.Get( x => x.Name.Equals( ConstString.TEACH_POSITION_UNLOCK ) ).ToList();
                             break;
                     }
 
@@ -599,10 +599,10 @@ namespace OHV.Module.Interactivity.PopUp
             switch ( this.SelectedPosition )
             {
                 case ConstString.TEACH_POSITION_LOCK:
-                    positionList = sql.AxisPositionDataDAL.GetKFromPostion( ConstString.TEACH_POSITION_LOCK );
+                    positionList = sql.AxisPositionDataDAL.Get( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).ToList();
                     break;
                 case ConstString.TEACH_POSITION_UNLOCK:
-                    positionList = sql.AxisPositionDataDAL.GetKFromPostion( ConstString.TEACH_POSITION_UNLOCK );
+                    positionList = sql.AxisPositionDataDAL.Get( x => x.Name.Equals( ConstString.TEACH_POSITION_UNLOCK ) ).ToList();
                     break;
             }
             var sqlAxisLeft = positionList.Where( x => x.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) ).Single();

+ 2 - 2
Dev/OHV/OHV.Module.ListViews/SubViews/VehicleCommandInsertViewModel.cs

@@ -50,7 +50,7 @@ namespace OHV.Module.ListViews.SubViews
             this.eventAggregator = ea;
             this.sql = sql;
 
-            this.TargetIDList = sql.RouteDal.All.Select(x => x.Name).ToList();
+            this.TargetIDList = sql.RouteDal.GetAll().Select(x => x.Name).ToList();
             this.TargetIDList.Add("None");
 
             this.SaveCommand = new DelegateCommand(ExecuteSaveCommand);
@@ -66,7 +66,7 @@ namespace OHV.Module.ListViews.SubViews
         private void ExecuteSaveCommand()
         {
             Command cmd = new Command() { TargetID = TargetID, Type = SelectedCommandType };
-            sql.CommandDAL.Add(cmd);
+            sql.CommandDAL.Insert(cmd);
         }
 
     }

+ 3 - 3
Dev/OHV/OHV.Module.ListViews/Views/CommandListViewModel.cs

@@ -68,9 +68,9 @@ namespace OHV.Module.ListViews.Views
             this.eventAggregator = ea;
             this.messageController = msgController;
             this.sql = sql;
-            this.sql.CommandDAL.ChangedProperty += this.RefreshCommandLIst;
+            this.sql.CommandDAL.OnChangeTable += this.RefreshCommandLIst;
 
-            this.CommandList = new ObservableCollection<Command>(sql.CommandDAL.All);
+            this.CommandList = new ObservableCollection<Command>(sql.CommandDAL.GetAll());
 
             //this.TargetIDList = sql.RouteDal.All.Select(x => x.Name).ToList();
             this.TargetIDList = vCSystem.RouteManager.Equipments.Select( e => e.Name ).ToList();
@@ -137,7 +137,7 @@ namespace OHV.Module.ListViews.Views
             Application.Current.Dispatcher.Invoke(() =>
             {
                 this.CommandList.Clear();
-                this.CommandList.AddRange(sql.CommandDAL.All);
+                this.CommandList.AddRange(sql.CommandDAL.GetAll());
             });
         }
 

+ 4 - 4
Dev/OHV/OHV.Module.ListViews/Views/SubCommandListViewModel.cs

@@ -59,14 +59,14 @@ namespace OHV.Module.ListViews.Views
         {
             this.eventAggregator = ea;
             this.sql = sql;
-            this.sql.SubCmdDAL.ChangedProperty += SubCmdDAL_ChangedProperty;
+            this.sql.SubCmdDAL.OnChangeTable += SubCmdDAL_ChangedProperty;
 
-            this.SubCmdList = new ObservableCollection<SubCmd>(sql.SubCmdDAL.All);
+            this.SubCmdList = new ObservableCollection<SubCmd>(sql.SubCmdDAL.GetAll());
 
             this.DeleteCommand = new DelegateCommand(ExecuteDeleteCommand);
             this.AddCommand = new DelegateCommand( ExecuteAddCommand );
 
-            this.TargetIDList = sql.RouteDal.All.Select( x => x.Name ).ToList();
+            this.TargetIDList = sql.RouteDal.GetAll().Select( x => x.Name ).ToList();
             this.TargetIDList.Add( "None" );
 
             this.eventAggregator.GetEvent<VehicleSubCmdListChanged>().Unsubscribe(UICallbackCommunication);
@@ -125,7 +125,7 @@ namespace OHV.Module.ListViews.Views
             Application.Current.Dispatcher.Invoke(() =>
             {
                 this.SubCmdList.Clear();
-                this.SubCmdList.AddRange(sql.SubCmdDAL.All);
+                this.SubCmdList.AddRange(sql.SubCmdDAL.GetAll());
             });
         }
     }

+ 3 - 3
Dev/OHV/OHV.Module.MainViews/Views/HistoryViewModel.cs

@@ -30,13 +30,13 @@ namespace OHV.Module.MainViews.Views
             this.sql = _sql;
             this.AlarmResetCommand = new DelegateCommand( ExecuteAlarmResetCommand );
 
-            var ll = sql.HisAlarmDAL.All;
+            var ll = sql.HisAlarmDAL.GetAll();
             if ( ll == null )
                 this.AlarmList = new List<HisAlarm>();
             else
                 this.AlarmList = ll.OrderByDescending( x => x.OccurTime ).ToList();
 
-            this.sql.HisAlarmDAL.ChangedProperty += HisAlarmDAL_ChangedProperty;
+            //this.sql.HisAlarmDAL.ChangedProperty += HisAlarmDAL_ChangedProperty;
         }
 
         private void HisAlarmDAL_ChangedProperty()
@@ -48,7 +48,7 @@ namespace OHV.Module.MainViews.Views
             this.AlarmList.Clear();
             this.AlarmList = null;
 
-            this.AlarmList = sql.HisAlarmDAL.All.OrderByDescending( x => x.OccurTime ).ToList();
+            this.AlarmList = sql.HisAlarmDAL.GetAll().OrderByDescending( x => x.OccurTime ).ToList();
         }
 
         async private void ExecuteAlarmResetCommand( )

+ 1 - 1
Dev/OHV/OHV.Module.Status/VehicleStatusViewModel.cs

@@ -91,7 +91,7 @@ namespace OHV.Module.Status
 
             this.sqliteManager = sql;
 
-            this.VehicleCurrentTag = sql.VehicleInfoDAL.GetInfo().CurrentTag;
+            this.VehicleCurrentTag = sql.VehicleInfoDAL.GetAll().FirstOrDefault().CurrentTag;
         }
 
         private void DriveUICallBackCommunication( DriveControlEventArgs obj )

+ 60 - 0
Dev/OHV/OHV.SqliteDAL/DAL/AbstractDAL.cs

@@ -132,10 +132,46 @@ namespace OHV.SqliteDAL.DAL
         private OHVDbContext _context = null;
         private DbSet<T> table = null;
 
+        public event Action OnChangeTable;
+
+        public int Count { get => GetAll().Count(); }
+
+        public GenericRepository()
+        {
+            this._context = new OHVDbContext( "OHVDb" );
+            this.table = this._context.Set<T>();
+        }
+
+        public GenericRepository(OHVDbContext dbContext )
+        {
+            this._context = dbContext;
+            this.table = _context.Set<T>();
+        }
+
         public IEnumerable<T> GetAll()
         {
             return table.ToList();
         }
+
+        public virtual IEnumerable<T> Get( Expression<Func<T, bool>> filter = null, Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null, string includeProperties = "" )
+        {
+            IQueryable<T> query = this.table;
+
+            if ( filter != null )
+                query = query.Where( filter );
+
+            if ( includeProperties != null )
+            {
+                foreach ( var includeProperty in includeProperties.Split( new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries ) )
+                    query = query.Include( includeProperty );
+            }
+
+            if ( orderBy != null )
+                return orderBy( query ).ToList();
+            else
+                return query.ToList();
+        }
+
         public T GetById(object id)
         {
             return table.Find(id);
@@ -143,30 +179,54 @@ namespace OHV.SqliteDAL.DAL
         public void Insert(T obj)
         {
             table.Add(obj);
+            this.Save();
         }
         public void Update(T obj)
         {
             table.Attach(obj);
             _context.Entry(obj).State = EntityState.Modified;
+            this.Save();
         }
         public void Delete(object id)
         {
             T existing = table.Find(id);
             table.Remove(existing);
+            this.Save();
+        }
+        public void Delete( Expression<Func<T, bool>> filter )
+        {
+            var delList = this.table.Where( filter ).ToList();
+            if ( delList.Count > 0 )
+            {
+                this.table.RemoveRange( delList );
+                Save();
+            }
+        }
+
+        public void Clean()
+        {
+            table.RemoveRange( table);
+            this.Save();
         }
         public void Save()
         {
             _context.SaveChanges();
+            this.OnChangeTable?.BeginInvoke(null, null);
         }
     }
 
     public interface IGenericRepository<T> where T : class
     {
+        event Action OnChangeTable;
+        int Count { get; }
         IEnumerable<T> GetAll();
+        IEnumerable<T> Get( Expression<Func<T, bool>> filter = null, Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null, string includeProperties = "" );
         T GetById(object id);
         void Insert(T obj);
         void Update(T obj);
         void Delete(object id);
+        void Delete( Expression<Func<T, bool>> filter = null );
+        void Clean();
         void Save();
     }
 }

+ 0 - 13
Dev/OHV/OHV.SqliteDAL/DAL/AlarmDAL.cs

@@ -1,13 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using OHV.Common.Model;
-
-namespace OHV.SqliteDAL.DAL
-{
-    public class AlarmDAL : GenericDAL<Alarm>
-    {
-    }
-}

+ 0 - 1
Dev/OHV/OHV.SqliteDAL/OHV.SqliteDAL.csproj

@@ -95,7 +95,6 @@
   <ItemGroup>
     <Compile Include="CustomHistory.cs" />
     <Compile Include="DAL\AbstractDAL.cs" />
-    <Compile Include="DAL\AlarmDAL.cs" />
     <Compile Include="DAL\AxisConfigDAL.cs" />
     <Compile Include="DAL\AxisPositionDataDAL.cs" />
     <Compile Include="DAL\AxisVelocityDataDAL.cs" />

+ 23 - 21
Dev/OHV/OHV.SqliteDAL/SqliteManager.cs

@@ -4,6 +4,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using OHV.Common.Interfaces;
+using OHV.Common.Model;
 using OHV.SqliteDAL.DAL;
 using Prism.Ioc;
 using Prism.Modularity;
@@ -13,30 +14,31 @@ namespace OHV.SqliteDAL
     [Module(ModuleName = "SqliteManager")]
     public class SqliteManager : ISqlManager, IModule
     {
-        public ConfigDAL ConfigDal { get; set; }
-        public RouteDAL RouteDal { get; set; }
-        public CommandDAL CommandDAL { get; set; }
-        public SubCmdDAL SubCmdDAL { get; set; }
-        public AxisConfigDAL AxisConfigDAL { get; set; }
-        public AxisPositionDataDAL AxisPositionDataDAL { get; set; }
-        public AxisVelocityDataDAL AxisVelocityDataDAL { get; set; }
-        public AlarmDAL AlarmDAL { get; set; }
-        public HisAlarmDAL HisAlarmDAL { get; set; }
-        public VehicleInfoDAL VehicleInfoDAL { get; set; }
+        public IGenericRepository<Config> ConfigDal { get; set; }
+        //public RouteDAL RouteDal { get; set; }
+        public IGenericRepository<Command> CommandDAL { get; set; }
+        public IGenericRepository<SubCmd> SubCmdDAL { get; set; }
+        public IGenericRepository<AxisConfig> AxisConfigDAL { get; set; }
+        public IGenericRepository<AxisPositionData> AxisPositionDataDAL { get; set; }
+        public IGenericRepository<AxisVelocityData> AxisVelocityDataDAL { get; set; }
+        public IGenericRepository<Alarm> AlarmDAL { get; set; }
+        public IGenericRepository<VehicleInfo> VehicleInfoDAL { get; set; }
+        public IGenericRepository<HisAlarm> HisAlarmDAL { get; set; }
+        public IGenericRepository<Route> RouteDal { get; set; }
 
         public SqliteManager()
         {
-            this.ConfigDal = new ConfigDAL();
-            this.RouteDal = new RouteDAL();
-            this.SubCmdDAL = new SubCmdDAL();
-            this.CommandDAL = new CommandDAL();
-            this.AxisConfigDAL = new AxisConfigDAL();
-            this.AxisPositionDataDAL = new AxisPositionDataDAL();
-            this.AxisVelocityDataDAL = new AxisVelocityDataDAL();
-            this.AlarmDAL = new AlarmDAL();
-            this.HisAlarmDAL = new HisAlarmDAL();
-            
-            this.VehicleInfoDAL = new VehicleInfoDAL();
+            this.ConfigDal = new GenericRepository<Config>();
+            this.SubCmdDAL = new GenericRepository<SubCmd>();
+            this.CommandDAL = new GenericRepository<Command>();
+
+            this.AxisConfigDAL = new GenericRepository<AxisConfig>();
+            this.AxisPositionDataDAL = new GenericRepository<AxisPositionData>();
+            this.AxisVelocityDataDAL = new GenericRepository<AxisVelocityData>();
+            this.AlarmDAL = new GenericRepository<Alarm>() ;
+            this.VehicleInfoDAL = new GenericRepository<VehicleInfo>();
+            this.HisAlarmDAL = new GenericRepository<HisAlarm>();
+            this.RouteDal = new GenericRepository<Route>();
         }
 
         public void RegisterTypes(IContainerRegistry containerRegistry)

+ 2 - 2
Dev/OHV/OHV.Vehicle/Concept/D_MainWindowViewModel.cs

@@ -252,9 +252,9 @@ namespace OHV.Vehicle.Concept
             this.messageController = _msgController;
             this.sql = _sql;
 
-            this.VehicleID = sql.ConfigDal.GetK( ConstString.VehicleID ).Value;
+            this.VehicleID = sql.ConfigDal.GetById( ConstString.VehicleID ).Value;
             //this.VehicleIP = sql.ConfigDal.GetK( ConstString.Addr ).Value;
-            this.OcsIP = sql.ConfigDal.GetK( ConstString.Addr ).Value;
+            this.OcsIP = sql.ConfigDal.GetById( ConstString.Addr ).Value;
 
             this.TestCommand = new DelegateCommand( ExecuteTextCommand );
             this.NavigateCommand = new DelegateCommand<object>( this.Navigate );

+ 12 - 11
Dev/OHV/VehicleControlSystem/ControlLayer/Clamp.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Security.Cryptography.X509Certificates;
 using System.Threading;
 using System.Threading.Tasks;
 using FluentResults;
@@ -122,13 +123,13 @@ namespace VehicleControlSystem.ControlLayer
         #region Request Method
         private void ReqSyncState( AxisControlEventArgs args )
         {
-            var leftPositionDatas = sql.AxisPositionDataDAL.GetKFromName( ConstString.AXIS_CARRIER_LOCK_LEFT ).ToList();
+            var leftPositionDatas = sql.AxisPositionDataDAL.Get(x=>x.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) ).ToList();
             var leftLockData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).Single();
             var leftUnLockData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_UNLOCK ) ).Single();
 
             var left = this.axes.Where( x => x.Config.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) ).Single();
 
-            var rightPositionDatas = sql.AxisPositionDataDAL.GetKFromName( ConstString.AXIS_CARRIER_LOCK_RIGHT ).ToList();
+            var rightPositionDatas = sql.AxisPositionDataDAL.Get(x=>x.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_RIGHT) ).ToList();
             var rightLockData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).Single();
             var rightUnLockData = leftPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_UNLOCK ) ).Single();
 
@@ -169,7 +170,7 @@ namespace VehicleControlSystem.ControlLayer
                 }
                 else
                 {
-                    var alarm = this.sql.AlarmDAL.GetK( result );
+                    var alarm = this.sql.AlarmDAL.GetById( result );
                     if ( alarm == null )
                         alarm = new Alarm() { Name = "UnKnown Alarm", Text = "Not Define" };
 
@@ -189,7 +190,7 @@ namespace VehicleControlSystem.ControlLayer
                 }
                 else
                 {
-                    var alarm = this.sql.AlarmDAL.GetK( result );
+                    var alarm = this.sql.AlarmDAL.GetById( result );
                     if ( alarm == null )
                         alarm = new Alarm() { Name = "UnKnown Alarm", Text = "Not Define" };
 
@@ -364,7 +365,7 @@ namespace VehicleControlSystem.ControlLayer
                 result = this.MoveToLockPosition( arg.AxisName );
                 if ( result != 0 )
                 {
-                    var alarm = this.sql.AlarmDAL.GetK( result );
+                    var alarm = this.sql.AlarmDAL.GetById( result );
                     if ( alarm == null )
                         alarm = new Alarm() { Name = "Unknown Alarm", Text = "Not define" };
 
@@ -381,7 +382,7 @@ namespace VehicleControlSystem.ControlLayer
                 result = this.MoveToUnlockPosition( arg.AxisName );
                 if ( result != 0 )
                 {
-                    var alarm = this.sql.AlarmDAL.GetK( result );
+                    var alarm = this.sql.AlarmDAL.GetById( result );
                     if ( alarm == null )
                         alarm = new Alarm() { Name = "Unknown Alarm", Text = "Not define" };
 
@@ -406,7 +407,7 @@ namespace VehicleControlSystem.ControlLayer
 
         void CreateAxis()
         {
-            sql.AxisConfigDAL.All.ForEach( config =>
+            sql.AxisConfigDAL.GetAll().ToList().ForEach( config =>
              {
                  Axis.AxisConfig c = new Axis.AxisConfig
                  {
@@ -426,7 +427,7 @@ namespace VehicleControlSystem.ControlLayer
 
             this.axes.ForEach( axis =>
              {
-                 var data = sql.AxisVelocityDataDAL.GetK( axis.Config.AxisName );
+                 var data = sql.AxisVelocityDataDAL.Get( x => x.AxisName.Equals( axis.Config.AxisName ) ).FirstOrDefault();
                  Axis.AxisData axisData = new AxisData
                  {
                      AxisNo = data.id,
@@ -506,7 +507,7 @@ namespace VehicleControlSystem.ControlLayer
         #region Data
         public void SavePositionData( string pos, double left, double right )
         {
-            var dataList = sql.AxisPositionDataDAL.GetKFromPostion( pos );
+            var dataList = sql.AxisPositionDataDAL.Get(x=>x.Name.Equals( pos) );
             var sqlLeft = dataList.Where( x => x.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_LEFT ) ).Single();
             var sqlRight = dataList.Where( x => x.AxisName.Equals( ConstString.AXIS_CARRIER_LOCK_RIGHT ) ).Single();
 
@@ -529,7 +530,7 @@ namespace VehicleControlSystem.ControlLayer
         public int MoveToLockPosition( string axisName )
         {
             var servo = this.axes.Where( x => x.Config.AxisName.Equals( axisName ) ).Single();
-            var axisPositionDatas = sql.AxisPositionDataDAL.GetKFromName( axisName ).ToList();
+            var axisPositionDatas = sql.AxisPositionDataDAL.Get(x=>x.Name.Equals( axisName )).ToList();
             var data = axisPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_LOCK ) ).Single();
 
             int result = servo.Move( data.Value );
@@ -540,7 +541,7 @@ namespace VehicleControlSystem.ControlLayer
         public int MoveToUnlockPosition( string axisName )
         {
             var servo = this.axes.Where( x => x.Config.AxisName.Equals( axisName ) ).Single();
-            var axisPositionDatas = sql.AxisPositionDataDAL.GetKFromName( axisName ).ToList();
+            var axisPositionDatas = sql.AxisPositionDataDAL.Get( x => x.Name.Equals( axisName ) ).ToList();
             var data = axisPositionDatas.Where( x => x.Name.Equals( ConstString.TEACH_POSITION_UNLOCK ) ).Single();
 
             int result = servo.Move( data.Value );

+ 0 - 1
Dev/OHV/VehicleControlSystem/ControlLayer/MQ/ZmqManager.cs

@@ -24,7 +24,6 @@ namespace VehicleControlSystem.ControlLayer.MQ
     {
         Logger logger = Logger.GetLogger();
 
-        SubscriberSocket subDriveInfoSocket = null;
         PublisherSocket pub = null;
         SubscriberSocket sub = null;
         RequestSocket req = null;

+ 34 - 34
Dev/OHV/VehicleControlSystem/ControlLayer/Motion/GSIDrive.cs

@@ -6,7 +6,6 @@ using OHV.Common.Model;
 using OHV.Common.Shareds;
 using OHV.SqliteDAL;
 using System;
-using VehicleControlSystem.ControlLayer.DB;
 using VehicleControlSystem.ControlLayer.MQ;
 using VehicleControlSystem.Managers;
 
@@ -108,30 +107,30 @@ namespace VehicleControlSystem.ControlLayer.Drive
                 //        this.CurrentTag = v;
                 //    }
                 //    break;
-                case "RearLoadFactor":
-                    {
-                        var v = CastTo<double>.From<object>( newValue );
-                        this.RearLoadFactor = v;
-                    }
-                    break;
-                case "RearRPM":
-                    {
-                        var v = CastTo<double>.From<object>( newValue );
-                        this.RearRpm = v;
-                    }
-                    break;
-                case "FrontLoadFactor":
-                    {
-                        var v = CastTo<double>.From<object>( newValue );
-                        this.FrontLoadFactor = v;
-                    }
-                    break;
-                case "FrontRPM":
-                    {
-                        var v = CastTo<double>.From<object>( newValue );
-                        this.FrontRpm = v;
-                    }
-                    break;
+                //case "RearLoadFactor":
+                //    {
+                //        var v = CastTo<double>.From<object>( newValue );
+                //        this.RearLoadFactor = v;
+                //    }
+                //    break;
+                //case "RearRPM":
+                //    {
+                //        var v = CastTo<double>.From<object>( newValue );
+                //        this.RearRpm = v;
+                //    }
+                //    break;
+                //case "FrontLoadFactor":
+                //    {
+                //        var v = CastTo<double>.From<object>( newValue );
+                //        this.FrontLoadFactor = v;
+                //    }
+                //    break;
+                //case "FrontRPM":
+                //    {
+                //        var v = CastTo<double>.From<object>( newValue );
+                //        this.FrontRpm = v;
+                //    }
+                //    break;
 
                 default:
                     break;
@@ -207,14 +206,15 @@ namespace VehicleControlSystem.ControlLayer.Drive
 
         public eOperatationMode GetDriveOperationMode()
         {
-            var ret = Redis.Instance.GetSystemState();
-
-            if ( ret == 3 )
-                return eOperatationMode.ManualMode;
-            else if ( ret == 4 )
-                return eOperatationMode.AutoMode;
-            else
-                return eOperatationMode.InitialMode;
+            //var ret = Redis.Instance.GetSystemState();
+
+            //if ( ret == 3 )
+            //    return eOperatationMode.ManualMode;
+            //else if ( ret == 4 )
+            //    return eOperatationMode.AutoMode;
+            //else
+
+            return eOperatationMode.InitialMode;
         }
 
         public int MoveToPoint( string point, double velocity )
@@ -229,7 +229,7 @@ namespace VehicleControlSystem.ControlLayer.Drive
             //ToDo: 이동 명령 실행.
             int result = 0;
 
-            zmq.SetCurrentSteeringState( steering.GetSteeringState() ); 
+            zmq.SetCurrentSteeringState( steering.GetSteeringState() );
             LockUtils.Wait( 100 );
             zmq.SetTargetPoint( point );
             LockUtils.Wait( 100 );

+ 26 - 29
Dev/OHV/VehicleControlSystem/ControlLayer/Vehicle.cs

@@ -2,6 +2,7 @@
 using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
+using System.Security.Cryptography.X509Certificates;
 using System.Threading;
 using System.Threading.Tasks;
 using FluentResults;
@@ -17,7 +18,6 @@ using OHV.Common.Shareds;
 using OHV.SqliteDAL;
 using Prism.Events;
 using VehicleControlSystem.ControlLayer.Actuator.Cylinder;
-using VehicleControlSystem.ControlLayer.DB;
 using VehicleControlSystem.ControlLayer.Drive;
 using VehicleControlSystem.ControlLayer.IO;
 using VehicleControlSystem.ControlLayer.MQ;
@@ -73,7 +73,7 @@ namespace VehicleControlSystem.ControlLayer
             {
                 if ( SetField( ref this.currentTag, value ) )
                 {
-                    var info = sql.VehicleInfoDAL.GetInfo();
+                    var info = sql.VehicleInfoDAL.GetAll().FirstOrDefault();
                     info.CurrentTag = value.ToString();
                     sql.VehicleInfoDAL.Update( info );
 
@@ -167,7 +167,7 @@ namespace VehicleControlSystem.ControlLayer
             {
                 if ( SetField( ref this.vehicleState, value ) )
                 {
-                    var info = sql.VehicleInfoDAL.GetInfo();
+                    var info = sql.VehicleInfoDAL.GetAll().FirstOrDefault();
                     info.VehicleState = value;
                     sql.VehicleInfoDAL.Update( info );
                 }
@@ -182,7 +182,7 @@ namespace VehicleControlSystem.ControlLayer
             {
                 if ( SetField( ref this.machineMode, value ) )
                 {
-                    var info = sql.VehicleInfoDAL.GetInfo();
+                    var info = sql.VehicleInfoDAL.GetAll().FirstOrDefault();
                     info.MachineMode = value;
                     sql.VehicleInfoDAL.Update( info );
                 }
@@ -618,7 +618,7 @@ namespace VehicleControlSystem.ControlLayer
             ThreadStart();
 
             //TimerUtils.Once(5000, () => { this.CurrentPosition = 1000; });
-            var v = sql.VehicleInfoDAL.GetInfo();
+            var v = sql.VehicleInfoDAL.GetAll().FirstOrDefault();
             v.CurrentTag = "0000";
             v.VehicleState = eVehicleState.None;
             v.MachineMode = eMachineMode.LocalMode;
@@ -689,7 +689,7 @@ namespace VehicleControlSystem.ControlLayer
             var reply = new DriveControlEventArgs();
 
             int targetTag = args.TargetRouteID;
-            var route = sql.RouteDal.GetK( targetTag );
+            var route = sql.RouteDal.Get( x => x.Name.Equals( targetTag ) ).FirstOrDefault();
             if ( route == null )
             {
                 reply.Result = Results.Fail( "Not Found Route" );
@@ -834,10 +834,10 @@ namespace VehicleControlSystem.ControlLayer
                     if ( this.autoManager.AutoModeStateProperty != eAutoModeState.Run ) // 
                         continue;
 
-                    var subCmd = sql.SubCmdDAL.GetSubCmd();
+                    var subCmd = sql.SubCmdDAL.GetAll().FirstOrDefault();
                     if ( subCmd == null ) continue;
 
-                    if ( !sql.CommandDAL.All.Any( x => x.CommandID.Equals( subCmd.CmdID ) ) )
+                    if ( !sql.CommandDAL.GetAll().Any( x => x.CommandID.Equals( subCmd.CmdID ) ) )
                     {
                         if ( subCmd.CmdType == SubCmd.eCmdType.Auto ) //자동 명령중 Main Command 가 없으면 삭제.
                         {
@@ -933,7 +933,7 @@ namespace VehicleControlSystem.ControlLayer
             {
                 this.OnMoveReady?.Invoke();
 
-                var moveReadyBuzzerTime = sql.ConfigDal.GetValueToInt( ConstString.BuzzerStartReadyTime );
+                var moveReadyBuzzerTime = CastTo<int>.From<string>( sql.ConfigDal.GetById( ConstString.BuzzerStartReadyTime ).Value );
                 Thread.Sleep( moveReadyBuzzerTime );
 
                 this.VehicleStateProperty = eVehicleState.Move;
@@ -989,10 +989,10 @@ namespace VehicleControlSystem.ControlLayer
 
                 //Todo: 이동중 명령이 삭제 되면 처리 할일들.
                 //이동중 메인 명력이 없어진다면 정지 후 
-                if ( !sql.CommandDAL.HasK( this.CurrentSubCommand.CmdID ) )
+                if ( null == sql.CommandDAL.GetById( this.CurrentSubCommand.CmdID ) )
                 {
                     logger.D( "[Wait Move Done] - 메인 명령 사라짐" );
-                    var cmd = sql.CommandDAL.GetCmd();
+                    var cmd = sql.CommandDAL.GetAll();
                     if ( cmd == null )
                     {
                         logger.D( "[Wait Move Done] - Main Command not Exist Motion Stop" );
@@ -1047,7 +1047,6 @@ namespace VehicleControlSystem.ControlLayer
 
             int result = 0;
 
-
             result = this.PIOAndLoad( sub.TargetID );
             if ( result != 0 )
             {
@@ -1057,16 +1056,10 @@ namespace VehicleControlSystem.ControlLayer
             }
             this.PIOSensorOff();
 
-            //PIO 내부 이동.
-            //result = this.clamp.Lock_Sync();
-            //if ( result != 0 )
-            //{
-            //    this.OccurVehicleAlarm( result );
-            //    return false;
-            //}
-
             //Load, Unload 가 끝나면 메인 Command 를 완료 했다고 판단.
-            sql.CommandDAL.UpdateState( sub.CmdID, eCommandState.Complete );
+            var cmd = sql.CommandDAL.GetById( sub.CmdID );
+            cmd.State = eCommandState.Complete;
+            sql.CommandDAL.Update(cmd);
             sql.SubCmdDAL.Clean();
 
             LockUtils.Wait( 1000 );
@@ -1114,7 +1107,9 @@ namespace VehicleControlSystem.ControlLayer
 
             this.PIOSensorOff();
 
-            sql.CommandDAL.UpdateState( sub.CmdID, eCommandState.Complete );
+            var cmd = sql.CommandDAL.GetById( sub.CmdID );
+            cmd.State = eCommandState.Complete;
+            sql.CommandDAL.Update(cmd);
             sql.SubCmdDAL.Clean();
 
             LockUtils.Wait( 1000 );
@@ -1129,8 +1124,10 @@ namespace VehicleControlSystem.ControlLayer
             int result = 0;
             result = this.StartBatteryCharge();
 
-            sql.CommandDAL.UpdateState( subCmd.CmdID, eCommandState.Complete );
-            sql.SubCmdDAL.Delete( subCmd );
+            var cmd = sql.CommandDAL.GetById( subCmd.CmdID );
+            cmd.State = eCommandState.Complete;
+            sql.CommandDAL.Update( cmd );
+            sql.SubCmdDAL.Clean();
         }
 
         /// <summary>
@@ -1141,7 +1138,7 @@ namespace VehicleControlSystem.ControlLayer
         /// <returns></returns>
         int PIOBatteryCharge( SubCmd sub )
         {
-            var route = sql.RouteDal.GetRoute( sub.TargetID );
+            var route = sql.RouteDal.GetById( sub.TargetID );
 
             if ( !CorrectPosition( route, this.CurrentPosition ) )
             {
@@ -1149,7 +1146,7 @@ namespace VehicleControlSystem.ControlLayer
                 return 0; //Alarm
             }
 
-            var pioTimeout = sql.ConfigDal.GetValueToInt( ConstString.PIOTimeOut );
+            var pioTimeout = CastTo<int>.From<string>( sql.ConfigDal.GetById( ConstString.PIOTimeOut ).Value );
 
             PIOClear();
             loggerPIO.I( $"Start Charge PIO - [{sub.TargetID}]" );
@@ -1182,7 +1179,7 @@ namespace VehicleControlSystem.ControlLayer
                 if ( !this.refObjects.IO.IsOn( "IN_PIO_READY" ) || this.refObjects.IO.IsOn( "IN_PIO_RECEIVE_RUN" ) )
                     break;
 
-                if ( !sql.CommandDAL.HasK( this.CurrentSubCommand.CmdID ) )
+                if ( null == sql.CommandDAL.GetById( this.CurrentSubCommand.CmdID ) )
                 {
                     PIOClear();
                     logger.D( "[Wait Charging] - 메인 명령 사라짐" );
@@ -1212,7 +1209,7 @@ namespace VehicleControlSystem.ControlLayer
 #if SIMULATION
             this.PIOSensorOn();
 
-            var pioTimeout = sql.ConfigDal.GetValueToInt( ConstString.PIOTimeOut );
+            var pioTimeout = CastTo<int>.From<string>( sql.ConfigDal.GetById( ConstString.PIOTimeOut ).Value );
 
             PIOClear();
             loggerPIO.I( $"Start Battery Charge PIO" );
@@ -1289,7 +1286,7 @@ namespace VehicleControlSystem.ControlLayer
 #if SIMULATION
             loggerPIO.I( $"Stop Battery Charge PIO" );
 
-            var pioTimeout = sql.ConfigDal.GetValueToInt( ConstString.PIOTimeOut );
+            var pioTimeout = CastTo<int>.From<string>( sql.ConfigDal.GetById( ConstString.PIOTimeOut ).Value );
 
             this.PIOClear();
 

+ 2 - 2
Dev/OHV/VehicleControlSystem/Managers/AutoManager.cs

@@ -293,7 +293,7 @@ namespace VehicleControlSystem.Managers
             this.BuzzerStateProperty = eBuzzerKind.Alarm;
 
             HisAlarm hisAlarm = new HisAlarm();
-            var alarm = sql.AlarmDAL.GetK( alarmID );
+            var alarm = sql.AlarmDAL.GetById( alarmID );
             if ( alarm == null )
             {
                 hisAlarm.AlarmId = alarmID;
@@ -310,7 +310,7 @@ namespace VehicleControlSystem.Managers
                 hisAlarm.Solution = alarm.Solution;
                 //hisAlarm.Alarm = alarm;
             }
-            sql.HisAlarmDAL.Add( hisAlarm );
+            sql.HisAlarmDAL.Insert( hisAlarm );
 
             //UI 로는 처음 발생한 Error 만 전송한다.
             if ( IsErrorProcessing )

+ 9 - 7
Dev/OHV/VehicleControlSystem/Managers/HostManager.cs

@@ -10,6 +10,8 @@ using GSG.NET.Extensions;
 using OHV.Common.Model;
 using GSG.NET.Quartz;
 using System.Text;
+using GSG.NET.LINQ;
+using System.Linq;
 
 namespace VehicleControlSystem.Managers
 {
@@ -123,10 +125,10 @@ namespace VehicleControlSystem.Managers
         {
             this.manager.Config = new OHVConnector.Config
             {
-                ID = sql.ConfigDal.GetK( ConstString.VehicleID ).Value,
-                IpAddress = sql.ConfigDal.GetK( ConstString.Addr ).Value,
-                Port = Convert.ToInt16( sql.ConfigDal.GetK( ConstString.PortNo ).Value ),
-                HostID = sql.ConfigDal.GetK( ConstString.OCSID ).Value,
+                ID = sql.ConfigDal.GetById( ConstString.VehicleID ).Value,
+                IpAddress = sql.ConfigDal.GetById( ConstString.Addr ).Value,
+                Port = Convert.ToInt16( sql.ConfigDal.GetById( ConstString.PortNo ).Value ),
+                HostID = sql.ConfigDal.GetById( ConstString.OCSID ).Value,
             };
 
             this.manager.OnContd += Manager_OnContd;
@@ -413,14 +415,14 @@ namespace VehicleControlSystem.Managers
 
             var cmd = new Command();
 
-            var info = sql.VehicleInfoDAL.GetInfo();
+            var info = sql.VehicleInfoDAL.GetAll().FirstOrDefault();
             if ( info.MachineMode == eMachineMode.LocalMode )
             {
                 loggerHost.E( $"[OCS] Cmd - Current Mode Local Mode " );
                 return;
             }
 
-            var hasCommand = this.sql.CommandDAL.GetCmd();
+            var hasCommand = this.sql.CommandDAL.GetAll().FirstOrDefault();
             if ( hasCommand != null )
             {
                 if ( !hasCommand.IsSecondCommanded )
@@ -464,7 +466,7 @@ namespace VehicleControlSystem.Managers
 
             cmd.TargetID = msg.Tag;
 
-            this.sql.CommandDAL.Add( cmd );
+            this.sql.CommandDAL.Insert( cmd );
             logger.I( $"[Command] - Add Host : Target {cmd.TargetID} / Type {cmd.Type}" );
         }
 

+ 21 - 10
Dev/OHV/VehicleControlSystem/Managers/RouteManager.cs

@@ -1,4 +1,5 @@
-using GSG.NET.ObjectBase;
+using GSG.NET.Logging;
+using GSG.NET.ObjectBase;
 using Newtonsoft.Json.Linq;
 using OHV.Common.Model;
 using OHV.Common.Shareds;
@@ -14,6 +15,7 @@ namespace VehicleControlSystem.Managers
 {
     public class RouteManager : SingletonBase<RouteManager>, IDisposable
     {
+        Logger logger = Logger.GetLogger();
         SqliteManager sql = null;
 
         public List<segment> Segments = new List<segment>();
@@ -33,18 +35,27 @@ namespace VehicleControlSystem.Managers
 
         void LoadJson()
         {
-            var path = sql.ConfigDal.GetK( ConstString.RouteFilePath ).Value;
+            var path = sql.ConfigDal.GetById( ConstString.RouteFilePath ).Value;
             if ( !System.IO.File.Exists( path ) )
                 return;
 
-            using ( StreamReader r = new StreamReader( path ) )
+            try
             {
-                string json = r.ReadToEnd();
-                var o = JObject.Parse( json );
-                this.Points = o["points"].ToObject<List<point>>();
-                this.Segments = o["segments"].ToObject<List<segment>>();
-                this.Obstacles = o["obstacles"].ToObject<List<obstacles>>();
-                this.Equipments = o["equipments"].ToObject<List<equipment>>();
+                using ( StreamReader r = new StreamReader( path ) )
+                {
+                    string json = r.ReadToEnd();
+                    var o = JObject.Parse( json );
+                    this.Points = o["points"].ToObject<List<point>>();
+                    this.Segments = o["segments"].ToObject<List<segment>>();
+                    this.Obstacles = o["obstacles"].ToObject<List<obstacles>>();
+                    this.Equipments = o["equipments"].ToObject<List<equipment>>();
+                }
+
+            }
+            catch ( Exception exception)
+            {
+                logger.E( exception );
+                return;    
             }
 
             this.WriteToDB();
@@ -64,7 +75,7 @@ namespace VehicleControlSystem.Managers
                      ScaleValue = p.barcode,
                      Name = p.ID.ToString(),
                  };
-                 sql.RouteDal.Add( route );
+                 sql.RouteDal.Insert( route );
              } );
         }
 

+ 10 - 7
Dev/OHV/VehicleControlSystem/Managers/Scheduler.cs

@@ -78,7 +78,7 @@ namespace VehicleControlSystem.Managers
         {
             try
             {
-                this.sql.CommandDAL.Add( cmd );
+                this.sql.CommandDAL.Insert( cmd );
             }
             catch ( Exception ex )
             {
@@ -122,7 +122,7 @@ namespace VehicleControlSystem.Managers
                                     case OHV.Common.Shareds.eAutoModeState.StartRun:
                                         break;
                                     case OHV.Common.Shareds.eAutoModeState.Run:
-                                        Command cmd = sql.CommandDAL.GetCmd();
+                                        Command cmd = sql.CommandDAL.GetAll().FirstOrDefault();
                                         if ( cmd == null ) continue;
                                         DoWork( cmd );
                                         break;
@@ -165,7 +165,8 @@ namespace VehicleControlSystem.Managers
                             default:
                                 break;
                         }
-                        this.sql.CommandDAL.UpdateState( cmd.CommandID, OHV.Common.Shareds.eCommandState.Processing );
+                        cmd.State = eCommandState.Processing;
+                        this.sql.CommandDAL.Update( cmd );
 
                         if ( cmd.ByWho == OHV.Common.Shareds.eCommandByWho.LocalSystem || cmd.ByWho == OHV.Common.Shareds.eCommandByWho.LocalOverWrite )
                             this.OnMaualAddedCommand?.BeginInvoke( cmd, null, null );
@@ -174,12 +175,13 @@ namespace VehicleControlSystem.Managers
 
                 case OHV.Common.Shareds.eCommandState.Processing:
                     {
-                        var subCmd = sql.SubCmdDAL.GetSubCmd();
+                        var subCmd = sql.SubCmdDAL.GetAll().FirstOrDefault();
                         if ( subCmd == null ) // Move 명령을 수행 완료 했다고 판단.
                         {
                             if ( cmd.IsSecondCommanded )
                             {
-                                sql.CommandDAL.UpdateState( cmd.CommandID, OHV.Common.Shareds.eCommandState.Complete );
+                                cmd.State = eCommandState.Complete;
+                                sql.CommandDAL.Update( cmd );
                                 break;
                             }
 
@@ -206,7 +208,8 @@ namespace VehicleControlSystem.Managers
                             }
                             else //Move Command complete
                             {
-                                sql.CommandDAL.UpdateState( cmd.CommandID, OHV.Common.Shareds.eCommandState.Complete );
+                                cmd.State = eCommandState.Complete;
+                                sql.CommandDAL.Update( cmd );
                                 break;
                             }
                         }
@@ -250,7 +253,7 @@ namespace VehicleControlSystem.Managers
                 TargetID = cmd.TargetID,
                 CmdID = cmd.CommandID,
             };
-            sql.SubCmdDAL.Add( sub );
+            sql.SubCmdDAL.Insert( sub );
             logger.I( $"{sub.ID} Sub Command Create - Type={sub.Type}, TargetID={sub.TargetID}, CommandID={sub.CmdID}" );
 
             return true;

+ 3 - 2
Dev/OHV/VehicleControlSystem/VCSystem.cs

@@ -77,7 +77,7 @@ namespace VehicleControlSystem
             //Battery
             this.bMUManager = new BMUManager();
             this.bMUManager.BMUConfig = new ControlLayer.Serial.BatteryTabos.Config() { ID = "0" };
-            var setV = sql.ConfigDal.GetValueToInt( ConstString.BatteryCanType );
+            var setV = Convert.ToInt32( sql.ConfigDal.GetById( ConstString.BatteryCanType ).Value );
             var canType = CastTo<BMUManager.eCANSelect>.From<int>( setV );
             this.bMUManager.Connect( canType );
 
@@ -142,7 +142,8 @@ namespace VehicleControlSystem
 
         public void CleanHisAlarm()
         {
-            sql.HisAlarmDAL.Delete( 20 );
+            var backup = DateTime.Now.AddDays( -15 );
+            sql.HisAlarmDAL.Delete( x=>x.OccurTime < backup );
         }
 
         #region EzIO Event