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, ""));
            }
        }
Example #3
0
        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, ""));
        }