public bool Commit(out string msg)
        {
            m_requestList = new Dictionary <string, bool>();
            msg           = "";
            if (!Validata(out msg))
            {
                return(false);
            }

            CloseSearch();
            vms = new List <SearchViewModelBase>();
            List <SearchItemV3_1> nosuch_error = new List <SearchItemV3_1>();
            List <SearchItemV3_1> start_error  = new List <SearchItemV3_1>();

            foreach (var item in SearchItems.SearchItems)
            {
                m_requestList.Add(item.CameraID, false);
                item.SearchHandle = 0;
                var info = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(item.CameraID, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_MOVEOBJ_PLATFORM);
                if (info == null)
                {
                    info = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(item.CameraID, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_CROSSROAD);
                }
                if (info == null)
                {
                    info = Framework.Container.Instance.CommService.GET_RESULT_STORE_LIST(item.CameraID, E_VIDEO_ANALYZE_TYPE.E_ANALYZE_DYNAMIC_VEHICLE);
                }
                if (info == null || item.CameraID != info.CameraID)
                {
                    nosuch_error.Add(item);
                }
                else
                {
                    string ip              = info.StoreIP;
                    uint   port            = info.StortPort;
                    SearchViewModelBase vm = new SearchViewModelBase(ip, port);
                    vm.SearchItem     = item;
                    item.SearchHandle = vm.StartSearch((SearchParaV3_1)m_searchParam.Clone());
                    if (item.SearchHandle == 0)
                    {
                        start_error.Add(item);
                    }
                    vms.Add(vm);
                }
            }
            WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent <SearchBeginEvent>().Publish(SearchItems);
            foreach (SearchViewModelBase item in vms)
            {
                item.SearchReady();
            }
            foreach (var item in start_error)
            {
                SearchResultSummaryV3_1 summary = new SearchResultSummaryV3_1()
                {
                    SearchSessionID = 0,
                    SearchResultSingleSummaryList = new List <SearchResultRecordV3_1>(),
                    SearchVM     = null,
                    SearchItem   = item,
                    SearchStatus = E_VDA_SEARCH_STATUS.E_VDA_SEARCH_STATUS_ERROR_STARTFAILED,
                    ObjectRect   = "",
                };

                WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent <SearchFinishedEvent>().Publish(summary);
            }

            ////////////////////////////////////////////////////////
            foreach (var item in nosuch_error)
            {
                SearchResultSummaryV3_1 summary = new SearchResultSummaryV3_1()
                {
                    SearchSessionID = 0,
                    SearchResultSingleSummaryList = new  List <SearchResultRecordV3_1>(),
                    SearchVM     = null,
                    SearchItem   = item,
                    SearchStatus = E_VDA_SEARCH_STATUS.E_VDA_SEARCH_STATUS_ERROR_NOSUCHITEM,
                    ObjectRect   = "",
                };

                WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent <SearchFinishedEvent>().Publish(summary);
            }
            //foreach (var item in SearchItems.SearchItems)
            //{
            //    List<SearchResultRecordTiny> record = new List<SearchResultRecordTiny>();
            //    for (int i = 0; i < 123; i++)
            //    {
            //    record.Add(new SearchResultRecordTiny()
            //    {
            //        ObjectKey = (ulong)i,
            //        ObjectDetailRect = new System.Drawing.Rectangle(),
            //        ObjectType = E_SEARCH_RESULT_OBJECT_TYPE.E_SEARCH_RESULT_OBJECT_TYPE_VEHICLE,
            //        TargetEndTs = DateTime.Now,
            //        TargetStartTs = DateTime.Now.AddSeconds(-60)
            //    });

            //    }
            //    SearchResultSummaryV3_1 summary = new SearchResultSummaryV3_1()
            //    {
            //        SearchSessionID = 0xffff,
            //        SearchResultSingleSummaryList = record,
            //        SearchVM = new SearchViewModelBase("127.0.0.1", 9301),
            //        SearchItem = item,
            //        SearchStatus = E_VDA_SEARCH_STATUS.E_VDA_SEARCH_STATUS_FINISH,
            //        ObjectRect = "0,0,0,0",
            //    };

            //    WinFormAppUtil.AppContainer.Instance.EvtAggregator.GetEvent<SearchFinishedEvent>().Publish(summary);

            //}
            ////////////////////////////////////////////////////////////
            return(true);
        }