コード例 #1
0
        public async Task <ActionResult <TransferFormRespObj> > GetTransferByIdAsync([FromQuery] SearchObj search)
        {
            if (search.SearchId < 1)
            {
                return(new TransferFormRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "TransferForm Id is required"
                        }
                    }
                });
            }

            var response = await _repo.GetTransferByIdAsync(search.SearchId);

            var resplist = new List <deposit_transferform> {
                response
            };

            return(new TransferFormRespObj
            {
                TransferForms = _mapper.Map <List <TransferFormObj> >(resplist),
            });
        }
コード例 #2
0
        private void SearchFinishCallBack(object sender, MessageEventArgs e)
        {
            object[]     retObj     = e.MessageObj as object[];
            List <TDocs> listResult = retObj[0] as List <TDocs>;
            long         watchCount = (long)retObj[1];
            SearchObj    sobj       = retObj[2] as SearchObj;

            if (listResult == null || sobj == null)
            {
                return;
            }
            if (sobj.ReqSource.Name == GlobalVar.LocalPath || sobj.ReqSource.Name == Dns.GetHostName())
            {
                changeStatusBar("本地检索完成:", String.Format("共耗时{0}秒,包含结果{1}项", watchCount / 1000 + "." + watchCount % 1000, listResult.Count), false);
                if (listResult.Count == 0)
                {
                    MessageBox.Show("本地检索完毕,未找到匹配项!");
                }
                addResultItemCons(listResult, new ClientBrief(null, GlobalVar.LocalPath));
            }
            else
            {
                changeStatusBar("[远程检索响应结束]", String.Format("请求节点:{0} 耗时{1}秒,包含结果{2}项", sobj.ReqSource.Name, watchCount / 1000 + "." + watchCount % 1000, listResult.Count), false);
                if (listResult.Count == 0)
                {
                    return;
                }
                netopt.SendSearchResult(sobj, listResult);
            }
        }
コード例 #3
0
 private void btnSearch_Click(object sender, EventArgs e)
 {
     if (txtSearch.Text.Trim() == "")
     {
         MessageBox.Show("请输入搜索词", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         txtSearch.Focus();
         return;
     }
     if (!chkLocalSearch.Checked && !chkP2PSearch.Checked)
     {
         MessageBox.Show("请选择检索源", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         chkLocalSearch.Focus();
         return;
     }
     if (chkP2PSearch.Checked)
     {
         changeStatusBar("状态:", "发送网络搜索请求", true);
         lcResult.Clear();
         netopt.SendSearchRequest(txtSearch.Text);
     }
     if (chkLocalSearch.Checked)
     {
         changeStatusBar("状态:", "正在本地搜索...", true);
         lcResult.Clear();
         Thread    searchTh = new Thread(new ParameterizedThreadStart(indexer.SearchIndexThread));
         SearchObj sobj     = new SearchObj(txtSearch.Text, new ClientBrief(null, GlobalVar.LocalPath));
         searchTh.Start(sobj);
     }
 }
コード例 #4
0
        public async Task <ActionResult <CategoryRespObj> > GetCategoryByIdAsync([FromQuery] SearchObj search)
        {
            if (search.SearchId < 1)
            {
                return(new CategoryRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "DepositCategory Id is required"
                        }
                    }
                });
            }

            var response = await _repo.GetCategoryByIdAsync(search.SearchId);

            var resplist = new List <deposit_category> {
                response
            };

            return(new CategoryRespObj
            {
                Categories = _mapper.Map <List <CategoryObj> >(resplist),
            });
        }
コード例 #5
0
        private void RemoteSearchRequestCallBack(object sender, MessageEventArgs e)
        {
            SearchObj sobj = e.MessageObj[0] as SearchObj;

            changeStatusBar("[远程检索请求]", sobj.ReqOpt.ToString(), false);
            Thread searchTh = new Thread(new ParameterizedThreadStart(indexer.SearchIndexThread));

            searchTh.Start(sobj);
        }
