public async Task <RegioneViewModel> GetRegioneAsync(int id) { FormattableString query = $"SELECT * FROM regioni WHERE codiceRegione={id}"; DataSet dataSet = await db.QueryAsync(query); var regioneTable = dataSet.Tables[0]; if (regioneTable.Rows.Count != 1) { throw new InvalidOperationException($"Mi aspettavo che venisse restituita solo una riga della tabella {id}"); } var regioneRow = regioneTable.Rows[0]; var regioneViewModel = RegioneViewModel.FromDataRow(regioneRow); // Questo codice dovrebbe essere interamente sostituito con la funzione GetRegioneAsync -- INIZIO FormattableString queryCom = $"SELECT * FROM comuni WHERE codiceCatastale={regioneRow["codiceCapoluogo"]}"; DataSet dataSetCom = await db.QueryAsync(queryCom); var comuneTable = dataSetCom.Tables[0]; if (comuneTable.Rows.Count != 1) { throw new InvalidOperationException($"Mi aspettavo che venisse restituita solo una riga della tabella {regioneRow["codiceCapoluogo"]}"); } var comuneRow = comuneTable.Rows[0]; // Questo codice dovrebbe essere interamente sostituito con la funzione GetRegioneAsync -- FINE var comuneViewModel = ComuneViewModel.FromDataRow(comuneRow); regioneViewModel.codiceCapoluogo = (ComuneViewModel)comuneViewModel; return(regioneViewModel); }
public async Task <IActionResult> Dettaglio(int id) { RegioneViewModel regione = await regioneService.GetRegioneAsync(id); ViewBag.Titolo = "Kampus Studio - Regione " + regione.nomeRegione; return(View(regione)); }
public async Task <ComuneViewModel> GetComuneAsync(string id) { FormattableString query = $"SELECT * FROM comuni WHERE codiceCatastale={id}"; DataSet dataSet = await db.QueryAsync(query); var comuneTable = dataSet.Tables[0]; if (comuneTable.Rows.Count != 1) { throw new InvalidOperationException($"Mi aspettavo che venisse restituita solo una riga della tabella {id}"); } var comuneRow = comuneTable.Rows[0]; var comuneViewModel = ComuneViewModel.FromDataRow(comuneRow); FormattableString queryReg = $"SELECT * FROM regioni WHERE codiceRegione={comuneRow["codiceRegione"]}"; DataSet dataSetReg = await db.QueryAsync(queryReg); var regioneTable = dataSetReg.Tables[0]; if (regioneTable.Rows.Count != 1) { throw new InvalidOperationException($"Mi aspettavo che venisse restituita solo una riga della tabella {comuneRow["regione"]}"); } var regioneRow = regioneTable.Rows[0]; var regioneViewModel = RegioneViewModel.FromDataRow(regioneRow); comuneViewModel.regione = (RegioneViewModel)regioneViewModel; FormattableString queryPro = $"SELECT * FROM province WHERE codiceProvincia={comuneRow["codiceProvincia"]}"; DataSet dataSetPro = await db.QueryAsync(queryPro); var provinciaTable = dataSetPro.Tables[0]; if (provinciaTable.Rows.Count != 1) { throw new InvalidOperationException($"Mi aspettavo che venisse restituita solo una riga della tabella {comuneRow["provincia"]}"); } var provinciaRow = provinciaTable.Rows[0]; var provinciaViewModel = ProvinciaViewModel.FromDataRow(provinciaRow); comuneViewModel.provincia = (ProvinciaViewModel)provinciaViewModel; return(comuneViewModel); }
public async Task <List <RegioneViewModel> > GetRegioniAsync() { // seleziona tutte le regioni in ordine alfabetico FormattableString query = $"SELECT * FROM regioni ORDER BY nomeRegione;"; DataSet dataSet = await db.QueryAsync(query); var dataTable = dataSet.Tables[0]; var regioneList = new List <RegioneViewModel>(); foreach (DataRow regioneRow in dataTable.Rows) { RegioneViewModel regione = RegioneViewModel.FromDataRow(regioneRow); // Per ogni regione seleziona il suo capoluogo // Questo codice dovrebbe essere interamente sostituito con la funzione GetRegioneAsync -- INIZIO FormattableString queryCom = $"SELECT * FROM comuni WHERE codiceCatastale={regioneRow["codiceCapoluogo"]}"; DataSet dataSetCom = await db.QueryAsync(queryCom); var comuneTable = dataSetCom.Tables[0]; if (comuneTable.Rows.Count != 1) { throw new InvalidOperationException($"Mi aspettavo che venisse restituita solo una riga della tabella {regioneRow["codiceCapoluogo"]}"); } var comuneRow = comuneTable.Rows[0]; // Questo codice dovrebbe essere interamente sostituito con la funzione GetRegioneAsync -- FINE var comuneViewModel = ComuneViewModel.FromDataRow(comuneRow); regione.codiceCapoluogo = (ComuneViewModel)comuneViewModel; // Per ogni regione conta il numero dei suoi comuni // Questo codice dovrebbe essere interamente sostituito con la funzione GetRegioneAsync -- INIZIO FormattableString queryCom2 = $"SELECT COUNT(*) FROM comuni WHERE codiceRegione={regioneRow["codiceRegione"]}"; DataSet dataSetCom2 = await db.QueryAsync(queryCom2); var comuneTable2 = dataSetCom2.Tables[0]; if (comuneTable2.Rows.Count != 1) { throw new InvalidOperationException($"Mi aspettavo che venisse restituita solo una riga della tabella {regioneRow["codiceCapoluogo"]}"); } regione.numComuni = (int)(long)comuneTable2.Rows[0][0]; // Questo codice dovrebbe essere interamente sostituito con la funzione GetRegioneAsync -- FINE // Per ogni regione conta il numero dei suoi abitanti totali // Questo codice dovrebbe essere interamente sostituito con la funzione GetRegioneAsync -- INIZIO FormattableString queryCom3 = $"SELECT SUM(abitanti) FROM comuni WHERE codiceRegione={regioneRow["codiceRegione"]}"; DataSet dataSetCom3 = await db.QueryAsync(queryCom3); var comuneTable3 = dataSetCom3.Tables[0]; if (comuneTable3.Rows.Count != 1) { throw new InvalidOperationException($"Mi aspettavo che venisse restituita solo una riga della tabella {regioneRow["codiceCapoluogo"]}"); } regione.abitanti = (int)(decimal)comuneTable3.Rows[0][0]; // Questo codice dovrebbe essere interamente sostituito con la funzione GetRegioneAsync -- FINE regioneList.Add(regione); } return(regioneList); }
public async Task <ListViewModel <ComuneViewModel> > GetComuniAsync(ComuneElencoInputModel model) { string direction = model.Ascending ? "ASC" : "DESC"; FormattableString query = $""; if (model.SearchType == "Nome comune") { query = $@"SELECT * FROM comuni WHERE nomeComune LIKE {"%" + model.Search + "%"} AND cap LIKE {"%" + model.Cap + "%"} AND prefisso LIKE {"%" + model.Prefisso + "%"} AND codiceCatastale LIKE {"%" + model.Belfiore + "%"} ORDER BY {(Sql) model.OrderBy} {(Sql) direction} LIMIT {model.Limit} OFFSET {model.Offset}; SELECT COUNT(*) FROM comuni WHERE nomeComune LIKE {"%" + model.Search + "%"} AND cap LIKE {"%" + model.Cap + "%"} AND prefisso LIKE {"%" + model.Prefisso + "%"} AND codiceCatastale LIKE {"%" + model.Belfiore + "%"}"; } if (model.SearchType == "CAP") { query = $@"SELECT * FROM comuni WHERE cap LIKE {"%" + model.Search + "%"} AND cap LIKE {"%" + model.Cap + "%"} AND prefisso LIKE {"%" + model.Prefisso + "%"} AND codiceCatastale LIKE {"%" + model.Belfiore + "%"} ORDER BY {(Sql) model.OrderBy} {(Sql) direction} LIMIT {model.Limit} OFFSET {model.Offset}; SELECT COUNT(*) FROM comuni WHERE cap LIKE {"%" + model.Search + "%"} AND cap LIKE {"%" + model.Cap + "%"} AND prefisso LIKE {"%" + model.Prefisso + "%"} AND codiceCatastale LIKE {"%" + model.Belfiore + "%"}"; } if (model.SearchType == "Prefisso") { query = $@"SELECT * FROM comuni WHERE prefisso LIKE {"%" + model.Search + "%"} AND cap LIKE {"%" + model.Cap + "%"} AND prefisso LIKE {"%" + model.Prefisso + "%"} AND codiceCatastale LIKE {"%" + model.Belfiore + "%"} ORDER BY {(Sql) model.OrderBy} {(Sql) direction} LIMIT {model.Limit} OFFSET {model.Offset}; SELECT COUNT(*) FROM comuni WHERE prefisso LIKE {"%" + model.Search + "%"} AND cap LIKE {"%" + model.Cap + "%"} AND prefisso LIKE {"%" + model.Prefisso + "%"} AND codiceCatastale LIKE {"%" + model.Belfiore + "%"}"; } if (model.SearchType == "Belfiore") { query = $@"SELECT * FROM comuni WHERE codiceCatastale LIKE {"%" + model.Search + "%"} AND cap LIKE {"%" + model.Cap + "%"} AND prefisso LIKE {"%" + model.Prefisso + "%"} AND codiceCatastale LIKE {"%" + model.Belfiore + "%"} ORDER BY {(Sql) model.OrderBy} {(Sql) direction} LIMIT {model.Limit} OFFSET {model.Offset}; SELECT COUNT(*) FROM comuni WHERE prefisso LIKE {"%" + model.Search + "%"} AND cap LIKE {"%" + model.Cap + "%"} AND prefisso LIKE {"%" + model.Prefisso + "%"} AND codiceCatastale LIKE {"%" + model.Belfiore + "%"}"; } DataSet dataSet = await db.QueryAsync(query); var dataTable = dataSet.Tables[0]; var comuneList = new List <ComuneViewModel>(); foreach (DataRow comuneRow in dataTable.Rows) { ComuneViewModel comune = ComuneViewModel.FromDataRow(comuneRow); // Questo codice dovrebbe essere interamente sostituito con la funzione GetRegioneAsync -- INIZIO FormattableString queryReg = $"SELECT * FROM regioni WHERE codiceRegione={comuneRow["codiceRegione"]}"; DataSet dataSetReg = await db.QueryAsync(queryReg); var regioneTable = dataSetReg.Tables[0]; if (regioneTable.Rows.Count != 1) { throw new InvalidOperationException($"Mi aspettavo che venisse restituita solo una riga della tabella {comuneRow["regione"]}"); } var regioneRow = regioneTable.Rows[0]; // Questo codice dovrebbe essere interamente sostituito con la funzione GetRegioneAsync -- FINE var regioneViewModel = RegioneViewModel.FromDataRow(regioneRow); comune.regione = (RegioneViewModel)regioneViewModel; // Questo codice dovrebbe essere interamente sostituito con la funzione GetProvinciaAsync -- INIZIO FormattableString queryPro = $"SELECT * FROM province WHERE codiceProvincia={comuneRow["codiceProvincia"]}"; DataSet dataSetPro = await db.QueryAsync(queryPro); var provinciaTable = dataSetPro.Tables[0]; if (provinciaTable.Rows.Count != 1) { throw new InvalidOperationException($"Mi aspettavo che venisse restituita solo una riga della tabella {comuneRow["provincia"]}"); } var provinciaRow = provinciaTable.Rows[0]; // Questo codice dovrebbe essere interamente sostituito con la funzione GetProvinciaAsync -- FINE var provinciaViewModel = ProvinciaViewModel.FromDataRow(provinciaRow); comune.provincia = (ProvinciaViewModel)provinciaViewModel; comuneList.Add(comune); } ListViewModel <ComuneViewModel> result = new ListViewModel <ComuneViewModel> { Results = comuneList, TotalCount = Convert.ToInt32(dataSet.Tables[1].Rows[0][0]) }; return(result); }