public async Task OnGetAsync()
        {
            _logger.Log(LogLevel.Information, TitleFilter);

            var games = from g in _context.Game select g;

            if (!string.IsNullOrEmpty(TitleFilter))
            {
                games = games.Where(g => g.Title.ToLower().Contains(TitleFilter.ToLower()));
            }

            _logger.Log(LogLevel.Information, ReleaseDate.ToString());

            games = games.Where(m => Before ?
                                m.ReleaseDate <= ReleaseDate :
                                m.ReleaseDate >= ReleaseDate);

            games = games.Where(m =>
                                //if
                                Before ?
                                m.ReleaseDate <= ReleaseDate
                : // else
                                m.ReleaseDate >= ReleaseDate


                                );

            Game = await games.ToListAsync();
        }
Пример #2
0
        private void SearchAsYouType()
        {
            if (this.searchBox.Text == this.lastSearchTerm)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(this.searchBox.Text) || this.searchBox.SelectedText == this.searchBox.Text)
            {
                this.FilterTitlesAndUpdate();
                return;
            }

            Func <string, string, bool> containsSubstring = (x, y) => x.Contains(y, StringComparison.OrdinalIgnoreCase);

            var foundTitles =
                TitleFilter.FilterTitles(this.allTitles, this.titleFilter)
                .Where(
                    a =>
                    containsSubstring(a.Name.RemoveDiacritics(), this.searchBox.Text) ||
                    containsSubstring(a.TitleId, this.searchBox.Text) || containsSubstring(a.Serial, this.searchBox.Text))
                .ToArray();

            if (foundTitles.Any())
            {
                this.titlesDataGrid.DataSource = new SortableBindingList <Nintendo3DSTitle>(foundTitles);
                this.SortDataGrid();
            }
            else
            {
                this.UpdateAction("No titles found.");
            }

            this.lastSearchTerm = this.searchBox.Text;
        }
Пример #3
0
        public MovieGallery CreateGallery(string filter)
        {
            Trace.TraceInformation("MovieGallery.CreateFilteredCollection");

            List <TitleFilter> filters;

            if (existingFilters != null)
            {
                filters = new List <TitleFilter>(existingFilters);
            }
            else
            {
                filters = new List <TitleFilter>(1);
            }

            TitleFilter newFilter = new TitleFilter(filterType, filter);

            if (!filters.Contains(newFilter))
            {
                filters.Add(newFilter);
            }

            MovieGallery movies = new MovieGallery(filters);

            movies.SortMovies();

            return(movies);
        }
Пример #4
0
        private async void MainForm_Shown(object sender, EventArgs e)
        {
            this.SetVersion();
            this.currentTitleStatusLabel.Text = string.Empty;

            if (!File.Exists(Files.DbPath))
            {
                var result = MessageBox.Show(
                    Properties.Resources.Disclaimer,
                    "boo",
                    MessageBoxButtons.OKCancel,
                    MessageBoxIcon.Warning);

                if (result == DialogResult.Cancel)
                {
                    Environment.Exit(0);
                }

                this.statusProgressbar.Style = ProgressBarStyle.Marquee;
                this.UpdateAction("Downloading database...");
                await Task.Run(() => DatabaseParser.DownloadDatabase(Files.DbPath));

                this.UpdateAction($"Prettifying JSON in \"{Files.DbPath}\"...");
                File.WriteAllText(Files.DbPath, JsonPrettifier.FormatJson(File.ReadAllText(Files.DbPath)));
            }

            if (!File.Exists(Files.SizesPath))
            {
                this.UpdateAction("Downloading sizes data...");
                await Task.Run(() => DatabaseParser.DownloadSizes(Files.SizesPath));
            }

            this.UpdateAction($"Reading data from \"{Files.DbPath}\" and \"{Files.SizesPath}\"...");
            this.allTitles = DatabaseParser.ParseFromDatabase(Files.DbPath, Files.SizesPath);

            if (File.Exists(Files.FilterPath))
            {
                this.titleFilter = TitleFilterStorage.ParseFilterSettings(Files.FilterPath);
            }

            this.titles = new SortableBindingList <Nintendo3DSTitle>(TitleFilter.FilterTitles(this.allTitles, this.titleFilter));

            this.titlesDataGrid.DoubleBuffered(true);
            this.titlesDataGrid.DataSource = this.titles;
            this.SortDataGrid();

            this.UpdateAction(string.Empty);
            this.currentTitleStatusLabel.Text = string.Empty;
            this.titlesCountLabel.Text        = this.titles.Count + " titles";
            this.statusProgressbar.Style      = ProgressBarStyle.Blocks;

            this.generateAllTicketsButton.Enabled = true;
            this.filterButton.Enabled             = true;
            this.generateQrCodeButton.Enabled     = true;
        }