コード例 #6
0
        public static string GenerateInputClass(SearchObj header)
        {
            var className = "form-control search-frm " + (!header.IsEnable ? "input-disabled" : "");

            switch (header.ColumnType)
            {
            case "int":
            {
                className += " intOnly";
                break;
            }

            case "decimal":
            case "double":
            case "float":
            {
                className += " doubleOnly";
                break;
            }

            case "date":
            {
                className += " dateOnly";
                break;
            }

            case "datetime":
            {
                className += " datetimeOnly";
                break;
            }

            case "time":
            {
                className += " timeOnly";
                break;
            }

            default:
            {
                break;
            }
            }

            return(className);
        }
コード例 #7
0
        public void SearchIndexThread(object obj)
        {
            Stopwatch watch = new Stopwatch();

            watch.Start();
            SearchObj sobj = obj as SearchObj;

            if (sobj == null)
            {
                return;
            }
            List <TDocs> listResult = new List <TDocs>();

            try
            {
                listResult = m_Index.Search(sobj.StrQuery);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
            watch.Stop();
            if (SearchFinish != null)
            {
                MessageEventArgs arg = new MessageEventArgs();
                arg.MessageObj    = new object[3];
                arg.MessageObj[0] = listResult;
                arg.MessageObj[1] = watch.ElapsedMilliseconds;
                arg.MessageObj[2] = sobj;
                System.ComponentModel.ISynchronizeInvoke aSynch = SearchFinish.Target as System.ComponentModel.ISynchronizeInvoke;
                if (aSynch.InvokeRequired)
                {
                    object[] args = new object[2] {
                        this, arg
                    };
                    aSynch.Invoke(SearchFinish, args);
                }
                else
                {
                    SearchFinish(this, arg);
                }
            }
        }
コード例 #8
0
        public void SendSearchResult(SearchObj sobj, List <TDocs> listResult)
        {
            IPEndPoint remoteIEP = sobj.ReqSource.IEP;

            /*
             * JavaScriptSerializer:
             * obj.ToScriptJsonString<T>()
             * obj.ToScriptJsonObject<T>()
             * reference to System.Runtime.Serialization.dll
             * using System.Runtime.Serialization.Json;
             * DataContract:
             * obj.ToJsonString<T>()
             * obj.ToJsonObject<T>()
             * reference to System.Web.Extensions.dll
             * using System.Web.Script.Serialization;
             */
            string      strResult   = JsonConvert.SerializeObject(listResult);
            ClientBrief clientLocal = new ClientBrief(netc.LocalServiceIEP, Dns.GetHostName());

            netc.SendTCPString(remoteIEP, SearchResponseHead + clientLocal.ToString() + GlobalVar.SplitChar_Path + strResult);
        }
コード例 #9
0
        public static string GenerateQueryFromColumn(SearchObj parameter, ref StringBuilder query)
        {
            var columnParams = parameter.Column.Split(".");

            if (parameter.Column.Contains("."))
            {
            }
            else if (parameter.IsChild)
            {
            }
            else if (!parameter.IsChild)
            {
            }
            else if (columnParams.Count() <= 2)
            {
            }
            else if (columnParams.Count() == 3)
            {
            }

            return(query.ToString());
        }
コード例 #10
0
        public async Task <ActionResult <InfProductTypeRespObj> > GetProductType([FromQuery] SearchObj search)
        {
            try
            {
                if (search.SearchId < 1)
                {
                    return(new InfProductTypeRespObj
                    {
                        Status = new APIResponseStatus {
                            IsSuccessful = false, Message = new APIResponseMessage {
                                FriendlyMessage = "CollateralType Id is required"
                            }
                        }
                    });
                }

                var response = _repo.GetProductType(search.SearchId);
                var resplist = new List <InfProductTypeObj> {
                    response
                };
                return(new InfProductTypeRespObj
                {
                    InfProductTypes = resplist,
                });
            }
            catch (Exception ex)
            {
                var errorCode = ErrorID.Generate(5);
                _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
                return(new InfProductTypeRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "Error Occurred", TechnicalMessage = ex?.Message, MessageId = errorCode
                        }
                    }
                });
            }
        }
