using Gestor.Application.Helpers; using Gestor.Application.Servicos.Generic; using Gestor.Application.ViewModels.Financeiro; using Gestor.Application.ViewModels.Generic; using Gestor.Application.Views.Generic; using Gestor.Common.Validation; using Gestor.Model.Domain.Financeiro; using Gestor.Model.Domain.Generic; using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Runtime.CompilerServices; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Input; using System.Windows.Markup; using System.Windows.Threading; namespace Gestor.Application.Views.Financeiro { public class PlanosView : BaseUserControl, IComponentConnector { private bool _seleciona = true; public PlanosViewModel ViewModel; internal DataGrid PlanosGrid; private bool _contentLoaded; [DebuggerNonUserCode] [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] internal Delegate _CreateDelegate(Type delegateType, string handler) { return Delegate.CreateDelegate(delegateType, this, handler); } public PlanosView() { base.Tag = "PLANO DE CONTAS"; this.ViewModel = new PlanosViewModel(); base.DataContext = this.ViewModel; this.InitializeComponent(); System.Windows.Threading.Dispatcher dispatcher = base.Dispatcher; if (dispatcher == null) { return; } dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(this.ContentLoad)); } private void AbrirLog_OnClick(object sender, RoutedEventArgs e) { this.ViewModel.AbrirLog(28, this.ViewModel.SelectedPlanos.get_Id()); } private void AlterarPlanos_OnClick(object sender, RoutedEventArgs e) { this.ViewModel.Alterar(true); this.ViewModel.SelectedPlanos.Initialize(); } private void AutoCompleteBoxPlanos_OnTextChanged(object sender, RoutedEventArgs e) { if (!string.IsNullOrWhiteSpace(((AutoCompleteBox)sender).get_Text())) { return; } this.ViewModel.FiltrarPlanos(""); } private void AutoCompleteBoxPlanos_Populating(object sender, PopulatingEventArgs e) { e.set_Cancel(true); this.ViewModel.Filtrar(ValidationHelper.RemoveDiacritics(e.get_Parameter().Trim())).ContinueWith((Task> searchResult) => { if (searchResult == null) { return; } AutoCompleteBox autoCompleteBox = (AutoCompleteBox)sender; autoCompleteBox.set_ItemsSource(searchResult.Result); autoCompleteBox.PopulateComplete(); }, TaskScheduler.FromCurrentSynchronizationContext()); } private void CancelarPlanos_OnClick(object sender, RoutedEventArgs e) { this.ViewModel.CancelarAlteracao(); } private async void ContentLoad() { this.PlanosGrid.SelectedIndex = 0; this.PlanosGrid.SelectionChanged += new SelectionChangedEventHandler(this.PlanosGrid_OnSelectionChanged); this.PlanosGrid.MouseDoubleClick += new MouseButtonEventHandler((object sender, MouseButtonEventArgs args) => { }); PlanosViewModel viewModel = this.ViewModel; List planos = await (new BaseServico()).BuscarPlanoAsync(); PlanosViewModel observableCollection = viewModel; List planos1 = planos; IOrderedEnumerable ativo = from x in planos1 orderby x.get_Ativo() descending select x; observableCollection.Plano = new ObservableCollection(ativo.ThenBy((Plano x) => x.get_Descricao()).ToList()); viewModel = null; } private void IncluirPlanos_OnClick(object sender, RoutedEventArgs e) { this.ViewModel.Incluir(); } [DebuggerNonUserCode] [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] public void InitializeComponent() { if (this._contentLoaded) { return; } this._contentLoaded = true; System.Windows.Application.LoadComponent(this, new Uri("/Gestor.Application;component/views/financeiro/planosview.xaml", UriKind.Relative)); } private async void PlanoButton_OnClick(object sender, RoutedEventArgs e) { PlanoView planoView = new PlanoView(this.ViewModel.SelectedPlanos.get_Plano()); (new HosterWindow(planoView, "PLANO", new double?((double)500), new double?((double)200), false)).ShowDialog(); this.ViewModel.Loading(true); if (planoView.ViewModel.SelectedPlano.get_Id() != 0) { PlanosViewModel viewModel = this.ViewModel; List planos = await (new BaseServico()).BuscarPlanoAsync(); PlanosViewModel observableCollection = viewModel; List planos1 = planos; IOrderedEnumerable ativo = from x in planos1 orderby x.get_Ativo() descending select x; observableCollection.Plano = new ObservableCollection(ativo.ThenBy((Plano x) => x.get_Descricao()).ToList()); viewModel = null; List planos2 = await (new BaseServico()).BuscarPlanosAsync(); PlanosViewModel list = this.ViewModel; List planos3 = planos2; IOrderedEnumerable ativo1 = from x in planos3 orderby x.get_Ativo() descending select x; IOrderedEnumerable planos4 = ativo1.ThenBy((Planos x) => { Plano plano = x.get_Plano(); if (plano != null) { return plano.get_Descricao(); } return null; }); list.Planos = planos4.ThenBy((Planos x) => x.get_Descricao()).ToList(); ObservableCollection planosFiltrados = this.ViewModel.PlanosFiltrados; List nums = ( from p in planosFiltrados select p.get_Id()).ToList(); this.ViewModel.PlanosFiltrados = new ObservableCollection( from x in this.ViewModel.Planos where nums.Contains(x.get_Id()) select x); this._seleciona = false; this.PlanosGrid.SelectedItem = this.ViewModel.SelectedPlanos; this.ViewModel.SelectedPlano = this.ViewModel.Plano.First((Plano x) => x.get_Id() == planoView.ViewModel.SelectedPlano.get_Id()); this._seleciona = true; } this.ViewModel.Loading(false); } private async void PlanosGrid_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { object obj; if (this._seleciona) { DataGrid dataGrid = (DataGrid)sender; if (dataGrid == null || dataGrid.SelectedIndex >= 0) { PlanosViewModel viewModel = this.ViewModel; obj = (dataGrid != null ? dataGrid.Items[dataGrid.SelectedIndex] : null); await viewModel.SelecionaPlanos((Planos)obj); } } } private async void SalvarPlanos_OnClick(object sender, RoutedEventArgs e) { bool flag; this.ViewModel.Loading(true); List> keyValuePairs = await this.ViewModel.Salvar(); this.ValidateFields(keyValuePairs, true); flag = (keyValuePairs == null ? true : keyValuePairs.Count == 0); this.ViewModel.Loading(false); if (!flag) { await this.ViewModel.ShowMessage(keyValuePairs, this.ViewModel.ErroCamposInvalidos, "OK", ""); } } [DebuggerNonUserCode] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: { ((AutoCompleteBox)target).add_Populating(new PopulatingEventHandler(this, PlanosView.AutoCompleteBoxPlanos_Populating)); ((AutoCompleteBox)target).add_TextChanged(new RoutedEventHandler(this.AutoCompleteBoxPlanos_OnTextChanged)); return; } case 2: { this.PlanosGrid = (DataGrid)target; return; } case 3: { ((MenuItem)target).Click += new RoutedEventHandler(this.IncluirPlanos_OnClick); return; } case 4: { ((MenuItem)target).Click += new RoutedEventHandler(this.AlterarPlanos_OnClick); return; } case 5: { ((MenuItem)target).Click += new RoutedEventHandler(this.SalvarPlanos_OnClick); return; } case 6: { ((MenuItem)target).Click += new RoutedEventHandler(this.CancelarPlanos_OnClick); return; } case 7: { ((MenuItem)target).Click += new RoutedEventHandler(this.AbrirLog_OnClick); return; } case 8: { ((Button)target).Click += new RoutedEventHandler(this.PlanoButton_OnClick); return; } } this._contentLoaded = true; } } }