Пример #5
0
        private void FilterTitlesAndUpdate()
        {
            this.UpdateAction("Filtering...");
            this.statusProgressbar.Style = ProgressBarStyle.Marquee;

            this.titlesDataGrid.DataSource =
                this.titles = new SortableBindingList <Nintendo3DSTitle>(TitleFilter.FilterTitles(this.allTitles, this.titleFilter));

            this.SortDataGrid();

            this.UpdateAction(string.Empty);
            this.statusProgressbar.Style = ProgressBarStyle.Blocks;
            this.titlesCountLabel.Text   = $"{this.titles.Count} titles";
        }
Пример #6
0
        private void InitializeCheckboxes(TitleFilter titleFilter)
        {
            this.regions_ALL_Checkbox.Checked = titleFilter.RegionFilter["ALL"];
            this.regions_USA_Checkbox.Checked = titleFilter.RegionFilter["USA"];
            this.regions_EUR_Checkbox.Checked = titleFilter.RegionFilter["EUR"];
            this.regions_JPN_Checkbox.Checked = titleFilter.RegionFilter["JPN"];

            this.types_eShop_Checkbox.Checked   = titleFilter.TypeFilter["eShop"];
            this.types_System_Checkbox.Checked  = titleFilter.TypeFilter["System"];
            this.types_Demo_Checkbox.Checked    = titleFilter.TypeFilter["Demo"];
            this.types_DLC_Checkbox.Checked     = titleFilter.TypeFilter["DLC"];
            this.types_Update_Checkbox.Checked  = titleFilter.TypeFilter["Update"];
            this.types_DSIWare_Checkbox.Checked = titleFilter.TypeFilter["DSIWare"];

            this.other_UnknownNames_Checkbox.Checked = titleFilter.OtherFilter["Unknown"];
        }
Пример #7
0
        private void filterButton_Click(object sender, EventArgs e)
        {
            var dialog = new FilterDialog(this.titleFilter.Clone());
            var result = dialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                if (!dialog.TitleFilter.Equals(this.titleFilter))
                {
                    this.titleFilter = dialog.TitleFilter.Clone();
                    TitleFilterStorage.WriteFilterSettings(this.titleFilter, Files.FilterPath);

                    this.FilterTitlesAndUpdate();
                }
            }
        }
Пример #8
0
        public static void execute()
        {
            /*
             * Here is an example of how to use this class.The exectue() function is only an example for
             * using this tool.The code of this function will not be used.
             */
            IMAP4AttFetcher fet = new IMAP4AttFetcher();/*Do not forget to input the parameters.*/

            fet.ConnectServer("", 0, true, "un", "pwd");
            SenderFilter sf = new SenderFilter(@"*****@*****.**");/*using string as rule , judge by sender*/

            fet.AppendFilter(sf);
            TitleFilter tf = new TitleFilter(@"hello thomsonreuters");/*using string as rule , judge by title*/

            fet.Update(DateTime.Now);
            fet.DisconnectServer();
        }
Пример #9
0
        private IReadOnlyCollection <DataSetValuePair> UpdateDatasetSource()
        {
            var sources = new List <DataSetValuePair>();
            //var selectedPublisher = (Application.Current.Resources["Locator"] as ViewModelLocator).PublisherModule;

            var qualifications = ViewModelLocatorStatic.Locator.QualificationModule.Qualifications.Select(c => c.Model);

            //var books = selectedPublisher.Books.Select(c => c.Model);
            //clear sources for filtering. use where.
            sources.Add(new DataSetValuePair("QualificationDataset", qualifications.Where(c => TitleFilter != null && c.QualificationCode.ToLowerInvariant().Contains(TitleFilter.ToLowerInvariant()))));
            //sources.Add(new DataSetValuePair("BooksDataset", books.Where(c => TitleFilter != null && c.Title.ToLowerInvariant().Contains(TitleFilter.ToLowerInvariant()))));
            return(sources);
        }
Пример #10
0
        private IReadOnlyCollection <DataSetValuePair> UpdateDatasetSource()
        {
            var sources = new List <DataSetValuePair>();

            var courses = ViewModelLocatorStatic.Locator.CourseModule.Courses.Select(c => c.Model);

            sources.Add(new DataSetValuePair("CourseDataset", courses.Where(c => TitleFilter != null && c.CourseName.ToLowerInvariant().Contains(TitleFilter.ToLowerInvariant()) ||
                                                                            c.CourseId.ToLowerInvariant().Contains(TitleFilter.ToLowerInvariant()))));


            return(sources);
        }
