public ActionResult Index(string sort, string content) { if (content != "news" && content != "tips" && content != "recipes") { content = "news"; } var vm = new SortResultViewModel { NewsNotFound = true, TipNotFound = true, RecipeNotFound = true } ; // Criteria object to pass to repository var criteria = new SortCriteria(); criteria.OrderBy = Sort.GetSortKey(sort); criteria.Content = content; var feedback1 = _newsRepository.SortNews(criteria, 5); var feedback2 = _tipRepository.SortTips(criteria, 5); var feedback3 = _recipeRepository.SortRecipes(criteria, 5); if (feedback1.Success && feedback2.Success) { vm.News = feedback1.News; vm.Tips = feedback2.Tips; vm.Recipes = feedback3.Recipes; vm.OrderBy = criteria.OrderBy; vm.Content = criteria.Content; vm.NewsNotFound = vm.News.Count == 0; vm.TipNotFound = vm.Tips.Count == 0; vm.RecipeNotFound = vm.Recipes.Count == 0; } return View(vm); }
public ActionResult Index(SortCriteria? sortCriteria, LogState? logState) { var result = new SortedLogModel(); if (sortCriteria != null) { result.SortCriteria = (SortCriteria) sortCriteria; } if (logState != null) { result.CurrentState = logState; } result.Sort(facade.GetLogGateway((LoggedInModel)Session["LoginModel"]).GetAll()); return View(result); }
public static PreguntaFormularioModelCollection GetPreguntas(FormularioModel formulario) { //Query subSupQuery = new Query(); //subSupQuery.Distinct = true; //subSupQuery.Select("pf.idPregunta"); //subSupQuery.From("PreguntaFormulario", "pf"); //subSupQuery.Where(new AttributeTest("pf.idFormulario", idFormulario, AttributeTest.EQUAL)); //AttributeTest filterTest = new AttributeTest(); //filterTest.Attribute = "idPregunta"; //filterTest.Value = subSupQuery; //filterTest.Operator = AttributeTest.IN; //SortCriteria sort = new SortCriteria(); //sort.Add("idPregunta", (int)SortOrderType.Ascending); //Query filterQuery = new Query(); //filterQuery.Where(filterTest); //filterQuery.SortCriteria = sort; // Pregunta.FindWithQuery(filterQuery) AttributeTest filterTest = new AttributeTest(); filterTest.Attribute = "idFormulario"; filterTest.Value = formulario.IdFormulario; filterTest.Operator = AttributeTest.EQUAL; SortCriteria sort = new SortCriteria(); sort.Add("idPregunta", (int)SortOrderType.Ascending); Query filterQuery = new Query(); filterQuery.Where(filterTest); filterQuery.SortCriteria = sort; return new PreguntaFormularioModelCollection(PreguntaFormulario.FindWithQuery(filterQuery)); }
/// <summary> /// Gets the contacts. /// </summary> /// <param name="contactId">The contact identifier.</param> /// <param name="media">The media.</param> /// <param name="tenantId">The tenant identifier.</param> /// <returns></returns> public static OutputValues GetContacts(SearchCriteriaCollection searchCriteriaCollection, string contactID, int tenantId, int pagemaxSize, List <string> attributesNames) { Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); OutputValues output = OutputValues.GetInstance(); try { RequestGetInteractionsForContact requestGetContacts = RequestGetInteractionsForContact.Create(); requestGetContacts.DataSource = new NullableDataSourceType(DataSourceType.Main); requestGetContacts.SortCriteria = new SortCriteriaCollection(); SortCriteriaCollection sortCC = new SortCriteriaCollection(); SortCriteria sortc = new SortCriteria() { AttrName = InteractionSearchCriteriaConstants.StartDate, SortOperator = new NullableSortMode(SortMode.Descending), SortIndex = 0 }; sortCC.Add(sortc); requestGetContacts.SortCriteria = sortCC; requestGetContacts.SearchCriteria = searchCriteriaCollection; StringList stringList = new StringList(); if (attributesNames != null && attributesNames.Count > 0) { for (int index = 0; index < attributesNames.Count; index++) { stringList.Add(attributesNames[index]); } } requestGetContacts.AttributeList = stringList; requestGetContacts.TenantId = tenantId; requestGetContacts.ContactId = contactID; if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened) { logger.Info("---------------------------------------------------------"); IMessage message = Settings.UCSProtocol.Request(requestGetContacts); if (message != null) { logger.Trace(message.ToString()); output.IContactMessage = message; output.MessageCode = "200"; output.Message = "Get Interactions For Contact Successful"; } else { output.IContactMessage = null; output.MessageCode = "2001"; output.Message = "Don't Get Interactions For Contact Successful"; } } else { output.IContactMessage = null; output.MessageCode = "2001"; output.Message = "Universal Contact Server protocol is Null or Closed"; logger.Warn("GetContacts() : Universal Contact Server protocol is Null.."); } } catch (Exception generalException) { logger.Error("Error Occurred while Get Interactions For Contact request" + generalException.ToString()); output.IContactMessage = null; output.MessageCode = "2001"; output.Message = generalException.Message; } return(output); }
private IEnumerable <KeyValuePair <string, string> > HandleSearch(IDictionary <string, string> sparams, User user, string deviceId) { var searchCriteria = new SearchCriteria(GetValueOrDefault(sparams, "SearchCriteria", "")); var sortCriteria = new SortCriteria(GetValueOrDefault(sparams, "SortCriteria", "")); var filter = new Filter(GetValueOrDefault(sparams, "Filter", "*")); // sort example: dc:title, dc:date // Default to null instead of 0 // Upnp inspector sends 0 as requestedCount when it wants everything int?requestedCount = null; int?start = 0; int requestedVal; if (sparams.ContainsKey("RequestedCount") && int.TryParse(sparams["RequestedCount"], out requestedVal) && requestedVal > 0) { requestedCount = requestedVal; } int startVal; if (sparams.ContainsKey("StartingIndex") && int.TryParse(sparams["StartingIndex"], out startVal) && startVal > 0) { start = startVal; } var settings = new XmlWriterSettings { Encoding = Encoding.UTF8, CloseOutput = false, OmitXmlDeclaration = true, ConformanceLevel = ConformanceLevel.Fragment }; StringWriter builder = new StringWriterWithEncoding(Encoding.UTF8); int totalCount = 0; int provided = 0; using (XmlWriter writer = XmlWriter.Create(builder, settings)) { //writer.WriteStartDocument(); writer.WriteStartElement(string.Empty, "DIDL-Lite", NS_DIDL); writer.WriteAttributeString("xmlns", "dc", null, NS_DC); writer.WriteAttributeString("xmlns", "dlna", null, NS_DLNA); writer.WriteAttributeString("xmlns", "upnp", null, NS_UPNP); //didl.SetAttribute("xmlns:sec", NS_SEC); DidlBuilder.WriteXmlRootAttributes(_profile, writer); var serverItem = GetItemFromObjectId(sparams["ContainerID"], user); var item = serverItem.Item; var childrenResult = (GetChildrenSorted(item, user, searchCriteria, sortCriteria, start, requestedCount)); totalCount = childrenResult.TotalRecordCount; provided = childrenResult.Items.Length; foreach (var i in childrenResult.Items) { if (i.IsDisplayedAsFolder) { var childCount = (GetChildrenSorted(i, user, searchCriteria, sortCriteria, null, 0)) .TotalRecordCount; _didlBuilder.WriteFolderElement(writer, i, null, item, childCount, filter); } else { _didlBuilder.WriteItemElement(_config.GetDlnaConfiguration(), writer, i, user, item, serverItem.StubType, deviceId, filter); } } writer.WriteFullEndElement(); //writer.WriteEndDocument(); } var resXML = builder.ToString(); return(new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("Result", resXML), new KeyValuePair <string, string>("NumberReturned", provided.ToString(_usCulture)), new KeyValuePair <string, string>("TotalMatches", totalCount.ToString(_usCulture)), new KeyValuePair <string, string>("UpdateID", _systemUpdateId.ToString(_usCulture)) }); }
private async Task <QueryResult <ServerItem> > GetUserItems(BaseItem item, StubType?stubType, User user, SortCriteria sort, int?startIndex, int?limit) { if (stubType.HasValue) { if (stubType.Value == StubType.People) { var items = item.People.Select(i => { try { return(_libraryManager.GetPerson(i.Name)); } catch { return(null); } }).Where(i => i != null).ToArray(); var result = new QueryResult <ServerItem> { Items = items.Select(i => new ServerItem { Item = i, StubType = StubType.Folder }).ToArray(), TotalRecordCount = items.Length }; return(ApplyPaging(result, startIndex, limit)); } if (stubType.Value == StubType.Folder) { var movie = item as Movie; if (movie != null) { return(ApplyPaging(await GetMovieItems(movie).ConfigureAwait(false), startIndex, limit)); } } var person = item as Person; if (person != null) { return(await GetItemsFromPerson(person, user, startIndex, limit).ConfigureAwait(false)); } return(ApplyPaging(new QueryResult <ServerItem>(), startIndex, limit)); } var folder = (Folder)item; var sortOrders = new List <string>(); if (!folder.IsPreSorted) { sortOrders.Add(ItemSortBy.SortName); } var queryResult = await folder.GetItems(new InternalItemsQuery { Limit = limit, StartIndex = startIndex, SortBy = sortOrders.ToArray(), SortOrder = sort.SortOrder, User = user, Filter = FilterUnsupportedContent }).ConfigureAwait(false); var options = _config.GetDlnaConfiguration(); var serverItems = queryResult .Items .Select(i => new ServerItem { Item = i, StubType = GetDisplayStubType(i, item, options) }) .ToArray(); return(new QueryResult <ServerItem> { TotalRecordCount = queryResult.TotalRecordCount, Items = serverItems }); }
public SearchBuilder SetSortBy(SortCriteria sortby) { _searchParameters.SortBy = sortby; return(this); }
public ActionResult ManageTips(GridCommand gridCommand) { ListTipsViewModel vm = new ListTipsViewModel(); // Create PageInfo PageInfo pageInfo; var page = Request.QueryString["Tips-page"]; pageInfo = page == null ? new PageInfo(AppConfigs.DefaultAdminGridPageSize, 1) : new PageInfo(AppConfigs.DefaultAdminGridPageSize, int.Parse(page)); SortCriteria criteria = new SortCriteria(); criteria.PageInfo = pageInfo; var feedback = _tipRepository.GetAllTip(criteria); //Set default value for Total record ViewData["Total"] = 0; if (feedback.Success) { vm.Tips = feedback.Tips; ViewData["Total"] = feedback.Total; } else { SetMessage(feedback.Message, MessageType.Error); } return View(vm); }
private async Task <IEnumerable <KeyValuePair <string, string> > > HandleSearch(Headers sparams, User user, string deviceId) { var searchCriteria = new SearchCriteria(sparams.GetValueOrDefault("SearchCriteria", "")); var sortCriteria = new SortCriteria(sparams.GetValueOrDefault("SortCriteria", "")); var filter = new Filter(sparams.GetValueOrDefault("Filter", "*")); // sort example: dc:title, dc:date // Default to null instead of 0 // Upnp inspector sends 0 as requestedCount when it wants everything int?requestedCount = null; int?start = 0; int requestedVal; if (sparams.ContainsKey("RequestedCount") && int.TryParse(sparams["RequestedCount"], out requestedVal) && requestedVal > 0) { requestedCount = requestedVal; } int startVal; if (sparams.ContainsKey("StartingIndex") && int.TryParse(sparams["StartingIndex"], out startVal) && startVal > 0) { start = startVal; } //var root = GetItem(id) as IMediaFolder; var result = new XmlDocument(); var didl = result.CreateElement(string.Empty, "DIDL-Lite", NS_DIDL); didl.SetAttribute("xmlns:dc", NS_DC); didl.SetAttribute("xmlns:dlna", NS_DLNA); didl.SetAttribute("xmlns:upnp", NS_UPNP); foreach (var att in _profile.XmlRootAttributes) { didl.SetAttribute(att.Name, att.Value); } result.AppendChild(didl); var serverItem = GetItemFromObjectId(sparams["ContainerID"], user); var item = serverItem.Item; var childrenResult = (await GetChildrenSorted(item, user, searchCriteria, sortCriteria, start, requestedCount).ConfigureAwait(false)); var totalCount = childrenResult.TotalRecordCount; var provided = childrenResult.Items.Length; foreach (var i in childrenResult.Items) { if (i.IsFolder) { var childCount = (await GetChildrenSorted(i, user, searchCriteria, sortCriteria, null, 0).ConfigureAwait(false)) .TotalRecordCount; result.DocumentElement.AppendChild(_didlBuilder.GetFolderElement(result, i, null, item, childCount, filter)); } else { result.DocumentElement.AppendChild(_didlBuilder.GetItemElement(result, i, item, serverItem.StubType, deviceId, filter)); } } var resXML = result.OuterXml; return(new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("Result", resXML), new KeyValuePair <string, string>("NumberReturned", provided.ToString(_usCulture)), new KeyValuePair <string, string>("TotalMatches", totalCount.ToString(_usCulture)), new KeyValuePair <string, string>("UpdateID", _systemUpdateId.ToString(_usCulture)) }); }
protected override TabItem <SortCriteria> CreateTabItem(SortCriteria value) => new BeatmapSortTabItem(value) { SortDirection = { BindTarget = SortDirection } };
/// <summary> /// Constructor for the class /// </summary> public DataSourceInfo() { sortCriteria = new SortCriteria(); }
public async Task <PagedResponse <List <Employee> > > GetAll(PaginationFilter filter, SortCriteria criteria) { var result = await appDbContext.Employees .OrderByDynamic(criteria.SortField, criteria.SortOrder.ToUpper()) .Skip((filter.PageNumber - 1) * filter.PageSize) .Take(filter.PageSize) .Include(d => d.Department) .ToListAsync(); var totalRecords = await appDbContext.Employees.CountAsync(); var pagedResponse = new PagedResponse <List <Employee> >(result, totalRecords, filter.PageNumber, filter.PageSize); return(pagedResponse); }
private async Task <QueryResult <ServerItem> > GetUserItems(BaseItem item, StubType?stubType, User user, SortCriteria sort, int?startIndex, int?limit) { if (stubType.HasValue) { if (stubType.Value == StubType.People) { var items = _libraryManager.GetPeopleItems(new InternalPeopleQuery { ItemId = item.Id }).ToArray(); var result = new QueryResult <ServerItem> { Items = items.Select(i => new ServerItem { Item = i, StubType = StubType.Folder }).ToArray(), TotalRecordCount = items.Length }; return(ApplyPaging(result, startIndex, limit)); } if (stubType.Value == StubType.Folder) { var movie = item as Movie; if (movie != null) { return(ApplyPaging(await GetMovieItems(movie).ConfigureAwait(false), startIndex, limit)); } } var person = item as Person; if (person != null) { return(GetItemsFromPerson(person, user, startIndex, limit)); } return(ApplyPaging(new QueryResult <ServerItem>(), startIndex, limit)); } var folder = (Folder)item; var sortOrders = new List <string>(); if (!folder.IsPreSorted) { sortOrders.Add(ItemSortBy.SortName); } var queryResult = await folder.GetItems(new InternalItemsQuery { Limit = limit, StartIndex = startIndex, SortBy = sortOrders.ToArray(), SortOrder = sort.SortOrder, User = user, IsMissing = false, PresetViews = new[] { CollectionType.Movies, CollectionType.TvShows, CollectionType.Music }, ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name }, IsPlaceHolder = false }).ConfigureAwait(false); var options = _config.GetDlnaConfiguration(); var serverItems = queryResult .Items .Select(i => new ServerItem { Item = i, StubType = GetDisplayStubType(i, item, options) }) .ToArray(); return(new QueryResult <ServerItem> { TotalRecordCount = queryResult.TotalRecordCount, Items = serverItems }); }
private SortCriteria criteria; //критерий сортировки public EmployeeSortByCriteria(SortCriteria criteria) //конструктор с критерием сортировки { this.criteria = criteria; }
public SortOrder(SortCriteria sortingtype) { this.SortingOrder = sortingtype; }
public SortedLogModel() { SortCriteria = SortCriteria.Both; }
private QueryResult <ServerItem> GetUserItems(BaseItem item, StubType?stubType, User user, SortCriteria sort, int?startIndex, int?limit) { if (item is MusicGenre) { return(GetMusicGenreItems(item, null, user, sort, startIndex, limit)); } if (item is MusicArtist) { return(GetMusicArtistItems(item, null, user, sort, startIndex, limit)); } var collectionFolder = item as ICollectionFolder; if (collectionFolder != null && string.Equals(CollectionType.Music, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) { return(GetMusicFolders(item, user, stubType, sort, startIndex, limit)); } if (collectionFolder != null && string.Equals(CollectionType.Movies, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) { return(GetMovieFolders(item, user, stubType, sort, startIndex, limit)); } if (collectionFolder != null && string.Equals(CollectionType.TvShows, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) { return(GetTvFolders(item, user, stubType, sort, startIndex, limit)); } if (stubType.HasValue) { if (stubType.Value == StubType.People) { var items = _libraryManager.GetPeopleItems(new InternalPeopleQuery { ItemId = item.Id }); var result = new QueryResult <ServerItem> { Items = items.Select(i => new ServerItem(i)).ToArray(items.Count), TotalRecordCount = items.Count }; return(ApplyPaging(result, startIndex, limit)); } var person = item as Person; if (person != null) { return(GetItemsFromPerson(person, user, startIndex, limit)); } return(ApplyPaging(new QueryResult <ServerItem>(), startIndex, limit)); } var folder = (Folder)item; var query = new InternalItemsQuery { Limit = limit, StartIndex = startIndex, User = user, IsVirtualItem = false, PresetViews = new string[] { }, ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name }, IsPlaceHolder = false, DtoOptions = GetDtoOptions() }; SetSorting(query, sort, folder.IsPreSorted); var queryResult = folder.GetItems(query); return(ToResult(queryResult)); }
protected override TabButton CreateTabButton(SortCriteria value) => new BeatmapTabButton(value) { Active = { BindTarget = Active }, SortDirection = { BindTarget = SortDirection } };
private async Task <QueryResult <ServerItem> > GetUserItems(BaseItem item, StubType?stubType, User user, SortCriteria sort, int?startIndex, int?limit) { if (item is MusicGenre) { return(GetMusicGenreItems(item, null, user, sort, startIndex, limit)); } if (item is MusicArtist) { return(GetMusicArtistItems(item, null, user, sort, startIndex, limit)); } if (stubType.HasValue) { if (stubType.Value == StubType.People) { var items = _libraryManager.GetPeopleItems(new InternalPeopleQuery { ItemId = item.Id }).ToArray(); var result = new QueryResult <ServerItem> { Items = items.Select(i => new ServerItem(i)).ToArray(), TotalRecordCount = items.Length }; return(ApplyPaging(result, startIndex, limit)); } var person = item as Person; if (person != null) { return(GetItemsFromPerson(person, user, startIndex, limit)); } return(ApplyPaging(new QueryResult <ServerItem>(), startIndex, limit)); } var folder = (Folder)item; var query = new InternalItemsQuery { Limit = limit, StartIndex = startIndex, User = user, IsMissing = false, PresetViews = new[] { CollectionType.Movies, CollectionType.TvShows, CollectionType.Music }, ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name }, IsPlaceHolder = false }; SetSorting(query, sort, folder.IsPreSorted); var queryResult = await folder.GetItems(query).ConfigureAwait(false); return(ToResult(queryResult)); }
public ActionResult TipCategoryIndexMore(int id, string sort, int page = 1) { ListTipViewModel vm = null; SortCriteria criteria = new SortCriteria(); criteria.OrderBy = Sort.GetSortKey(sort); criteria.PageInfo = new PageInfo(AppConfigs.TipPageSize, page); var feedback = _tipRepository.GetTipByCatogory(id, criteria); if (feedback.Success) { vm = new ListTipViewModel { TipCategoryName = feedback.TipCategoryName, Tips = feedback.Tips, Page = criteria.PageInfo.PageNo, HasMore = feedback.Total > criteria.PageInfo.PageSize * criteria.PageInfo.PageNo, OrderBy = criteria.OrderBy, Sort = sort, TipCategoryId = id }; return View(vm); } SetMessage(feedback.Message, MessageType.Error); return View(vm); }
public BeatmapSortTabItem(SortCriteria value) : base(value) { }
private async Task <QueryResult <BaseItem> > GetUserItems(BaseItem item, StubType?stubType, User user, SortCriteria sort, int?startIndex, int?limit) { if (stubType.HasValue) { var movie = item as Movie; if (movie != null) { return(await GetMovieItems(movie).ConfigureAwait(false)); } } var folder = (Folder)item; var sortOrders = new List <string>(); if (!folder.IsPreSorted) { sortOrders.Add(ItemSortBy.SortName); } return(await folder.GetItems(new InternalItemsQuery { Limit = limit, StartIndex = startIndex, SortBy = sortOrders.ToArray(), SortOrder = sort.SortOrder, User = user, Filter = FilterUnsupportedContent }).ConfigureAwait(false)); }
private QueryResult <ServerItem> GetUserItems(BaseItem item, StubType?stubType, User user, SortCriteria sort, int?startIndex, int?limit) { if (item is MusicGenre) { return(GetMusicGenreItems(item, Guid.Empty, user, sort, startIndex, limit)); } if (item is MusicArtist) { return(GetMusicArtistItems(item, Guid.Empty, user, sort, startIndex, limit)); } if (item is Genre) { return(GetGenreItems(item, Guid.Empty, user, sort, startIndex, limit)); } if (!stubType.HasValue || stubType.Value != StubType.Folder) { var collectionFolder = item as IHasCollectionType; if (collectionFolder != null && string.Equals(CollectionType.Music, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) { return(GetMusicFolders(item, user, stubType, sort, startIndex, limit)); } if (collectionFolder != null && string.Equals(CollectionType.Movies, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) { return(GetMovieFolders(item, user, stubType, sort, startIndex, limit)); } if (collectionFolder != null && string.Equals(CollectionType.TvShows, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) { return(GetTvFolders(item, user, stubType, sort, startIndex, limit)); } if (collectionFolder != null && string.Equals(CollectionType.Folders, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) { return(GetFolders(item, user, stubType, sort, startIndex, limit)); } if (collectionFolder != null && string.Equals(CollectionType.LiveTv, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) { return(GetLiveTvChannels(item, user, stubType, sort, startIndex, limit)); } } if (stubType.HasValue) { if (stubType.Value != StubType.Folder) { return(ApplyPaging(new QueryResult <ServerItem>(), startIndex, limit)); } } var folder = (Folder)item; var query = new InternalItemsQuery(user) { Limit = limit, StartIndex = startIndex, IsVirtualItem = false, ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name }, IsPlaceHolder = false, DtoOptions = GetDtoOptions() }; SetSorting(query, sort, folder.IsPreSorted); var queryResult = folder.GetItems(query); return(ToResult(queryResult)); }
private async Task <IEnumerable <KeyValuePair <string, string> > > HandleBrowse(Headers sparams, User user, string deviceId) { var id = sparams["ObjectID"]; var flag = sparams["BrowseFlag"]; var filter = new Filter(sparams.GetValueOrDefault("Filter", "*")); var sortCriteria = new SortCriteria(sparams.GetValueOrDefault("SortCriteria", "")); var provided = 0; // Default to null instead of 0 // Upnp inspector sends 0 as requestedCount when it wants everything int?requestedCount = null; int?start = 0; int requestedVal; if (sparams.ContainsKey("RequestedCount") && int.TryParse(sparams["RequestedCount"], out requestedVal) && requestedVal > 0) { requestedCount = requestedVal; } int startVal; if (sparams.ContainsKey("StartingIndex") && int.TryParse(sparams["StartingIndex"], out startVal) && startVal > 0) { start = startVal; } //var root = GetItem(id) as IMediaFolder; var result = new XmlDocument(); var didl = result.CreateElement(string.Empty, "DIDL-Lite", NS_DIDL); didl.SetAttribute("xmlns:dc", NS_DC); didl.SetAttribute("xmlns:dlna", NS_DLNA); didl.SetAttribute("xmlns:upnp", NS_UPNP); //didl.SetAttribute("xmlns:sec", NS_SEC); result.AppendChild(didl); var serverItem = GetItemFromObjectId(id, user); var item = serverItem.Item; int totalCount; if (string.Equals(flag, "BrowseMetadata")) { totalCount = 1; if (item.IsFolder || serverItem.StubType.HasValue) { var childrenResult = (await GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount).ConfigureAwait(false)); result.DocumentElement.AppendChild(_didlBuilder.GetFolderElement(result, item, serverItem.StubType, null, childrenResult.TotalRecordCount, filter, id)); } else { result.DocumentElement.AppendChild(_didlBuilder.GetItemElement(result, item, null, null, deviceId, filter)); } provided++; } else { var childrenResult = (await GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount).ConfigureAwait(false)); totalCount = childrenResult.TotalRecordCount; provided = childrenResult.Items.Length; foreach (var i in childrenResult.Items) { var childItem = i.Item; var displayStubType = i.StubType; if (childItem.IsFolder || displayStubType.HasValue) { var childCount = (await GetUserItems(childItem, displayStubType, user, sortCriteria, null, 0).ConfigureAwait(false)) .TotalRecordCount; result.DocumentElement.AppendChild(_didlBuilder.GetFolderElement(result, childItem, displayStubType, item, childCount, filter)); } else { result.DocumentElement.AppendChild(_didlBuilder.GetItemElement(result, childItem, item, serverItem.StubType, deviceId, filter)); } } } var resXML = result.OuterXml; return(new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("Result", resXML), new KeyValuePair <string, string>("NumberReturned", provided.ToString(_usCulture)), new KeyValuePair <string, string>("TotalMatches", totalCount.ToString(_usCulture)), new KeyValuePair <string, string>("UpdateID", _systemUpdateId.ToString(_usCulture)) }); }
private QueryResult <ServerItem> GetLiveTvChannels(BaseItem item, User user, StubType?stubType, SortCriteria sort, int?startIndex, int?limit) { var query = new InternalItemsQuery(user) { StartIndex = startIndex, Limit = limit, }; query.IncludeItemTypes = new[] { typeof(LiveTvChannel).Name }; SetSorting(query, sort, false); var result = _libraryManager.GetItemsResult(query); return(ToResult(result)); }
private Task <QueryResult <BaseItem> > GetChildrenSorted(BaseItem item, User user, SearchCriteria search, SortCriteria sort, int?startIndex, int?limit) { var folder = (Folder)item; var sortOrders = new List <string>(); if (!folder.IsPreSorted) { sortOrders.Add(ItemSortBy.SortName); } var mediaTypes = new List <string>(); bool?isFolder = null; if (search.SearchType == SearchType.Audio) { mediaTypes.Add(MediaType.Audio); isFolder = false; } else if (search.SearchType == SearchType.Video) { mediaTypes.Add(MediaType.Video); isFolder = false; } else if (search.SearchType == SearchType.Image) { mediaTypes.Add(MediaType.Photo); isFolder = false; } else if (search.SearchType == SearchType.Playlist) { //items = items.OfType<Playlist>(); isFolder = true; } else if (search.SearchType == SearchType.MusicAlbum) { //items = items.OfType<MusicAlbum>(); isFolder = true; } return(folder.GetItems(new InternalItemsQuery { Limit = limit, StartIndex = startIndex, SortBy = sortOrders.ToArray(), SortOrder = sort.SortOrder, User = user, Recursive = true, Filter = FilterUnsupportedContent, IsFolder = isFolder, MediaTypes = mediaTypes.ToArray() })); }
private QueryResult <ServerItem> GetFolders(BaseItem item, User user, StubType?stubType, SortCriteria sort, int?startIndex, int?limit) { var folders = _libraryManager.GetUserRootFolder().GetChildren(user, true) .OrderBy(i => i.SortName) .Select(i => new ServerItem(i) { StubType = StubType.Folder }) .ToArray(); return(new QueryResult <ServerItem> { Items = folders, TotalRecordCount = folders.Length }); }
public DuckComparer(SortCriteria sortCriterion) { SortCriterion = sortCriterion; }
private QueryResult <ServerItem> GetTvFolders(BaseItem item, User user, StubType?stubType, SortCriteria sort, int?startIndex, int?limit) { var query = new InternalItemsQuery(user) { StartIndex = startIndex, Limit = limit }; SetSorting(query, sort, false); if (stubType.HasValue && stubType.Value == StubType.ContinueWatching) { return(GetMovieContinueWatching(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.NextUp) { return(GetNextUp(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.Latest) { return(GetTvLatest(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.Series) { return(GetSeries(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.FavoriteSeries) { return(GetFavoriteSeries(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.FavoriteEpisodes) { return(GetFavoriteEpisodes(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.Genres) { return(GetGenres(item, user, query)); } var list = new List <ServerItem>(); list.Add(new ServerItem(item) { StubType = StubType.ContinueWatching }); list.Add(new ServerItem(item) { StubType = StubType.NextUp }); list.Add(new ServerItem(item) { StubType = StubType.Latest }); list.Add(new ServerItem(item) { StubType = StubType.Series }); list.Add(new ServerItem(item) { StubType = StubType.FavoriteSeries }); list.Add(new ServerItem(item) { StubType = StubType.FavoriteEpisodes }); list.Add(new ServerItem(item) { StubType = StubType.Genres }); return(new QueryResult <ServerItem> { Items = list.ToArray(), TotalRecordCount = list.Count }); }
public Matrix SortMatrix(Matrix matrix, SortCriteria SortBy) { if (SortBy == SortCriteria.RowSum) { } }
private void CardsSort() { SortCriteria criterium = (SortCriteria)sortCardsComboBox.SelectedIndex; GameController.Sort(criterium); }
private QueryResult <ServerItem> GetMusicGenreItems(BaseItem item, Guid?parentId, User user, SortCriteria sort, int?startIndex, int?limit) { var query = new InternalItemsQuery(user) { Recursive = true, ParentId = parentId, GenreIds = new[] { item.Id.ToString("N") }, IncludeItemTypes = new[] { typeof(MusicAlbum).Name }, Limit = limit, StartIndex = startIndex, DtoOptions = GetDtoOptions() }; SetSorting(query, sort, false); var result = _libraryManager.GetItemsResult(query); return(ToResult(result)); }
private void HandleBrowse(XmlWriter xmlWriter, IDictionary <string, string> sparams, string deviceId) { var id = sparams["ObjectID"]; var flag = sparams["BrowseFlag"]; var filter = new Filter(GetValueOrDefault(sparams, "Filter", "*")); var sortCriteria = new SortCriteria(GetValueOrDefault(sparams, "SortCriteria", "")); var provided = 0; // Default to null instead of 0 // Upnp inspector sends 0 as requestedCount when it wants everything int?requestedCount = null; int?start = 0; if (sparams.ContainsKey("RequestedCount") && int.TryParse(sparams["RequestedCount"], out var requestedVal) && requestedVal > 0) { requestedCount = requestedVal; } if (sparams.ContainsKey("StartingIndex") && int.TryParse(sparams["StartingIndex"], out var startVal) && startVal > 0) { start = startVal; } int totalCount; using (StringWriter builder = new StringWriterWithEncoding(Encoding.UTF8)) { var settings = new XmlWriterSettings() { Encoding = Encoding.UTF8, CloseOutput = false, OmitXmlDeclaration = true, ConformanceLevel = ConformanceLevel.Fragment }; using (var writer = XmlWriter.Create(builder, settings)) { writer.WriteStartElement(string.Empty, "DIDL-Lite", NS_DIDL); writer.WriteAttributeString("xmlns", "dc", null, NS_DC); writer.WriteAttributeString("xmlns", "dlna", null, NS_DLNA); writer.WriteAttributeString("xmlns", "upnp", null, NS_UPNP); DidlBuilder.WriteXmlRootAttributes(_profile, writer); var serverItem = GetItemFromObjectId(id); var item = serverItem.Item; if (string.Equals(flag, "BrowseMetadata", StringComparison.Ordinal)) { totalCount = 1; if (item.IsDisplayedAsFolder || serverItem.StubType.HasValue) { var childrenResult = GetUserItems(item, serverItem.StubType, _user, sortCriteria, start, requestedCount); _didlBuilder.WriteFolderElement(writer, item, serverItem.StubType, null, childrenResult.TotalRecordCount, filter, id); } else { var dlnaOptions = _config.GetDlnaConfiguration(); _didlBuilder.WriteItemElement(writer, item, _user, null, null, deviceId, filter); } provided++; } else { var childrenResult = GetUserItems(item, serverItem.StubType, _user, sortCriteria, start, requestedCount); totalCount = childrenResult.TotalRecordCount; provided = childrenResult.Items.Count; var dlnaOptions = _config.GetDlnaConfiguration(); foreach (var i in childrenResult.Items) { var childItem = i.Item; var displayStubType = i.StubType; if (childItem.IsDisplayedAsFolder || displayStubType.HasValue) { var childCount = GetUserItems(childItem, displayStubType, _user, sortCriteria, null, 0) .TotalRecordCount; _didlBuilder.WriteFolderElement(writer, childItem, displayStubType, item, childCount, filter); } else { _didlBuilder.WriteItemElement(writer, childItem, _user, item, serverItem.StubType, deviceId, filter); } } } writer.WriteFullEndElement(); } xmlWriter.WriteElementString("Result", builder.ToString()); } xmlWriter.WriteElementString("NumberReturned", provided.ToString(CultureInfo.InvariantCulture)); xmlWriter.WriteElementString("TotalMatches", totalCount.ToString(CultureInfo.InvariantCulture)); xmlWriter.WriteElementString("UpdateID", _systemUpdateId.ToString(CultureInfo.InvariantCulture)); }
private QueryResult <BaseItem> GetChildrenSorted(BaseItem item, User user, SearchCriteria search, SortCriteria sort, int?startIndex, int?limit) { var folder = (Folder)item; var sortOrders = new List <string>(); if (!folder.IsPreSorted) { sortOrders.Add(ItemSortBy.SortName); } var mediaTypes = new List <string>(); bool?isFolder = null; if (search.SearchType == SearchType.Audio) { mediaTypes.Add(MediaType.Audio); isFolder = false; } else if (search.SearchType == SearchType.Video) { mediaTypes.Add(MediaType.Video); isFolder = false; } else if (search.SearchType == SearchType.Image) { mediaTypes.Add(MediaType.Photo); isFolder = false; } else if (search.SearchType == SearchType.Playlist) { //items = items.OfType<Playlist>(); isFolder = true; } else if (search.SearchType == SearchType.MusicAlbum) { //items = items.OfType<MusicAlbum>(); isFolder = true; } return(folder.GetItems(new InternalItemsQuery { Limit = limit, StartIndex = startIndex, SortBy = sortOrders.ToArray(sortOrders.Count), SortOrder = sort.SortOrder, User = user, Recursive = true, IsMissing = false, ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name }, IsFolder = isFolder, MediaTypes = mediaTypes.ToArray(mediaTypes.Count), DtoOptions = GetDtoOptions() })); }
private void HandleSearch(XmlWriter xmlWriter, IDictionary <string, string> sparams, string deviceId) { var searchCriteria = new SearchCriteria(GetValueOrDefault(sparams, "SearchCriteria", "")); var sortCriteria = new SortCriteria(GetValueOrDefault(sparams, "SortCriteria", "")); var filter = new Filter(GetValueOrDefault(sparams, "Filter", "*")); // sort example: dc:title, dc:date // Default to null instead of 0 // Upnp inspector sends 0 as requestedCount when it wants everything int?requestedCount = null; int?start = 0; if (sparams.ContainsKey("RequestedCount") && int.TryParse(sparams["RequestedCount"], out var requestedVal) && requestedVal > 0) { requestedCount = requestedVal; } if (sparams.ContainsKey("StartingIndex") && int.TryParse(sparams["StartingIndex"], out var startVal) && startVal > 0) { start = startVal; } QueryResult <BaseItem> childrenResult; using (StringWriter builder = new StringWriterWithEncoding(Encoding.UTF8)) { var settings = new XmlWriterSettings() { Encoding = Encoding.UTF8, CloseOutput = false, OmitXmlDeclaration = true, ConformanceLevel = ConformanceLevel.Fragment }; using (var writer = XmlWriter.Create(builder, settings)) { writer.WriteStartElement(string.Empty, "DIDL-Lite", NS_DIDL); writer.WriteAttributeString("xmlns", "dc", null, NS_DC); writer.WriteAttributeString("xmlns", "dlna", null, NS_DLNA); writer.WriteAttributeString("xmlns", "upnp", null, NS_UPNP); DidlBuilder.WriteXmlRootAttributes(_profile, writer); var serverItem = GetItemFromObjectId(sparams["ContainerID"]); var item = serverItem.Item; childrenResult = GetChildrenSorted(item, _user, searchCriteria, sortCriteria, start, requestedCount); var dlnaOptions = _config.GetDlnaConfiguration(); foreach (var i in childrenResult.Items) { if (i.IsDisplayedAsFolder) { var childCount = GetChildrenSorted(i, _user, searchCriteria, sortCriteria, null, 0) .TotalRecordCount; _didlBuilder.WriteFolderElement(writer, i, null, item, childCount, filter); } else { _didlBuilder.WriteItemElement(writer, i, _user, item, serverItem.StubType, deviceId, filter); } } writer.WriteFullEndElement(); } xmlWriter.WriteElementString("Result", builder.ToString()); } xmlWriter.WriteElementString("NumberReturned", childrenResult.Items.Count.ToString(CultureInfo.InvariantCulture)); xmlWriter.WriteElementString("TotalMatches", childrenResult.TotalRecordCount.ToString(CultureInfo.InvariantCulture)); xmlWriter.WriteElementString("UpdateID", _systemUpdateId.ToString(CultureInfo.InvariantCulture)); }
private QueryResult <ServerItem> GetMusicFolders(BaseItem item, User user, StubType?stubType, SortCriteria sort, int?startIndex, int?limit) { var query = new InternalItemsQuery(user) { StartIndex = startIndex, Limit = limit }; SetSorting(query, sort, false); if (stubType.HasValue && stubType.Value == StubType.Latest) { return(GetMusicLatest(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.Playlists) { return(GetMusicPlaylists(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.Albums) { return(GetMusicAlbums(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.Artists) { return(GetMusicArtists(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.AlbumArtists) { return(GetMusicAlbumArtists(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.FavoriteAlbums) { return(GetFavoriteAlbums(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.FavoriteArtists) { return(GetFavoriteArtists(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.FavoriteSongs) { return(GetFavoriteSongs(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.Songs) { return(GetMusicSongs(item, user, query)); } if (stubType.HasValue && stubType.Value == StubType.Genres) { return(GetMusicGenres(item, user, query)); } var list = new List <ServerItem>(); list.Add(new ServerItem(item) { StubType = StubType.Latest }); list.Add(new ServerItem(item) { StubType = StubType.Playlists }); list.Add(new ServerItem(item) { StubType = StubType.Albums }); list.Add(new ServerItem(item) { StubType = StubType.AlbumArtists }); list.Add(new ServerItem(item) { StubType = StubType.Artists }); list.Add(new ServerItem(item) { StubType = StubType.Songs }); list.Add(new ServerItem(item) { StubType = StubType.Genres }); list.Add(new ServerItem(item) { StubType = StubType.FavoriteArtists }); list.Add(new ServerItem(item) { StubType = StubType.FavoriteAlbums }); list.Add(new ServerItem(item) { StubType = StubType.FavoriteSongs }); return(new QueryResult <ServerItem> { Items = list.ToArray(list.Count), TotalRecordCount = list.Count }); }
private QueryResult <BaseItem> GetChildrenSorted(BaseItem item, User user, SearchCriteria search, SortCriteria sort, int?startIndex, int?limit) { var folder = (Folder)item; var sortOrders = folder.IsPreSorted ? Array.Empty <(string, SortOrder)>() : new[] { (ItemSortBy.SortName, sort.SortOrder) };