protected override async void OnAppearing() { if (_model.Loading) { _titles = await AudioLibrary.Instance.GetBooksByAuthor(_authorId, 1, PAGE_SIZE); if (_titles == null) { UserDialogs.Instance.HideLoading(); return; } var sorted = _titles.Titles .OrderBy(o => o.Title) .GroupBy(g => g.TitleSort) .Select(s => new Grouping <string, TitleModel>(s.Key, s)); listView.SetBinding(ListView.ItemsSourceProperty, new Binding(".")); listView.BindingContext = _model.Items; listView.IsGroupingEnabled = true; listView.GroupDisplayBinding = new Binding("Key"); listView.GroupShortNameBinding = new Binding("Key"); listView.BeginRefresh(); sorted.ToList().ForEach(item => _model.Items.Add(item)); listView.EndRefresh(); _model.Loading = false; } }
public async Task <TitleResult> GetBooksByTitle(int index, int count) { if (_titles == null || _expireTitles < DateTime.Now) { _titles = await Get <TitleResult>("titles", null, index, count, null); _expireTitles = DateTime.Now.AddSeconds(ExpirySecs); } return(_titles); }
public TitleResult GetPage(string filter, int?draw, int?initialPage, int?pageSize, string sortDir, string sortBy) { using (SATEntities db = new SATEntities()) { var data = db.vw_Title.ToList(); int recordsTotal = data.Count(); if (!string.IsNullOrEmpty(filter)) { data = data.Where(x => x.TiFullName.Contains(filter)).ToList(); } int recordsFiltered = data.Count(); switch (sortBy) { case "TiFullName": data = (sortDir == "asc") ? data.OrderBy(x => x.TiFullName).ToList() : data.OrderByDescending(x => x.TiFullName).ToList(); break; case "TiShortName": data = (sortDir == "asc") ? data.OrderBy(x => x.TiShortName).ToList() : data.OrderByDescending(x => x.TiShortName).ToList(); break; case "SexName": data = (sortDir == "asc") ? data.OrderBy(x => x.SexName).ToList() : data.OrderByDescending(x => x.SexName).ToList(); break; case "Status": data = (sortDir == "asc") ? data.OrderBy(x => x.TiStatus).ToList() : data.OrderByDescending(x => x.TiStatus).ToList(); break; } int start = initialPage.HasValue ? (int)initialPage / (int)pageSize : 0; int length = pageSize ?? 10; var list = data.Select((s, i) => new TitleViewModel() { RowNumber = i + 1, TiID = s.TiID, TiFullName = s.TiFullName, TiShortName = s.TiShortName, TiStatus = s.TiStatus, SexID = s.SexID, SexName = s.SexName, Status = s.TiStatus == true ? EnumType.StatusName.Active : EnumType.StatusName.NotActive }).Skip(start * length).Take(length).ToList(); TitleResult result = new TitleResult(); result.draw = draw ?? 0; result.recordsTotal = recordsTotal; result.recordsFiltered = recordsFiltered; result.data = list; return(result); } }
public int GetScore(TitleResult title, List <TextScore> scoreList) { var textToScore = title.GetTextFieldsToScore().ToLower(); return(scoreList.Where(ts => textToScore.Contains(ts.Text.ToLower())).Sum(ts => ts.Score)); /* * return * Blacklist.Where(pair => shelfLocation.ToLowerInvariant().Contains(pair.Key.ToLowerInvariant())).Sum(pair => pair.Value) + Whitelist.Where(pair => shelfLocation.ToLowerInvariant().Contains(pair.Key.ToLowerInvariant())).Sum(pair => pair.Value); * */ }
public Result <TitleResult> QueryAndTransform() { Logger.LogInformation($"Running Query and transform."); Query.TargetDate = TargetDate; var result = Query.DoQuery(); LookbackJustVaccineQuery.TargetDate = TargetDate; var yesterdayResult = LookbackJustVaccineQuery.DoQuery(); var relevent = result.Data.Where(d => d.Date == TargetDate).FirstOrDefault(); var yesterdayRelevent = yesterdayResult.Data.Where(d => d.Date == TargetDate.AddDays(-1).Date).FirstOrDefault(); var titleResult = new TitleResult() { TotalCases = new SimpleRecord() { Date = TargetDate, Value = relevent?.Cases_Cumulative }, TotalDeaths = new SimpleRecord() { Date = TargetDate, Value = relevent?.Deaths_Cumulative }, TotalVaccines = new SimpleRecord() { Date = TargetDate, Value = yesterdayRelevent?.FirstDose_Cumulative }, Date = TargetDate }; var list = new List <TitleResult>() { titleResult }; return(new Result <TitleResult>() { Records = list, QueryRecords = new List <QueryRecord>() { new QueryRecord() { Name = NameConstants.DailyQuery_Name, Url = result.Url } } }); }
public async Task <TitleResult> GetBooksByAuthor(string author, int index, int count) { TitleResult result = new TitleResult { Titles = new List <TitleModel>() }; using (SqlConnection connection = new SqlConnection( _connectionString)) { SqlCommand commandCount = new SqlCommand($@"SELECT count(*) total FROM LH_audioteca, LH_formatosdisponibles WHERE LH_audioteca.id = LH_formatosdisponibles.id_audioteca AND LH_formatosdisponibles.id_formato = 4 AND LH_formatosdisponibles.activo = 'True' AND LH_audioteca.activo = 'True' AND id_autor=${author}", connection); connection.Open(); using (SqlDataReader reader = await commandCount.ExecuteReaderAsync()) { while (reader.Read()) { result.Total = Convert.ToInt32(reader[0]); } } SqlCommand commandTitles = new SqlCommand($@"SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY titulo) AS idx, LHA.numero 'id', LHA.titulo FROM LH_audioteca LHA INNER JOIN LH_formatosdisponibles LHF on LHF.id_audioteca = LHA.id WHERE LHF.id_formato=4 AND LHF.activo='True' AND LHA.activo='True' AND LHA.id_autor=${author}) AS tbl WHERE idx BETWEEN ${index} AND ${index + count - 1}", connection); using (SqlDataReader reader = await commandTitles.ExecuteReaderAsync()) { while (reader.Read()) { result.Titles.Add(new TitleModel { Id = reader[1].ToString().Trim(), Title = reader[2].ToString().Trim() }); } } } return(result); }
private TitleResult GetExtraInfo(TitleResult title, string content) { var dom = CQ.CreateFragment(content); title.Author = !string.IsNullOrEmpty(title.Author) ? title.Author : dom["div.INITIAL_AUTHOR_SRCH"].Text().Trim(); title.Isbn = dom["div.ISBN"].Text().Trim(); title.ShelfLocation = GetShelfLocations(dom["table.detailItemTable tr.detailItemsTableRow td:nth-child(2)"].Text()); title.IsFiction = this.analysisService.IsNonFiction(title.ShelfLocation) ? "No" : "Yes"; title.SubjectTerms = dom["div.SUBJECT_TERM a"].Select(a => a.GetAttribute("title").Trim()).ToList(); title.Score = this.analysisService.GetScore(title); // A call to this url may not work outside of the pncc domain: title.LargeImageUrl = string.Format("https://secure.syndetics.com/index.aspx?type=xw12&client=nlonzsd&upc=&oclc=&isbn={0}/LC.JPG", title.Isbn); title.SmallImageUrl = title.LargeImageUrl.Replace("LC.JPG", "SC.JPG"); title.TitleUrl = string.Format("https://ent.kotui.org.nz/client/en_AU/pn/search/results?qu={0} {1}", title.Title, title.Author); return(title); }
public async Task RefreshBooks() { _titles = await Get <TitleResult>("titles", null, 0, Int32.MaxValue, null); _expireTitles = DateTime.Now.AddSeconds(ExpirySecs); }
public int GetScore(TitleResult title) { return(this.GetScore(title, this.ScoreList)); }