コード例 #11
0
        private void RecvMultiCastCallBack(object sender, MessageEventArgs e)
        {
            object[]        recvObj = e.MessageObj as object[];
            MultiCastObject mcobj   = recvObj[0] as MultiCastObject;

            if (mcobj == null)
            {
                return;
            }
            switch (mcobj.ObjType)
            {
            case MultiCastType.OnLine:
                ClientInGroup.Add(mcobj.RemoteIEP, mcobj.RemoteName);
                break;

            case MultiCastType.OffLine:
                ClientInGroup.Remove(mcobj.RemoteIEP);
                break;

            case MultiCastType.SearchRequest:
                if (mcobj.RemoteIEP.Equals(netc.LocalServiceIEP))
                {
                    break;
                }
                if (RemoteSearchRequest != null)
                {
                    MessageEventArgs argSearch = new MessageEventArgs();
                    argSearch.MessageObj = new object[1];
                    SearchObj sobj = new SearchObj(mcobj.Message, new ClientBrief(mcobj.RemoteIEP, mcobj.RemoteName), mcobj.RemoteIEP);
                    argSearch.MessageObj[0] = sobj;
                    RemoteSearchRequest(this, argSearch);
                }
                break;

            default:
                break;
            }
        }
コード例 #12
0
        public async Task <ActionResult <DepositFormRespObj> > GetDepositForm([FromQuery] SearchObj search)
        {
            if (search.SearchId < 1)
            {
                return(new DepositFormRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "Depositform Id is required"
                        }
                    }
                });
            }

            var response = _repo.GetDepositForm(search.SearchId);
            var resplist = new List <DepositformObj> {
                response
            };

            return(new DepositFormRespObj
            {
                DepositForm = resplist,
            });
        }
コード例 #13
0
        public static string AppendToQuery(SearchObj parameter)
        {
            var query        = new StringBuilder();
            var columnParams = parameter.Column.Split(".");

            switch (parameter.DataType.ToLower())
            {
            case "bool":
            {
                if (!parameter.Column.Contains(".") || !parameter.IsChild)
                {
                    query.Append(BooleanTypes.Contains(parameter.Value) ? " && " + parameter.Column + "==true"
                                                                : OppositeBooleanTypes.Contains(parameter.Value) ? " && " + parameter.Column + "==false" : "");
                }
                else if (parameter.IsChild && columnParams.Count() <= 2)
                {
                    query.Append(BooleanTypes.Contains(parameter.Value) ? " && " + columnParams[0] + ".ANY(" + columnParams[1] + "==true)"
                                                                : OppositeBooleanTypes.Contains(parameter.Value) ? " && " + columnParams[0] + ".ANY(" + columnParams[1] + "==false)" : "");
                }
                else if (parameter.IsChild && columnParams.Count() == 3)
                {
                    query.Append(BooleanTypes.Contains(parameter.Value) ? " && " + columnParams[0] + ".ANY(" + columnParams[1] + "." + columnParams[2] + "==true)"
                                                                : OppositeBooleanTypes.Contains(parameter.Value) ? " && " + columnParams[0] + ".ANY(" + columnParams[1] + "." + columnParams[2] + "==false)" : "");
                }

                //GenerateQueryFromColumn(parameter, ref query);

                break;
            }

            case "int":
            case "float":
            case "decimal":
            case "double":
            {
                query.Append(" && " + parameter.Column + " in (" + parameter.Value + ")");

                break;
            }

            case "date":
            {
                var startDate = new DateTime();

                DateTime.TryParse(parameter.Value, out startDate);

                if (startDate != new DateTime())
                {
                    var endDate = startDate.AddDays(1).AddSeconds(-1);

                    query.Append(" && " + parameter.Column + ">=DateTime(" + startDate.Year + "," + startDate.Month + "," + startDate.Day + "," + startDate.Hour + "," + startDate.Minute + "," + startDate.Second + ")");
                    query.Append(" && " + parameter.Column + "<=DateTime(" + endDate.Year + "," + endDate.Month + "," + endDate.Day + "," + endDate.Hour + "," + endDate.Minute + "," + endDate.Second + ")");
                }

                break;
            }

            case "time":
            {
                var date = new DateTime();

                DateTime.TryParse(parameter.Value, out date);

                var timeSpan = new TimeSpan(date.Hour, date.Minute, date.Second);

                if (date != new DateTime())
                {
                    query.Append(" && " + parameter.Column + "==TimeSpan(" + date.Hour + "," + date.Minute + "," + date.Second + ")");
                }

                break;
            }

            case "enum":
            {
                // TODO
                // Create nuget package for enum utilities and get it from there, we need to decouple project dependencies
                //EnumHelper.GetValueOf(parameter.ColumnType, parameter.Value);
                EnumAgent.Utilities.ConvertFromString(parameter.ColumnType, parameter.Value);
                break;
            }

            default:
            {
                break;
            }
            }

            return(query.ToString());
        }
