public async Task <ActionResult <Rajonas> > PostRajonas(Rajonas rajonas) { if (!ModelState.IsValid) { return(StatusCode(404, "")); } using (var transaction = _context.Database.BeginTransaction()) { try { _context.Database.ExecuteSqlInterpolated($"INSERT INTO dbo.Rajonai (Pavadinimas) VALUES ({rajonas.Pavadinimas})"); // _context.Mokyklos.Add(mokykla); await _context.SaveChangesAsync(); // Commit transaction if all commands succeed, transaction will auto-rollback // when disposed if either commands fails transaction.Commit(); } catch (Exception e) { // TODO: Handle failure return(StatusCode(666, e.Message)); } } await _context.SaveChangesAsync(); return(StatusCode(200, "")); }
public async Task <ActionResult <Vaikas> > PostVaikas(Vaikas vaikas) { if (!ModelState.IsValid) { return(StatusCode(400, "")); } using (var transaction = _context.Database.BeginTransaction()) { try { var cnt = _context.Rajonai.FromSqlInterpolated($"SELECT DISTINCT(dbo.Mokyklos.MokyklaID) FROM dbo.Mokyklos, dbo.Rajonai INNER JOIN dbo.Mokyklos as mokykla ON mokykla.RajonasId = dbo.Rajonai.RajonasId WHERE dbo.Mokyklos.MokyklaId = {vaikas.MokyklaId}"); int count = cnt.Count(); if (count == 0) { throw new Exception(); } var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var stringChars = new char[8]; var random = new Random(); for (int i = 0; i < stringChars.Length; i++) { stringChars[i] = chars[random.Next(chars.Length)]; } var pridejimoKodas = new String(stringChars); _context.Database.ExecuteSqlInterpolated($"INSERT INTO dbo.Vaikai (Vardas, MokyklaId,PridejimoKodas) VALUES ({vaikas.Vardas}, {vaikas.MokyklaId},{pridejimoKodas})"); // _context.Vaikai.Add(vaikas); await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception e) { return(StatusCode(400, e.Message)); } return(StatusCode(200, "")); } }
public async Task <ActionResult <Mokykla> > PostMokykla(Mokykla mokykla) { if (!ModelState.IsValid) { return(StatusCode(400, "")); } using (var transaction = _context.Database.BeginTransaction()) { try { var cnt = _context.Rajonai.FromSqlInterpolated($"SELECT dbo.Rajonai.rajonasId FROM dbo.Rajonai WHERE dbo.Rajonai.RajonasId = {mokykla.RajonasId}"); int count = cnt.Count(); if (count == 0) { throw new Exception(); } _context.Database.ExecuteSqlInterpolated($"INSERT INTO dbo.Mokyklos (Pavadinimas, RajonasId) VALUES ({mokykla.Pavadinimas},{mokykla.RajonasId})"); // _context.Mokyklos.Add(mokykla); await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception e) { return(StatusCode(400, e.Message)); } } return(StatusCode(200, "")); }