private int DistributeSYNCCommandData(SYNCCmdValue command, SYNCProtocolBase baseData)
        {
            System.Console.WriteLine("[CommunicationManager] SYNC 프레임 데이터 분배 - command(" + command.ToString() + ")");

            try
            {
                switch (command)
                {
                case SYNCCmdValue.ChkTotalHash:    // 전체 해쉬키 체크 요청
                case SYNCCmdValue.ChkSingleHash:
                case SYNCCmdValue.UpdateProfile:
                {
                    if (this.NotifyDataSyncRequested != null)
                    {
                        SynchronizationReqData syncReqData = ConvertToSynchronizationReqData(command, baseData);
                        this.NotifyDataSyncRequested(this, new DataSyncEvtArgs(syncReqData));
                    }
                }
                break;

                default:
                {
                    // do nothing
                }
                break;
                }
            }
            catch (Exception ex)
            {
                System.Console.WriteLine("[CommunicationManager] DistributeSYNCCommandData( " + ex.ToString() + " )");
                FileLogManager.GetInstance().WriteLog("[CommunicationManager] DistributeSYNCCommandData( Exception=[" + ex.ToString() + "] )");

                return(-99);
            }

            return(0);
        }
        private SynchronizationReqData ConvertToSynchronizationReqData(SYNCCmdValue command, SYNCProtocolBase baseData)
        {
            SynchronizationReqData reqData = null;

            switch (command)
            {
            case SYNCCmdValue.ChkTotalHash:    // 전체 해쉬키 체크 요청
            {
                reqData         = new SynchronizationReqData();
                reqData.Command = DataSyncCommand.ChkEntireHashKey;

                SYNCPrtCmd1 protoCmd1 = baseData as SYNCPrtCmd1;

                reqData.EventID        = protoCmd1.Identifier;
                reqData.ProfileHashKey = protoCmd1.HashKey;
                reqData.Crc16          = protoCmd1.Crc16;
            }
            break;

            case SYNCCmdValue.ChkSingleHash:
            {
                reqData         = new SynchronizationReqData();
                reqData.Command = DataSyncCommand.ChkSingleHashKey;

                SYNCPrtCmd2 protoCmd2 = baseData as SYNCPrtCmd2;

                reqData.EventID         = protoCmd2.Identifier;
                reqData.TotalPacketCnt  = protoCmd2.TotalCount;
                reqData.CurrentPacketNo = protoCmd2.Num;
                reqData.ProfileID       = protoCmd2.ProfileID;
                reqData.ProfileHashKey  = protoCmd2.HashKey;
                reqData.Crc16           = protoCmd2.Crc16;
            }
            break;

            case SYNCCmdValue.UpdateProfile:
            {
                reqData         = new SynchronizationReqData();
                reqData.Command = DataSyncCommand.UpdateProfileData;

                SYNCPrtCmd3 protoCmd3 = baseData as SYNCPrtCmd3;

                reqData.EventID         = protoCmd3.Identifier;
                reqData.TotalPacketCnt  = protoCmd3.TotalCount;
                reqData.CurrentPacketNo = protoCmd3.Num;
                switch (protoCmd3.Mode)
                {
                case SyncUpdateMode.Regist:
                    reqData.Mode = ProfileUpdateMode.Regist;
                    break;

                case SyncUpdateMode.Modify:
                    reqData.Mode = ProfileUpdateMode.Modify;
                    break;

                case SyncUpdateMode.Delete:
                    reqData.Mode = ProfileUpdateMode.Delete;
                    break;

                default:
                    break;
                }
                reqData.ProfileID = protoCmd3.ID;

                reqData.SystemProfile          = new SASProfile();
                reqData.SystemProfile.ID       = protoCmd3.ID;
                reqData.SystemProfile.Name     = protoCmd3.SystemName;
                reqData.SystemProfile.AuthCode = protoCmd3.AuthCode;
                reqData.SystemProfile.KindCode = protoCmd3.SystemKindCode;
                reqData.SystemProfile.IpType   = IPType.IPv4;
                if (protoCmd3.IPType == IPAddressType.IPv4)
                {
                    reqData.SystemProfile.IpType = IPType.IPv4;
                }
                else if (protoCmd3.IPType == IPAddressType.IPv6)
                {
                    reqData.SystemProfile.IpType = IPType.IPv6;
                }
                else
                {
                    //
                }
                reqData.SystemProfile.IpAddress = protoCmd3.IPAddress;
                reqData.SystemProfile.Latitude  = protoCmd3.Latitude.ToString();
                reqData.SystemProfile.Longitude = protoCmd3.Longitude.ToString();
                reqData.SystemProfile.AssignedIAGWRegionCode = protoCmd3.AssignedIAGWRegionCode;
                reqData.SystemProfile.Address           = protoCmd3.Address;
                reqData.SystemProfile.ManagerName       = protoCmd3.ManagerName;
                reqData.SystemProfile.ManagerDepartment = protoCmd3.ManagerDepartment;
                reqData.SystemProfile.ManagerPhone      = protoCmd3.ManagerPhone;
            }
            break;

            default:
            {
                // do nothing
            }
            break;
            }
            return(reqData);
        }