Пример #11
0
        protected override void ExecuteInternal(JobExecutionContext context)
        {
            string           connStr = ConfigurationManager.AppSettings["mergeData"];
            OracleConnection conn    = new OracleConnection(connStr);

            conn.Open();
            OracleTransaction tran = conn.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
            var startTime          = DateTime.UtcNow;
            var logEntity          = new SCHEDULERLOG {
                STARTTIME = startTime
            };

            var strInfo = new StringBuilder();

            strInfo.AppendFormat("Source [Email:{0},Title:{1}]\n", ConfigurationManager.AppSettings["LongZhongSenderFilter"], ConfigurationManager.AppSettings["LongZhongTitleFilter"]);
            strInfo.AppendFormat("Destination [Type: Oracle DB,  Address: {0}]\n", connStr);
            var lastSyncTime = Convert.ToDateTime("2016-11-16");

            using (var cneEntities = new CnEEntities())
            {
                var date =
                    cneEntities.SCHEDULERLOGs.Where(x => x.STATUS == 0 && x.JOBTYPE == JobType).Select(
                        x => (DateTime?)x.STARTTIME).Max();
                if (date != null)
                {
                    //ToGMT8
                    lastSyncTime = date.Value.AddHours(8);
                }
            }

            try
            {
                #region 执行数据同步程序

                var    attFetcherSever      = ConfigurationManager.AppSettings["CnEServer"];
                int    attFetcherPort       = int.Parse(ConfigurationManager.AppSettings["CnEPort"]);
                bool   attFetcherUsingSsl   = Convert.ToBoolean(ConfigurationManager.AppSettings["CnEUsingSsl"]);
                string attFetcherUserName   = ConfigurationManager.AppSettings["CnEUserName"];
                string attFetcherPassWord   = ConfigurationManager.AppSettings["CnEPassWord"];
                string attFetcherSavingPath = ConfigurationManager.AppSettings["LongZhongSavingPath"];
                var    attFetcher           = new IMAP4AttFetcher(attFetcherSever,
                                                                  attFetcherPort,
                                                                  attFetcherUsingSsl,
                                                                  attFetcherUserName,
                                                                  attFetcherPassWord,
                                                                  attFetcherSavingPath);
                var attFetcherSenderFilter = new SenderFilter();
                /*Filter example. If there are more filters , please write like below.*/
                string[] senders = ConfigurationManager.AppSettings["LongZhongSenderFilter"].Split(';');
                foreach (var sender in senders)
                {
                    var senderRegex = new Regex(sender, RegexOptions.Compiled);
                    attFetcherSenderFilter.SetRule(senderRegex);
                }
                attFetcher.AppendFilter(attFetcherSenderFilter);
                var attFetcherTitleFilter = new TitleFilter();
                var titleRegex            = new Regex(ConfigurationManager.AppSettings["LongZhongTitleFilter"], RegexOptions.Compiled);
                attFetcherTitleFilter.SetRule(titleRegex);
                attFetcher.AppendFilter(attFetcherTitleFilter);
                attFetcher.Execute(lastSyncTime);
                /*Get the saved attachment names.*/
                var attachmentFileNames = attFetcher.GetAttachmentFileNames();
                //List<string> attachmentFileNames = Directory.GetFiles(@"C:\DataFeedApp\Scheduler\CnE\LongZhong").ToList<string>();

                foreach (var tempattachname in attachmentFileNames)
                {
                    LongZhongExcelManager manager = new LongZhongExcelManager();

                    manager.GetCellsByFirstSheet(tempattachname, strInfo);
                }
                var fold = new DirectoryInfo(attFetcherSavingPath);
                if (fold.Exists)
                {
                    FileInfo[] files = fold.GetFiles();
                    foreach (FileInfo f in files)//删除目录下所有文件
                    {
                        f.Delete();
                    }
                }
                if (attachmentFileNames.Count > 0)
                {
                    MergeData merge = new MergeData();
                    merge.ExecuteLongZhongExcel(conn, tran);
                    tran.Commit();

                    strInfo.Append("Execute Procedure : CREATEMAXENERGYYIELDTABLE, CREATEMAXCHEMISTRYOUTPUTTABLE \r\n");
                    strInfo.Append("Insert Into Table : GDT_CHEMISTRYOUTPUTMAX, GDT_ENERGYYIELDMAX \r\n");
                }
                else
                {
                    strInfo.Append("No files found\r\n");
                }

                #endregion

                var endTime = DateTime.UtcNow;
                logEntity.ENDTIME   = endTime;
                logEntity.JobStatus = JobStatus.Success;
                logEntity.RUNDETAIL = strInfo.ToString();
                WriteLogEntity(logEntity);

                //merge data from temp to persistence
            }
            catch (Exception exception)
            {
                tran.Rollback();

                logEntity.ENDTIME   = DateTime.UtcNow.AddDays(-1);
                logEntity.JobStatus = JobStatus.Fail;
                logEntity.RUNDETAIL = strInfo + "\n" + exception;
                WriteLogEntity(logEntity);
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
Пример #12
0
        public MovieGallery CreateGallery(string filter)
        {
            Trace.TraceInformation("MovieGallery.CreateFilteredCollection");

            List<TitleFilter> filters;

            if (existingFilters != null)
                filters = new List<TitleFilter>(existingFilters);
            else
                filters = new List<TitleFilter>(1);

            TitleFilter newFilter = new TitleFilter(filterType, filter);

            if (!filters.Contains(newFilter))
                filters.Add(newFilter);

            MovieGallery movies = new MovieGallery(filters);

            movies.SortMovies();

            return movies;
        }
Пример #13
0
        private IReadOnlyCollection <DataSetValuePair> UpdateDatasetSource()
        {
            var cases = ViewModelLocatorStatic.Locator.CaseModule.Cases;

            LoadDataSet(cases);

            if (SelectedMonth != null)
            {
                if (SelectedMonth == "All")
                {
                    var filteredcases = cases;
                    cases = new ObservableCollection <CaseModel>(filteredcases);
                }

                else
                {
                    var monthSelected = MonthOptions.IndexOf(SelectedMonth);
                    var filteredcases = cases.Where(f => f.Model.CaseHearingDate?.Month == monthSelected);
                    cases = new ObservableCollection <CaseModel>(filteredcases);
                }

                LoadDataSet(cases);
            }

            if (SelectedYear != null)
            {
                var year = 0;
                try
                {
                    year = Convert.ToInt32(SelectedYear);
                }
                catch (Exception e)
                {
                    year = DateTime.Now.Year;
                }

                var filteredcases = cases.Where(f => f.Model.CaseHearingDate?.Year == year);
                cases = new ObservableCollection <CaseModel>(filteredcases);
                LoadDataSet(cases);
            }

            if (Day != null)
            {
                var filteredcases = cases.Where(f => f.Model.CaseHearingDate?.Day == Day);
                cases = new ObservableCollection <CaseModel>(filteredcases);
                LoadDataSet(cases);
            }

            if (SelectedStatus != null)
            {
                if (SelectedStatus == "All")
                {
                    var filteredcases = cases;
                    cases = new ObservableCollection <CaseModel>(filteredcases);
                    LoadDataSet(cases);
                }

                else
                {
                    var filteredpersons = cases.Where(f => f.Model.CaseStatus == SelectedStatus);
                    cases = new ObservableCollection <CaseModel>(filteredpersons);
                    LoadDataSet(cases);
                }
            }

            //            if (Respondent != null)
            //            {
            //                var r = Respondent.ToLowerInvariant();
            //                var filteredpersons =
            //                    cases.Where(f => f.Respondent.Model.FirstName.ToLowerInvariant().Contains(r) ||
            //                    f.Respondent.Model.LastName.ToLowerInvariant().Contains(r)
            //                    );
            //                cases = new ObservableCollection<CaseModel>(filteredpersons);
            //                LoadDataSet(cases);
            //            }

            if (!string.IsNullOrWhiteSpace(Respondent) || !string.IsNullOrEmpty(Respondent))
            {
                try
                {
                    var personCollection = new ObservableCollection <CaseModel>();

                    foreach (var person in cases)
                    {
                        if (!string.IsNullOrWhiteSpace(person.Respondent.ToString()) || !string.IsNullOrEmpty(person.Respondent.ToString()))
                        {
                            if (person.Respondent.Model.FirstName.ToLowerInvariant().Contains(Respondent.ToLowerInvariant()))
                            {
                                personCollection.Add(person);
                            }
                        }
                    }

                    cases = new ObservableCollection <CaseModel>(personCollection);
                    LoadDataSet(cases);
                }
                catch (Exception e) { }
            }

            _sources.Add(new DataSetValuePair("CaseDataSet", _casesDataSet.Where(c => TitleFilter != null && c.CaseId.ToLowerInvariant().Contains(TitleFilter.ToLowerInvariant()) || c.CaseName.ToLowerInvariant().Contains(TitleFilter.ToLowerInvariant()))));
            return(_sources);
        }
Пример #14
0
 public FilterDialog(TitleFilter titleFilter)
 {
     this.InitializeComponent();
     this.TitleFilter = titleFilter;
     this.InitializeCheckboxes(titleFilter);
 }
Пример #15
0
 public MovieGallery(TitleFilter filter)
     : this(new List <TitleFilter>() { filter })
 {
 }
Пример #16
0
        private void RemoveGenreMetaData()
        {
            if (lbGenreMetadata.SelectedItem != null)
            {
                List<TitleFilter> tfl = new List<TitleFilter>();
                TitleFilter tf = new TitleFilter(TitleFilterType.Genre, ((GenreMetaData)lbGenreMetadata.SelectedItem).Name);
                tfl.Add(tf);

                if (TitleCollectionManager.GetFilteredTitles(tfl).Count() == 0)
                {
                    TitleCollectionManager.RemoveGenreMetaData((GenreMetaData)lbGenreMetadata.SelectedItem);
                    lbGenreMetadata.Items.Remove(lbGenreMetadata.SelectedItem);
                    SetupFilterListContextMenu();
                }
                else
                {
                    if (XtraMessageBox.Show("The genre " + lbGenreMetadata.SelectedItem + " is assigned to movies. Do you want to set filter for this genre?", "Cannot delete genres.", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        allMoviesToolStripMenuItem1.Checked = false;

                        foreach (ToolStripMenuItem item in filterByGenreToolStripMenuItem.DropDownItems)
                            if (item.Text != lbGenreMetadata.SelectedItem.ToString())
                                item.Checked = false;
                            else
                                item.Checked = true;

                        showAllItemsInTitleListToolStripMenuItem.Checked = true;

                        LoadMovies();
                        PopulateMovieListV2(SelectedTreeRoot);
                    }
                }
            }
        }
Пример #17
0
        public static void ExcuteMailSync(string jobType, DateTime syncStartTime, string attFetcherSavingPath, string senderFilter, string titleFilter, string userName, string password
                                          , Action <SCHEDULERLOG> saveLog
                                          , Action <List <string>, StringBuilder> syncCallback
                                          , Action <OracleConnection, OracleTransaction> mergeCallback
                                          )
        {
            string           connStr = ConfigurationManager.AppSettings["mergeData"];
            OracleConnection conn    = new OracleConnection(connStr);

            conn.Open();
            OracleTransaction tran = conn.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
            var startTime          = DateTime.UtcNow;
            var logEntity          = new SCHEDULERLOG {
                STARTTIME = startTime
            };

            var strInfo = new StringBuilder();

            var lastSyncTime = syncStartTime;

            using (var cneEntities = new CnEEntities())
            {
                var date =
                    cneEntities.SCHEDULERLOGs.Where(x => x.STATUS == 0 && x.JOBTYPE == jobType).Select(
                        x => (DateTime?)x.STARTTIME).Max();
                if (date != null)
                {
                    lastSyncTime = date.Value;
                }
            }

            try
            {
                #region 执行数据同步程序

                strInfo.AppendFormat("Source [Type: Email , Sender: {0} ,Title {1} ]\n",
                                     senderFilter, titleFilter);
                strInfo.AppendFormat("Destination [Type: {0} Address: {1}]\n", "Oracle",
                                     connStr);
                var    attFetcherSever    = ConfigurationManager.AppSettings["CnEServer"];
                int    attFetcherPort     = int.Parse(ConfigurationManager.AppSettings["CnEPort"]);
                bool   attFetcherUsingSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["CnEUsingSsl"]);
                string attFetcherUserName = userName;
                string attFetcherPassWord = password;

                var attFetcher = new IMAP4AttFetcher(attFetcherSever,
                                                     attFetcherPort,
                                                     attFetcherUsingSsl,
                                                     attFetcherUserName,
                                                     attFetcherPassWord,
                                                     attFetcherSavingPath);
                var attFetcherSenderFilter = new SenderFilter();
                /*Filter example. If there are more filters , please write like below.*/
                string[] senders = senderFilter.Split(';');
                foreach (var sender in senders)
                {
                    var senderRegex = new Regex(sender, RegexOptions.Compiled);
                    attFetcherSenderFilter.SetRule(senderRegex);
                }
                attFetcher.AppendFilter(attFetcherSenderFilter);

                if (!string.IsNullOrEmpty(titleFilter))
                {
                    var attFetcherTitleFilter = new TitleFilter();
                    var titleRegex            = new Regex(titleFilter, RegexOptions.Compiled);
                    attFetcherTitleFilter.SetRule(titleRegex);
                    attFetcher.AppendFilter(attFetcherTitleFilter);
                }
                attFetcher.Execute(lastSyncTime);

                /*Get the saved attachment names.*/
                var attachmentFileNames = attFetcher.GetAttachmentFileNames();
                //var attachmentFileNames=new List<string>();
                //attachmentFileNames.Add(@"C:\DataFeedApp\Scheduler\CnE\路透数据20161109.xls");
                StringBuilder sb = new StringBuilder();

                //var attachmentFileNames = Directory.GetFiles(@"C:\xx\troil").ToList<string>();
                syncCallback(attachmentFileNames, sb);

                var fold = new DirectoryInfo(attFetcherSavingPath);
                if (fold.Exists)
                {
                    FileInfo[] files = fold.GetFiles();
                    foreach (FileInfo f in files)//删除目录下所有文件
                    {
                        f.Delete();
                    }
                }
                if (attachmentFileNames.Count == 0)
                {
                    strInfo.Append("No find files .\r\n");
                }
                #endregion
                var endTime = DateTime.UtcNow;
                logEntity.ENDTIME   = endTime;
                logEntity.JobStatus = JobStatus.Success;
                logEntity.RUNDETAIL = strInfo + sb.ToString();
                saveLog(logEntity);
                //merge data from temp to persistence

                if (mergeCallback != null)
                {
                    mergeCallback(conn, tran);
                }

                tran.Commit();
            }
            catch (Exception exception)
            {
                tran.Rollback();

                logEntity.ENDTIME   = DateTime.UtcNow.AddDays(-1);
                logEntity.JobStatus = JobStatus.Fail;
                logEntity.RUNDETAIL = strInfo + "\n" + exception;
                saveLog(logEntity);
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
        }
Пример #18
0
 private void lbTags_SelectedIndexChanged(object sender, EventArgs e)
 {
     List<TitleFilter> tf = new List<TitleFilter>();
     TitleFilter tag = new TitleFilter(TitleFilterType.Tag, (string)lbTags.SelectedItem);
     tf.Add(tag);
     titlesListView.SetFilter(tf);
 }
Пример #19
0
 public MovieGallery(TitleFilter filter)
     : this(new List<TitleFilter>() { filter })
 {
 }
Пример #20
0
        public IActionResult DisplaySearchResults(String TitleString, String AuthorString, int UniqueNumber, int SelectedGenre,
                                                  TitleFilter SelectedTitleFilter, AuthorFilter SelectedAuthorFilter, PopularityFilter SelectedPopularityFilter,
                                                  DateFilter SelectedDateFilter, RatingFilter SelectedRatingFilter, StockFilter SelectedStockFilter)
        {
            List <Book> SelectedBooks = new List <Book>();
            var         query         = from r in _context.Books.Include(b => b.Genre)
                                        select r;

            if (TitleString != null && TitleString != "")
            {
                query = query.Where(r => r.Title.Contains(TitleString));
            }

            if (AuthorString != null && AuthorString != "")
            {
                query = query.Where(r => r.Author.Contains(AuthorString));
            }

            if (UniqueNumber != 0)
            {
                query = query.Where(r => r.UniqueID == UniqueNumber);
            }

            if (SelectedGenre != 0)
            {
                Genre GenreToDisplay = _context.Genres.Find(SelectedGenre);
                query = query.Where(r => r.Genre == GenreToDisplay);
            }

            if (SelectedStockFilter == StockFilter.True)
            {
                query = query.Where(b => b.CopiesOnHand > 0);
            }

            //if no sort
            SelectedBooks = query.Include(b => b.Reviews).ToList();

            if (SelectedTitleFilter == TitleFilter.Ascending)
            {
                SelectedBooks = query.OrderBy(r => r.Title).ToList();
            }
            else if (SelectedTitleFilter == TitleFilter.Descending)
            {
                SelectedBooks = query.OrderByDescending(r => r.Title).ToList();
            }

            if (SelectedAuthorFilter == AuthorFilter.Ascending)
            {
                SelectedBooks = query.OrderBy(r => r.Author).ToList();
            }
            else if (SelectedAuthorFilter == AuthorFilter.Descending)
            {
                SelectedBooks = query.OrderByDescending(r => r.Author).ToList();
            }

            //POPULARTY FILTER CODE
            if (SelectedPopularityFilter == PopularityFilter.Ascending)
            {
                query = query.OrderByDescending(r => r.CopiesSold);
            }
            //don't need filter if not chosen - no else


            if (SelectedDateFilter == DateFilter.Oldest)
            {
                SelectedBooks = query.OrderBy(r => r.PublishedDate).ToList();
            }
            else if (SelectedDateFilter == DateFilter.Newest)
            {
                SelectedBooks = query.OrderByDescending(r => r.PublishedDate).ToList();
            }

            if (SelectedRatingFilter == RatingFilter.Descending)
            {
                //Int32 AvgRating = 0;
                //Int32
                //List<Book> books = _context.Books.Include(b => b.Reviews).Where(b => b.Reviews != null).ToList();
                //foreach(Book b in books)
                //{
                //    AvgRating +=
                //}
                //foreach(Book book in query)
                SelectedBooks = query.OrderByDescending(r => r.AvgRating).ToList();
            }

            //execute the query and store it into the SelectedRepositories list
            //SelectedBooks = query.Include(r => r.Reviews).ToList();
            ViewBag.SelectedBooks = SelectedBooks.Count();
            ViewBag.TotalBooks    = _context.Books.Count();
            //pass the filtered results to display in view
            return(View("Index", SelectedBooks));
        }
Пример #21
0
        protected override void ExecuteInternal(JobExecutionContext context)
        {
            var startTime = DateTime.UtcNow;
            var logEntity = new SCHEDULERLOG {
                STARTTIME = startTime
            };

            var strInfo = new StringBuilder();

            strInfo.AppendFormat("Source [Type: {0} Address: {1} Title: {2}]\n", "Email",
                                 ConfigurationManager.AppSettings["OilChemSenderFilter"],
                                 ConfigurationManager.AppSettings["OilChemTitleFilter"]);

            strInfo.AppendFormat("Destination [Type: {0} Address: {1}]\n", "ORACLE",
                                 ConfigurationManager.AppSettings["CnECon"]);

            var lastSyncTime = DateTime.Now;

            using (var cneEntities = new CnEEntities())
            {
                var date =
                    cneEntities.SCHEDULERLOGs.Where(x => x.STATUS == 0 && x.JOBTYPE == JobType).Select(
                        x => (DateTime?)x.STARTTIME).Max();
                if (date != null)
                {
                    lastSyncTime = date.Value;
                }
            }
            try
            {
                #region 执行数据同步程序
                /*Attachment fetcher begins.*/
                string attFetcherSever      = ConfigurationManager.AppSettings["CnEServer"];
                int    attFetcherPort       = int.Parse(ConfigurationManager.AppSettings["CnEPort"]);
                bool   attFetcherUsingSsl   = Convert.ToBoolean(ConfigurationManager.AppSettings["CnEUsingSsl"]);
                string attFetcherUserName   = ConfigurationManager.AppSettings["CnEUserName"];
                string attFetcherPassWord   = ConfigurationManager.AppSettings["CnEPassWord"];
                string attFetcherSavingPath = ConfigurationManager.AppSettings["OilChemSavingPath"];
                var    attFetcher           = new IMAP4AttFetcher(attFetcherSever,
                                                                  attFetcherPort,
                                                                  attFetcherUsingSsl,
                                                                  attFetcherUserName,
                                                                  attFetcherPassWord,
                                                                  attFetcherSavingPath);
                var attFetcherSenderFilter = new SenderFilter();
                /*Filter example. If there are more filters , please write like below.*/
                string[] senders = ConfigurationManager.AppSettings["OilChemSenderFilter"].Split(';');
                foreach (var sender in senders)
                {
                    var senderRegex = new Regex(sender, RegexOptions.Compiled);
                    attFetcherSenderFilter.SetRule(senderRegex);
                }
                attFetcher.AppendFilter(attFetcherSenderFilter);
                var attFetcherTitleFilter = new TitleFilter();
                var titleRegex            = new Regex(ConfigurationManager.AppSettings["OilChemTitleFilter"], RegexOptions.Compiled);
                attFetcherTitleFilter.SetRule(titleRegex);
                attFetcher.AppendFilter(attFetcherTitleFilter);
                attFetcher.Execute(lastSyncTime);
                /*Get the saved attachment names.*/
                var attachmentFileNames = attFetcher.GetAttachmentFileNames();


                foreach (var tempattachname in attachmentFileNames)
                {
                    var eos = new EnergyOilShandong(tempattachname);
                    eos.ImportTheWholeExcel(strInfo);
                }
                var fold = new DirectoryInfo(attFetcherSavingPath);
                if (fold.Exists)
                {
                    FileInfo[] files = fold.GetFiles();
                    foreach (FileInfo f in files)//删除目录下所有文件
                    {
                        f.Delete();
                    }
                }

                #endregion

                var endTime = DateTime.UtcNow;
                logEntity.ENDTIME   = endTime;
                logEntity.JobStatus = JobStatus.Success;
                logEntity.RUNDETAIL = strInfo.ToString();
                WriteLogEntity(logEntity);
            }
            catch (Exception exception)
            {
                logEntity.ENDTIME   = DateTime.UtcNow.AddDays(-1);
                logEntity.JobStatus = JobStatus.Fail;
                logEntity.RUNDETAIL = strInfo + "\n" + exception;
                WriteLogEntity(logEntity);
            }
        }
Пример #22
0
        private IReadOnlyCollection <DataSetValuePair> UpdateDatasetSource()
        {
            var sources = new List <DataSetValuePair>();
            var puroks  = ViewModelLocatorStatic.Locator.PurokModule.PurokList;

            var _purokPersons = new ObservableCollection <PurokPerson>();


            foreach (var purok in puroks)
            {
                _purokPersons.Add(new PurokPerson
                {
                    Male          = purok.MaleCount,
                    Population    = purok.NumberOfPersons,
                    Female        = purok.FemaleCount,
                    Location      = purok.Model?.Location,
                    PurokHeadName = purok.PurokHead?.Model?.FirstName + " "
                                    + purok.PurokHead?.Model?.MiddleName + " "
                                    + purok.PurokHead?.Model?.LastName + " ",
                    PurokName = purok.Model?.PurokName,
                    PurokNo   = purok.Model.PurokNo
                });
            }

            if (StartPopulation != null && EndPopulation > 0)
            {
                var purokpersons = _purokPersons.Where(p => p.Population <= EndPopulation && p.Population >= StartPopulation);
                _purokPersons = new ObservableCollection <PurokPerson>(purokpersons);
            }

            sources.Add(new DataSetValuePair("AllPurokDataSet", _purokPersons.Where(c => TitleFilter != null && c.PurokName.ToLowerInvariant().Contains(TitleFilter.ToLowerInvariant()))));
            return(sources);
        }
        /// <summary>
        /// Creates or finds an existing folder by 'Name' with a specific parentid. Returns an out addedTitle
        /// parameter if a new title was created, if title allready exists
        /// </summary>
        /// <param name="parentid"></param>
        /// <param name="Name"></param>
        /// <param name="titletype"></param>
        /// <param name="seriesNumber"></param>
        /// <param name="addedTitle"></param>
        /// <returns></returns>
        public static Title CreateFolderNonDuplicate(int? parentid, string Name, TitleTypes titletype, short? seriesNumber, out bool titleCreated)
        {
            // Build filter
            TitleFilter tf1 = new TitleFilter(TitleFilterType.Parent, parentid.ToString());
            TitleFilter tf2 = new TitleFilter(TitleFilterType.Name, Name);
            List<TitleFilter> tf = new List<TitleFilter>();
            tf.Add(tf1);
            tf.Add(tf2);
            List<Title> existingTitle = (from t in TitleCollectionManager.GetFilteredTitles(tf)
                                         where t.Name == Name
                                         select t).ToList();

            if (existingTitle.Count() > 0)
            {
                titleCreated = false;
                return existingTitle[0];
            }
            else
            {
                Title addedTitle = null;
                titleCreated = true;
                return CreateFolder(parentid, Name, titletype, seriesNumber);
            }
        }
Пример #24
0
        protected override void ExecuteInternal(JobExecutionContext context)
        {
            var connStr = ConfigurationManager.AppSettings["mergeData"];
            var conn    = new OracleConnection(connStr);

            conn.Open();
            OracleTransaction tran = conn.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
            var startTime          = DateTime.UtcNow;
            var logEntity          = new SCHEDULERLOG {
                STARTTIME = startTime
            };

            var strInfo = new StringBuilder();

            strInfo.AppendFormat("Source [Email:{0}]\n", ConfigurationManager.AppSettings["CoffedSenderFilter"]);
            strInfo.AppendFormat("Destination [Type: Oracle DB,  Address: {0}]\n", connStr);
            strInfo.AppendFormat("Destination Table:Cofeed\n" + "\r\n");

            var lastSyncTime = Convert.ToDateTime("2016-09-03");

            using (var cneEntities = new CnEEntities())
            {
                var date =
                    cneEntities.SCHEDULERLOGs.Where(x => x.STATUS == 0 && x.JOBTYPE == JobType).Select(
                        x => (DateTime?)x.STARTTIME).Max();
                if (date != null)
                {
                    //ToGMT8
                    lastSyncTime = date.Value.AddHours(8);
                }
            }

            try
            {
                StringBuilder sb = new StringBuilder();
                #region 执行数据同步程序
                var    attFetcherSever      = ConfigurationManager.AppSettings["CnEServer"];
                int    attFetcherPort       = int.Parse(ConfigurationManager.AppSettings["CnEPort"]);
                bool   attFetcherUsingSsl   = Convert.ToBoolean(ConfigurationManager.AppSettings["CnEUsingSsl"]);
                string attFetcherUserName   = ConfigurationManager.AppSettings["CnEUserName"];
                string attFetcherPassWord   = ConfigurationManager.AppSettings["CnEPassWord"];
                string attFetcherSavingPath = ConfigurationManager.AppSettings["CoffedSavingPath"];
                var    attFetcher           = new IMAP4AttFetcher(attFetcherSever,
                                                                  attFetcherPort,
                                                                  attFetcherUsingSsl,
                                                                  attFetcherUserName,
                                                                  attFetcherPassWord,
                                                                  attFetcherSavingPath);

                var      attFetcherSenderFilter = new SenderFilter();
                string[] senders = ConfigurationManager.AppSettings["CoffedSenderFilter"].Split(';');
                foreach (var sender in senders)
                {
                    var senderRegex = new Regex(sender, RegexOptions.Compiled);
                    attFetcherSenderFilter.SetRule(senderRegex);
                }
                attFetcher.AppendFilter(attFetcherSenderFilter);
                var attFetcherTitleFilter = new TitleFilter();
                var titleRegex            = new Regex(ConfigurationManager.AppSettings["CoffedTitleFilter"], RegexOptions.Compiled);
                attFetcherTitleFilter.SetRule(titleRegex);
                attFetcher.AppendFilter(attFetcherTitleFilter);
                attFetcher.Execute(lastSyncTime);
                var attachmentFileNames = attFetcher.GetAttachmentFileNames();

                foreach (var tempattachname in attachmentFileNames)
                {
                    CofeedManager manager = new CofeedManager();
                    manager.GetCellsByFirstSheet(tempattachname, sb);
                }
                strInfo.Append(sb);
                var fold = new DirectoryInfo(attFetcherSavingPath);
                if (fold.Exists)
                {
                    FileInfo[] files = fold.GetFiles();
                    foreach (FileInfo f in files)//删除目录下所有文件
                    {
                        f.Delete();
                    }
                }
                #endregion
                if (attachmentFileNames.Count > 0)
                {
                    MergeData merge = new MergeData();
                    merge.Execute(conn, tran);
                    tran.Commit();

                    strInfo.Append("Execute Procedure : createMaxAgricultrueTable \r\n");
                    strInfo.Append("Insert Into Table : GDT_AgricultureMax \r\n");
                }
                else
                {
                    strInfo.Append("No files found\r\n");
                }
                var settingFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                                   @"config\Ftp-Cofeed-data-sync.xml");
                var settingManager = new FtpSyncXmlManager(File.ReadAllText(settingFilePath), lastSyncTime, startTime.AddHours(8));
                settingManager.Init();
                var ftpSync = new FtpSyncLoad(settingManager, strInfo);
                ftpSync.Excute();
                var endTime = DateTime.UtcNow;
                logEntity.ENDTIME   = endTime;
                logEntity.JobStatus = JobStatus.Success;
                logEntity.RUNDETAIL = strInfo.ToString();
                WriteLogEntity(logEntity);
            }
            catch (Exception exception)
            {
                tran.Rollback();

                logEntity.ENDTIME   = DateTime.UtcNow.AddDays(-1);
                logEntity.JobStatus = JobStatus.Fail;
                logEntity.RUNDETAIL = strInfo + "\n" + exception;
                WriteLogEntity(logEntity);
            }
            finally
            {
                conn.Close();
            }
        }