コード例 #14
0
        public async Task <ActionResult <WithdrawalFormRespObj> > GetWithdrawalByIdAsync([FromQuery] SearchObj search)
        {
            if (search.SearchId < 1)
            {
                return(new WithdrawalFormRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "ChangeOfRates Id is required"
                        }
                    }
                });
            }

            var response = await _repo.GetWithdrawalByIdAsync(search.SearchId);

            var resplist = new List <deposit_withdrawalform> {
                response
            };

            return(new WithdrawalFormRespObj
            {
                WithdrawalForms = _mapper.Map <List <WithdrawalFormObj> >(resplist),
            });
        }
コード例 #15
0
        public async Task <ActionResult <ChangeOfRateSetupRespObj> > GetChangeOfRatesSetupByIdAsync([FromQuery] SearchObj search)
        {
            if (search.SearchId < 1)
            {
                return(new ChangeOfRateSetupRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "ChangeOfRateSetup Id is required"
                        }
                    }
                });
            }

            var response = await _repo.GetChangeOfRatesSetupByIdAsync(search.SearchId);

            var resplist = new List <deposit_changeofratesetup> {
                response
            };

            return(new ChangeOfRateSetupRespObj
            {
                ChangeOfRateSetups = _mapper.Map <List <ChangeOfRateSetupObj> >(resplist),
            });
        }
コード例 #16
0
 public async Task <ActionResult <LoanReviewListObjRespObj> > GetAllRunningLoan([FromBody] SearchObj model)
 {
     try
     {
         var response = _repo.GetAllRunningLoan(model.SearchString, model.CustomerTypeId, model.ProductTypeId);
         return(new LoanReviewListObjRespObj
         {
             LoanReviewList = response,
         });
     }
     catch (Exception ex)
     {
         var errorCode = ErrorID.Generate(5);
         _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
         return(new LoanReviewListObjRespObj
         {
             Status = new APIResponseStatus {
                 IsSuccessful = false, Message = new APIResponseMessage {
                     FriendlyMessage = "Error Occurred", TechnicalMessage = ex?.Message, MessageId = errorCode
                 }
             }
         });
     }
 }
コード例 #17
0
        public async Task <ActionResult <AccountSetupRespObj> > GetAccountSetupByIdAsync([FromQuery] SearchObj search)
        {
            if (search.SearchId < 1)
            {
                return(new AccountSetupRespObj
                {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage {
                            FriendlyMessage = "AccountSetup Id is required"
                        }
                    }
                });
            }

            var response = await _repo.GetAccountSetupByIdAsync(search.SearchId);

            var resplist = new List <DepositAccountObj> {
                response
            };

            return(new AccountSetupRespObj
            {
                DepositAccounts = resplist,
            });
        }