예제 #1
0
 private void SendCrew()
 {
     if (ManagerHelp.isFaceAlgorithm && ManagerHelp.isInit == false)
     {
         string identity = ManagerHelp.GetShipToId(ComponentType.AI, ManagerHelp.FaceName);
         if (identity != "")
         {
             //等待15秒后发送底库数据
             Thread.Sleep(15 * 1000);
             var crew = ProtoBDManager.CrewQuery();
             foreach (var item in crew)
             {
                 manager.SendCrewAdd(item, identity);
             }
             ManagerHelp.isFaceAlgorithm = false;
         }
     }
 }
예제 #2
0
        /// <summary>
        /// 船员处理
        /// </summary>
        /// <param name="crew"></param>
        public void CrewData(SmartWeb.ProtoBuffer.Models.Crew crew)
        {
            int result = 1;//响应状态

            switch (crew.command)
            {
            case Models.Crew.Command.NEW_REQ:
                #region 陆地端添加船员请求
                if (crew.crewrequest == null)
                {
                    manager.SendCrewRN(Models.Crew.Command.NEW_REP, null, 1);
                }
                else
                {
                    var crewInfo = crew.crewrequest.crewinfo;
                    result = ProtoBDManager.CrewAdd(ref crewInfo);
                    if (result == 0)
                    {
                        string identity = ManagerHelp.GetShipToId(ComponentType.AI, ManagerHelp.FaceName);
                        if (identity != "")
                        {
                            //向组件发送船员请求
                            manager.SendCrewAdd(crewInfo, identity);
                            ManagerHelp.UpSend.Add("CrewAdd");
                        }
                        else
                        {
                            //向陆地端响应算法请求
                            manager.SendCrewRN(Models.Crew.Command.NEW_REP, null, result);
                        }
                    }
                    else
                    {
                        //向陆地端响应算法请求
                        manager.SendCrewRN(Models.Crew.Command.NEW_REP, null, result);
                    }
                }
                break;

                #endregion
            case Models.Crew.Command.DELETE_REQ:
                #region 陆地端删除船员请求
                if (crew.crewrequest == null)
                {
                    manager.SendCrewRN(Models.Crew.Command.DELETE_REP, null, 1);
                }
                else
                {
                    result = ProtoBDManager.CrewDelete(crew.crewrequest.crewinfo.uid);
                    if (result == 0)
                    {
                        string identity = ManagerHelp.GetShipToId(ComponentType.AI, ManagerHelp.FaceName);
                        //向组件发送船员请求
                        manager.SendCrewDelete(Convert.ToInt32(crew.crewrequest.crewinfo.uid), identity);
                        ManagerHelp.UpSend.Add("CrewDel");
                    }
                    else
                    {
                        manager.SendCrewRN(Models.Crew.Command.DELETE_REP, null, result);
                    }
                }
                break;

                #endregion
            case Models.Crew.Command.MODIFY_REQ:
                #region 陆地端修改船员请求
                if (crew.crewrequest == null)
                {
                    manager.SendCrewRN(Models.Crew.Command.MODIFY_REP, null, 1);
                }
                else
                {
                    result = ProtoBDManager.CrewUpdate(crew.crewrequest.crewinfo);
                    if (result == 0)
                    {
                        string identity = ManagerHelp.GetShipToId(ComponentType.AI, ManagerHelp.FaceName);
                        if (identity != "")
                        {
                            //向组件发送船员请求
                            //manager.SendCrewUpdate(crew.crewrequest.crewinfo, identity);
                            manager.SendCrewAdd(crew.crewrequest.crewinfo, identity);
                            ManagerHelp.UpSend.Add("CrewEdit");
                        }
                        else
                        {
                            manager.SendCrewRN(Models.Crew.Command.MODIFY_REP, null, result);
                        }
                    }
                    else
                    {
                        manager.SendCrewRN(Models.Crew.Command.MODIFY_REP, null, result);
                    }
                }
                break;

                #endregion
            case Models.Crew.Command.QUERY_REQ:
                #region 陆地端查询船员请求
                int uid = crew.crewrequest != null && crew.crewrequest.crewinfo != null?Convert.ToInt32(crew.crewrequest.crewinfo.uid) : 0;

                var crews = ProtoBDManager.CrewQuery(uid);
                manager.SendCrewRN(Models.Crew.Command.QUERY_REP, crews);
                break;

                #endregion
            case Models.Crew.Command.NEW_REP:
                if (ManagerHelp.UpSend.Where(c => c == "CrewAdd").Any())
                {
                    //向陆地端响应请求
                    manager.SendCrewRN(Models.Crew.Command.NEW_REP, null, crew.crewresponse.result);
                    ManagerHelp.UpSend.Remove("CrewAdd");
                }
                else
                {
                    ManagerHelp.CrewResult = crew.crewresponse.result.ToString();
                }
                break;

            case Models.Crew.Command.DELETE_REP:
                if (ManagerHelp.UpSend.Where(c => c == "CrewDel").Any())
                {
                    //向陆地端响应请求
                    manager.SendCrewRN(Models.Crew.Command.DELETE_REP, null, crew.crewresponse.result);
                    ManagerHelp.UpSend.Remove("CrewDel");
                }
                else
                {
                    ManagerHelp.CrewResult = crew.crewresponse.result.ToString();
                }
                break;

            case Models.Crew.Command.MODIFY_REP:
                if (ManagerHelp.UpSend.Where(c => c == "CrewEdit").Any())
                {
                    //向陆地端响应请求
                    manager.SendCrewRN(Models.Crew.Command.MODIFY_REP, null, crew.crewresponse.result);
                    ManagerHelp.UpSend.Remove("CrewEdit");
                }
                else
                {
                    ManagerHelp.CrewResult = crew.crewresponse.result.ToString();
                }
                break;

            case Models.Crew.Command.QUERY_REP:
                if (crew.crewresponse != null && crew.crewresponse.result == 0 && crew.crewresponse.crewinfos != null)
                {
                    ManagerHelp.CrewReponse = JsonConvert.SerializeObject(crew.crewresponse.crewinfos);
                }
                break;

            default:
                break;
            }
        }