コード例 #1
0
        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;
            }
        }
コード例 #2
0
ファイル: AudioLibrary.cs プロジェクト: japete77/AudiotecaApp
        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);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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
                    }
                }
            });
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
ファイル: AudioLibrary.cs プロジェクト: japete77/AudiotecaApp
        public async Task RefreshBooks()
        {
            _titles = await Get <TitleResult>("titles", null, 0, Int32.MaxValue, null);

            _expireTitles = DateTime.Now.AddSeconds(ExpirySecs);
        }
コード例 #9
0
 public int GetScore(TitleResult title)
 {
     return(this.GetScore(title, this.ScoreList));
 }