private List <Harjoitus> LueTiedosto() { // tarkistetaan, onko tiedoston data jo aiemmin luettu if (Harjoitukset.Count > 0) { return(Harjoitukset); } string[] lines = System.IO.File.ReadAllLines("wwwroot/filut/straakadata.txt"); //luetaan data tiedostosta riveittäin List <Harjoitus> harjoitukset = new List <Harjoitus>(); foreach (string line in lines) { Harjoitus h = new Harjoitus(); // etsitään tiedoston riviltä pilkku, jonka mukaan tekstijonosta voi lukea indeksillä eteen- ja taaksepäin int index1 = line.IndexOf(','); //luetaan harjotuksen nimi h.Nimi = line.Substring(0, index1 - 6).Trim(); //luetaan päivämäärä string pvm = line.Substring(index1 - 6, 6).Trim(); string vuosi = line.Substring(index1 + 2, 4); h.Vuosi = vuosi; h.Päiväys = (pvm + " " + vuosi); //luetaan harjoituksen kestoaika h.Kesto = TimeSpan.Parse(line.Substring(index1 + 6, 8)); //luetaan harjoituksen pituus kilometreinä ja muutetaan desimaaliseksi string pituus = line.Substring(index1 + 14, 5).Trim(); CultureInfo cul = new CultureInfo("en-US"); h.Matka = Convert.ToDecimal(pituus, cul); //luetaan harjoituksen keskinopeus ja muutetaan desimaaliseksi string väli = line.Substring(index1 + 18, 1); string keski = ""; //tarkistus: Jos matka on ollut alle 10 km, niin merkkijonossa 1 merkki vähemmän if (väli == " ") { keski = line.Substring(index1 + 21, 4).Trim(); } else { keski = line.Substring(index1 + 22, 4).Trim(); } h.Keskinopeus = Convert.ToDecimal(keski, cul); harjoitukset.Add(h); } // tallennetaan tiedot myöhempää käyttöä varten Harjoitukset = harjoitukset; return(harjoitukset); }
public string Put(string id, [FromBody] Harjoitus tieto) { String commandText; commandText = "dbo.UpdateHarjoitus"; SqlParameter par1 = new SqlParameter("@Aika", tieto.Aika); SqlParameter par2 = new SqlParameter("@Cus", tieto.Cus); SqlParameter par3 = new SqlParameter("@HevosId", tieto.HevosId); SqlParameter par4 = new SqlParameter("@Toiminto", tieto.Toiminto); SqlParameter par5 = new SqlParameter("@Sarjat", tieto.Sarjat); SqlParameter par6 = new SqlParameter("@Toistot", tieto.Toistot); SqlParameter par7 = new SqlParameter("@Teho", tieto.Teho); SqlParameter par8 = new SqlParameter("@Matka", tieto.Matka); SqlParameter par9 = new SqlParameter("@Toistovali", tieto.Toistovali); SqlParameter par10 = new SqlParameter("@Sarjavali", tieto.Sarjavali); SqlParameter par11 = new SqlParameter("@Paikka", tieto.Paikka); SqlParameter par12 = new SqlParameter("@Kustannus", tieto.Kustannus); SqlParameter par13 = new SqlParameter("@Selvennys", tieto.Selvennys); SqlParameter[] pars = new SqlParameter[] { par1, par2, par3, par4, par5, par6, par7, par8, par9, par10, par11, par12, par13 }; using (SqlConnection conn = new SqlConnection(DbCon.connectionString)) { using (SqlCommand cmd = new SqlCommand(commandText, conn)) { // There're three command types: StoredProcedure, Text, TableDirect. The TableDirect // type is only for OLE DB. cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddRange(pars); try { conn.Open(); int stat = cmd.ExecuteNonQuery(); return("Muutettu " + stat.ToString() + " rivi"); } catch (Exception exception) { return(exception.Message); } } } }
public Harjoitus[] Get(string id) { Harjoitus[] res = new Harjoitus[503]; int hepo = 0; String commandText = ""; SqlParameter[] pars = new SqlParameter[6]; int k = 1; string[] osat = new string[6]; string[] osat1 = new string[6]; osat1 = id.Split(new char[] { '_' }, 2, StringSplitOptions.None); if (osat1[0] == "0") { osat = osat1[1].Split(new char[] { '_' }, 2, StringSplitOptions.None); commandText = "dbo.SelectKaikkiHarjoitus"; SqlParameter par1 = new SqlParameter("@Cus", osat[0]); pars = new SqlParameter[] { par1 }; } if (osat1[0] == "1") { osat = osat1[1].Split(new char[] { '_' }, 2, StringSplitOptions.None); hepo = Convert.ToInt32(osat[1]); commandText = "dbo.SelectHarjoitus"; SqlParameter par1 = new SqlParameter("@Cus", osat[0]); SqlParameter par2 = new SqlParameter("@HevosId", hepo); pars = new SqlParameter[] { par1, par2 }; } else if (osat1[0] == "2") { osat = osat1[1].Split(new char[] { '_' }, 5, StringSplitOptions.None); hepo = Convert.ToInt32(osat[1]); commandText = "dbo.SelectAikaHarjoitus"; SqlParameter par1 = new SqlParameter("@Cus", osat[0]); SqlParameter par2 = new SqlParameter("@HevosId", hepo); SqlParameter par3 = new SqlParameter("@Alku", osat[2]); SqlParameter par4 = new SqlParameter("@Loppu", osat[3]); pars = new SqlParameter[] { par1, par2, par3, par4 }; } else if (osat1[0] == "3") { osat = osat1[1].Split(new char[] { '_' }, 2, StringSplitOptions.None); hepo = Convert.ToInt32(osat[1]); commandText = "dbo.SelectLastHarjoitus"; SqlParameter par1 = new SqlParameter("@Cus", osat[0]); SqlParameter par2 = new SqlParameter("@HevosId", hepo); pars = new SqlParameter[] { par1, par2 }; } // When the direction of parameter is set as Output, you can get the value after // executing the command. SqlConnection conn = new SqlConnection(DbCon.connectionString); using (SqlCommand cmd = new SqlCommand(commandText, conn)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddRange(pars); conn.Open(); // When using CommandBehavior.CloseConnection, the connection will be closed when the // IDataReader is closed. SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); if (reader.HasRows) { while (reader.Read()) { Harjoitus tieto = new Harjoitus(); tieto.Id = (int)reader["Id"]; tieto.Cus = (string)reader["Cus"]; tieto.Aika = (DateTime)reader["Aika"]; tieto.HevosId = (int)reader["HevosId"]; tieto.Toiminto = (string)reader["Toiminto"]; tieto.Sarjat = (int)reader["Sarjat"]; tieto.Toistot = (int)reader["Toistot"]; tieto.Teho = (int)reader["Teho"]; tieto.Matka = (int)reader["Matka"]; tieto.Toistovali = (int)reader["Toistovali"]; tieto.Sarjavali = (int)reader["Sarjavali"]; tieto.Paikka = (string)reader["Paikka"]; tieto.Kustannus = (double)reader["Kustannus"]; tieto.Selvennys = (string)reader["Selvennys"]; tieto.Kesto = (double)reader["Kesto"]; res[k++] = tieto; if (k == 500) { break; } } Harjoitus pituus = new Harjoitus(); pituus.Id = k - 1; pituus.Cus = ""; pituus.Aika = DateTime.MinValue; pituus.HevosId = 0; pituus.Toiminto = ""; pituus.Sarjat = 0; pituus.Toistot = 0; pituus.Teho = 0; pituus.Matka = 0; pituus.Toistovali = 0; pituus.Sarjavali = 0; pituus.Paikka = ""; pituus.Kustannus = 0; pituus.Selvennys = ""; pituus.Kesto = 0; res[0] = pituus; } else { Harjoitus tieto = new Harjoitus(); tieto.Id = 0; res[0] = tieto; } Array.Resize <Harjoitus>(ref res, k + 3); return(res); } }