0

現在、ユーザーがファーストネームとセカンドネームを入力しても結果を表示する剣道 UI オートコンプリートを取得しようとしています。現時点では、オートコンプリートに姓または名が含まれている場合、コードが機能しています。たとえば、'Peter S' が入力された場合でも、'Peter Smith' と 'Peter Samsung' の結果が表示されます。誰かが私のコードを見て、正しい方向に私を向けることができれば、それは素晴らしいことです. 私はこれに多くの時間を費やしてきましたが、間違ったアプローチを取っているのではないかと思います.

以下のコード:

                $("#FeeEarnerEmailSend").kendoAutoComplete({
                    dataSource: new kendo.data.DataSource({
                        serverFiltering: true,
                        transport: {
                            read: "/" + prefix + "/api/Session/GetEmployees",
                            parameterMap: function () {
                                return { id: $("#FeeEarnerEmailSend").data("kendoAutoComplete").value() };
                            }
                        }
                    }),
                    dataTextField: 'FullName',
                    filter: "contains",
                    //placeholder: "Search...",
                    minLength: 3,
                    suggest: true,
                    select: function (e) {
                        var employeeAutoComplete = e.sender;
                        // this var is used in the Search button click event
                        selectedEmployeeDataItem = employeeAutoComplete.dataItem(e.item.index());
                    },
                    change: function () {
                        if ($.trim($("#FeeEarnerEmailSend").val()) == "") {
                            selectedEmployeeDataItem = null;
                        }
                    },
                    dataBound: function (e) {
                        selectedEmployeeDataItem = e.sender.dataItem(0);

                    }
                });

これは私の Csharp コードです。問題は、これを達成するために編集する必要がある私の linq 内にあると思いますか?

     [HttpGet]
    [Route("api/Session/GetEmployees")]
    public IHttpActionResult GetEmployees(string id)
    {
        logger.Trace("Get Employees - {0} -  based on prefix", id);
        try 
        { 
            DirectoryContext context = new DirectoryContext(new Uri(ConfigurationManager.AppSettings["DirectoryServiceUrl"]));

            var result = from q in context.Employees
                         where q.Surname.Contains(id) || q.KnownAs.Contains(id)
                         orderby q.Surname, q.KnownAs
                         select new
                         {
                             NetworkId = q.NetworkID,
                             FullName = String.Format("{0} {1}", q.Surname.ToUpper(), q.KnownAs),
                             EmailAddress = q.EmailAddress
                         };
            logger.Info("Returning Employees - {0}", id);
            return Ok(result.ToList());


        }
        catch (Exception ex)
        {
            logger.Error(ex.Message, ex);
            return InternalServerError(ex);
        }
    }
4

0 に答える 0