private void Refresh() { using (var dbContext = new DatabaseContext()) { try { var db = dbContext.Assets.Where(x => x.Id > 0).ToList(); if (db.Count <= 0) { AssetGridDataSource.Clear(); MessageBox.Show("There are no Assets in the database"); return; } AssetGridDataSource.Clear(); foreach (var asset in db) { if (asset.CurrentLocation == null) { var location = dbContext.Repositions.Where(x => x.AssetId == asset.Id) .OrderByDescending(x => x.AddedDate).FirstOrDefault() ?.NewPosition; if (!string.IsNullOrEmpty(location)) { asset.CurrentLocation = location; } } AssetGridDataSource.Add(new AssetDto(asset)); } AssetsDataGrid.ItemsSource = AssetGridDataSource; LastRefreshed = DateTime.Now; CalculateMonthPayment(); Application.Current.Properties[Constants.ShouldMainWindowRefresh] = false; } catch (Exception exception) { Console.WriteLine(exception); MessageBox.Show("Error Loading Assets "); } } }
private void SearchBTN_OnClick(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(QueryTXT.Text)) { MessageBox.Show("There is no text to search for"); return; } var query = QueryTXT.Text; DateTime?toDate = DateTime.Today; DateTime?fromDate = DateTime.Today; if (FromDatePicker.SelectedDate == null) { using (var dbContext = new DatabaseContext()) { try { var db = dbContext.Assets.OrderBy(x => x.DateOfPurchase).First(); fromDate = db.DateOfPurchase; } catch (Exception exception) { Console.WriteLine(exception); MessageBox.Show("Error Loading Assets for date"); } } } else { fromDate = FromDatePicker.SelectedDate; } if (ToDatePicker.SelectedDate != null) { toDate = ToDatePicker.SelectedDate; } //DateTime date2Compare = new DateTime(2017, 1, 20); //list.Where(x => myDateColumn >= date2Compare && x.myTextColumn.Contains('abc')); using (var dbContext = new DatabaseContext()) { var res = new List <AssetDto>(); try { switch (PropertyPicker.SelectedIndex) { case 0: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && x.AssetId.Contains(query)).ToList(); break; case 1: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && x.AssetNumber.Contains(query)).ToList(); break; case 2: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && x.AssetName.Contains(query)).ToList(); break; case 3: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && x.PMVCode.Contains(query)).ToList(); break; case 4: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && x.CurrentLocation.Contains(query)).ToList(); break; case 5: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && x.PoNumber.Contains(query)).ToList(); break; case 6: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && x.PlateSerialNumber.Contains(query)).ToList(); break; case 7: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && Math.Abs(x.PurchaseCostOfAsset - NumberHelpers.StringToDouble(query)) < 0.05).ToList(); break; case 8: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && x.AssetStatus.ToString().Contains(query)).ToList(); break; case 9: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && x.ToolType.Contains(query)).ToList(); break; case 10: res = AssetGridDataSource.Where(x => x.DateOfPurchase >= fromDate && x.DateOfPurchase <= toDate && x.CalibrationCertificationNumber.Contains(query)).ToList(); break; } if (res.Count > 0) { var totalPayment = CalculateTotalPaymentOfInterval(res, fromDate, toDate); var window = new ShowExpiryNotificationWindow(new ObservableCollection <AssetDto>(res), totalPayment); window.Show(); } else { MessageBox.Show("No results were found"); } } catch (Exception exception) { Console.WriteLine(exception); MessageBox.Show("Error Loading Assets for date"); } QueryTXT.Text = string.Empty; } }