Ejemplo n.º 1
0
    public static List <MyModel> AutoComplete(string term, string SearchBy)
    {
        using (var repository = new MyDataContext())
        {
            if (SearchBy == "Tag")
            {
                var tech      = repository.AllFindTechnolog(term.Trim()).ToList();
                var resources = repository.GetResources(tech.Select(a => a.IT360ID.Value).ToArray(), false).ToList();
                var query     = from techItems in tech
                                join resourcesItems in resources
                                on techItems.IT360ID.Value equals resourcesItems.RESOURCEID // join based on db2ID
                                orderby techItems.PartialTag
                                select new MyModel {
                    extra = true, label = techItems.Tag.ToString(), techtype = techItems.TechnologyType.Name, status = resourcesItems.ResourceState.DISPLAYSTATE, customername = resourcesItems.ResourceLocation.SiteDefinition.AccountDefinition.ORG_NAME.ToString(), resourcename = resourcesItems.RESOURCENAME.ToString(), sitename = resourcesItems.ResourceLocation.SiteDefinition.SDOrganization.NAME
                };

                return(query.ToList());
            }
            else
            {
                var activeResources = repository.FindActiveResourceByName(term.Trim(), true).ToList();    //.OrderBy(p => p.RESOURCENAME).Select(a => new { label = a.RESOURCENAME }).ToList();
                var resources       = repository.GetResources(activeResources.Select(a => a.RESOURCEID).ToArray(), false).ToList();
                var tech            = repository.getTechnologiesByIT360ids(activeResources.Select(a => a.RESOURCEID).ToArray()).ToList();
                var query           = from techItems in tech
                                      join resourcesItems in resources
                                      on techItems.IT360ID.Value equals resourcesItems.RESOURCEID // join based on db2ID
                                      orderby techItems.Tag
                                      select new MyModel {
                    extra = true, label = resourcesItems.RESOURCENAME.ToString(), techtype = techItems.TechnologyType.Name, status = resourcesItems.ResourceState.DISPLAYSTATE, customername = resourcesItems.ResourceLocation.SiteDefinition.AccountDefinition.ORG_NAME.ToString(), resourcename = techItems.Tag.ToString(), sitename = resourcesItems.ResourceLocation.SiteDefinition.SDOrganization.NAME
                };

                return(query.ToList());
            }
        }
    }