public ReportDeltaSplitMeseViewModel(GuadagnoPerPeriodoList guadagnoPerPeriodos) { DataDeltaPerMonth = (CollectionView)CollectionViewSource.GetDefaultView(guadagnoPerPeriodos); PropertyGroupDescription groupDescription = new PropertyGroupDescription("Gestione"); DataDeltaPerMonth.GroupDescriptions.Add(groupDescription); }
public GuadagnoPerPeriodoList GetDeltaPeriod(IList <RegistryOwner> _selectedOwners, IList <int> _selectedYears, bool isYear, bool isAggregated) { GuadagnoPerPeriodoList GPPL = new GuadagnoPerPeriodoList(); string gestione = "A.id_gestione = "; foreach (RegistryOwner RO in _selectedOwners) { gestione += RO.Id_gestione; gestione += " OR A.id_gestione = "; } gestione = gestione.Substring(0, gestione.Length - 20); string anni = "YEAR(data_movimento) = "; foreach (int anno in _selectedYears) { anni += anno + " OR YEAR(data_movimento) = "; } anni = anni.Substring(0, anni.Length - 27); string query = string.Format("AND ({0}) AND ({1})", gestione, anni); try { using (MySqlDataAdapter dbAdapter = new MySqlDataAdapter()) { dbAdapter.SelectCommand = new MySqlCommand(); dbAdapter.SelectCommand.CommandType = CommandType.Text; if (isYear && isAggregated) { dbAdapter.SelectCommand.CommandText = string.Format(ReportScripts.GetDeltaPerYearTot, query); } else if (isYear && !isAggregated) { dbAdapter.SelectCommand.CommandText = string.Format(ReportScripts.GetDeltaPerYear, query); } else if (!isYear && isAggregated) { dbAdapter.SelectCommand.CommandText = string.Format(ReportScripts.GetDeltaPerMonthTot, query); } else if (!isYear && !isAggregated) { dbAdapter.SelectCommand.CommandText = string.Format(ReportScripts.GetDeltaPerMonth, query); } dbAdapter.SelectCommand.Parameters.AddWithValue("Anno1", _selectedYears[0] > _selectedYears[1] ? _selectedYears[1] : _selectedYears[0]); dbAdapter.SelectCommand.Parameters.AddWithValue("Anno2", _selectedYears[1] < _selectedYears[0] ? _selectedYears[0] : _selectedYears[1]); dbAdapter.SelectCommand.Connection = new MySqlConnection(DAFconnection.GetConnectionType()); DataTable dataTable = new DataTable(); dbAdapter.Fill(dataTable); foreach (DataRow DR in dataTable.Rows) { GuadagnoPerPeriodo GPP = new GuadagnoPerPeriodo(); GPP.IdGestione = Convert.ToInt32(DR.ItemArray[0]); GPP.Gestione = DR.Field <string>("nome_gestione"); GPP.Valuta = DR.Field <string>("cod_valuta"); if (!isYear) { switch (DR.Field <int>("Mese")) { case 1: GPP.Mese = "Gennaio"; break; case 2: GPP.Mese = "Febbraio"; break; case 3: GPP.Mese = "Marzo"; break; case 4: GPP.Mese = "Aprile"; break; case 5: GPP.Mese = "Maggio"; break; case 6: GPP.Mese = "Giugno"; break; case 7: GPP.Mese = "Luglio"; break; case 8: GPP.Mese = "Agosto"; break; case 9: GPP.Mese = "Settembre"; break; case 10: GPP.Mese = "Ottobre"; break; case 11: GPP.Mese = "Novembre"; break; case 12: GPP.Mese = "Dicembre"; break; } } GPP.GuadagnoAnno1 = DR.Field <double>("GuadagniAnno1"); GPP.GuadagnoAnno2 = DR.Field <double>("GuadagniAnno2"); GPP.Differenza = DR.Field <double>("Differenza"); GPP.Delta = DR.ItemArray[!isYear? 7: 6] == System.DBNull.Value ? 0 : DR.Field <double>("Delta"); GPPL.Add(GPP); } } return(GPPL); } catch (MySqlException err) { throw new Exception(err.Message); } catch (Exception err) { throw new Exception(err.Message); } }