public void Concat(TransformedData add) { add.Table.RemoveAt(0); this.Table.AddRange(add.Table); }
public static TransformedData ConvertRawtoTransformed(RawData rawData) { TransformedData transformedData = new TransformedData(); string[] header = rawData.Table[0]; transformedData.Table = new List <string[]>(); string tHead = "Valor;DiaSemana;Mes;Ano;Pais;Estado;Cidade;Distrito;Qtd"; transformedData.Table.Add(tHead.Split(";")); List <T_Row> T_Table = new List <T_Row>(); for (int i = 1; i < rawData.Table.Count; i++) { T_Row row = new T_Row(); int pos = header.ToList <string>().IndexOf("Valor"); row.Valor = rawData.Table[i][pos]; pos = header.ToList <string>().IndexOf("Data"); string sData = rawData.Table[i][pos]; DateTime data = Convert.ToDateTime(sData); row.DiaSemana = data.DayOfWeek.ToString(); row.Mes = data.Month.ToString(); row.Ano = data.Year.ToString(); pos = header.ToList <string>().IndexOf("Pais"); row.Pais = rawData.Table[i][pos]; pos = header.ToList <string>().IndexOf("Estado"); row.Estado = rawData.Table[i][pos]; pos = header.ToList <string>().IndexOf("Cidade"); row.Cidade = rawData.Table[i][pos]; pos = header.ToList <string>().IndexOf("Distrito"); row.Distrito = rawData.Table[i][pos]; row.Qtd = 1; T_Table.Add(row); } List <T_Row> G_Table = new List <T_Row>(); var queryGroup = T_Table.GroupBy( r => new { r.Valor, r.DiaSemana, r.Mes, r.Ano, r.Pais, r.Estado, r.Cidade, r.Distrito }, (d, m) => new T_Row { Valor = d.Valor, DiaSemana = d.DiaSemana, Mes = d.Mes, Ano = d.Ano, Pais = d.Pais, Estado = d.Estado, Cidade = d.Cidade, Distrito = d.Distrito, Qtd = m.Select(r => r.Qtd).Sum() } ); G_Table = queryGroup.ToList(); foreach (T_Row row in G_Table) { string[] line = new string[9]; line[0] = row.Valor; line[1] = row.DiaSemana; line[2] = row.Mes; line[3] = row.Ano; line[4] = row.Pais; line[5] = row.Estado; line[6] = row.Cidade; line[7] = row.Distrito; line[8] = Convert.ToString(row.Qtd); transformedData.Table.Add(line); } return(transformedData); }