123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- using log4net;
- using System.Windows;
- using System.Windows.Controls;
- using Agent.Models;
- using Agent.Services;
- using WinForms = System.Windows.Forms;
- using System;
- using System.Collections.Generic;
- using System.Windows.Data;
- using System.Linq;
- namespace Agent.Views
- {
- /// <summary>
- /// Interaction logic for ReportPage.xaml
- /// </summary>
- public partial class ReportPage : Page
- {
- private static readonly ILog log = LogManager.GetLogger(typeof(ReportPage));
- private readonly ReportService _reportService = new ReportService();
- private readonly CsvService _csvService = new CsvService();
- private readonly CollectionViewSource _searchViewSource = new CollectionViewSource();
- public ReportPage()
- {
- InitializeComponent();
- ReportList.ItemsSource = _searchViewSource.View;
- DatePicker.CustomFormat = "yyyy-MM-dd";
- DatePicker.Format = WinForms.DateTimePickerFormat.Custom;
- DatePicker.TextChanged += DatePicker_TextChanged;
- DatePicker2.CustomFormat = "yyyy-MM-dd";
- DatePicker2.Format = WinForms.DateTimePickerFormat.Custom;
- DatePicker2.TextChanged += DatePicker_TextChanged;
- FetchList();
- }
- private void DatePicker_TextChanged(object sender, EventArgs e)
- {
- FetchList();
- }
- public void FetchList()
- {
- RP_serarch_cb.SelectedIndex = 0;
- RP_search_tb.Text = "";
- _searchViewSource.Source = _reportService.GetDailyReports(DatePicker.Value.ToString("yyyy-MM-dd"), DatePicker2.Value.ToString("yyyy-MM-dd"));
- ReportList.ItemsSource = _searchViewSource.View;
- RP_title_tb.Text = $"{_searchViewSource.View.Cast<object>().Count()} 개의 레포트가 있습니다.";
- }
- private void RP_ex_btn_Click(object sender, RoutedEventArgs e)
- {
- var dialog = new WinForms.SaveFileDialog
- {
- FileName = DateTime.Now.ToString("yyyy-MM-dd") + "_레포트",
- DefaultExt = ".csv",
- Filter = "csv files|*.csv"
- };
- if (dialog.ShowDialog() == WinForms.DialogResult.Cancel)
- {
- return;
- }
- _csvService.SetHeader(new List<string>{
- "번호",
- "감시대상",
- "감시경로",
- "작업종류",
- "성공여부",
- "작업일자"
- });
- var report = ReportList.Items;
- for (int i = 0; i < report.Count; i++)
- {
- var item = report[i] as Report;
- _csvService.SetColumn(new List<object> {
- i + 1,
- item.Name,
- item.Path,
- item.Work_Type,
- (item.Is_Fail ? "성공" : "실패"),
- item.Create_Date
- });
- }
- _csvService.CreateCsv(dialog.FileName);
- MessageBox.Show("저장되었습니다.", "확인", MessageBoxButton.OK, MessageBoxImage.Information);
- }
- private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
- {
- var idx = RP_serarch_cb.SelectedIndex;
- var view = CollectionViewSource.GetDefaultView(_searchViewSource.View);
- if (0 == idx)
- {
- view.Filter = _NameFiltered;
- }
- if (1 == idx)
- {
- view.Filter = _WorkTypeFiltered;
- }
- if (2 == idx)
- {
- view.Filter = _IsFalidFiltered;
- }
- RP_title_tb.Text = $"{ReportList.Items.Count} 개의 레포트가 있습니다.";
- return;
- }
- private bool _NameFiltered(object item)
- {
- return (item as Report).Name.Contains(RP_search_tb.Text.Trim());
- }
- private bool _WorkTypeFiltered(object item)
- {
- return (item as Report).Work_Type.Contains(RP_search_tb.Text.Trim());
- }
- private bool _IsFalidFiltered(object item)
- {
- var failString = (item as Report).Is_Fail ? "성공" : "실패";
- return failString.Contains(RP_search_tb.Text.Trim());
- }
- private void RP_serarch_cb_DropDownClosed(object sender, EventArgs e)
- {
- RP_search_tb.Text = "";
- }
- }
- }
|