示例#1
0
        public async Task <IActionResult> PutFaza([FromRoute] int id, [FromBody] Faza faza)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != faza.IdFaze)
            {
                return(BadRequest());
            }

            _context.Entry(faza).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FazaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#2
0
        public async Task <IActionResult> PutPodrucjeProjekt([FromRoute] int id, [FromBody] PodrucjeProjekt podrucjeProjekt)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != podrucjeProjekt.Id)
            {
                return(BadRequest());
            }

            _context.Entry(podrucjeProjekt).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PodrucjeProjektExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#3
0
        public async Task <IActionResult> PutTehnoloskiStack([FromRoute] int id, [FromBody] TehnoloskiStack tehnoloskiStack)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != tehnoloskiStack.IdStacka)
            {
                return(BadRequest());
            }

            _context.Entry(tehnoloskiStack).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TehnoloskiStackExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#4
0
        public async Task <IActionResult> PutOsoba([FromRoute] int id, [FromBody] OsobaDTO osobaDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != osobaDTO.IdOsobe)
            {
                return(BadRequest());
            }

            Osoba osoba = _context.Osoba.FirstOrDefault(x => x.IdOsobe == id);

            osoba.Ime             = osobaDTO.Ime;
            osoba.Prezime         = osobaDTO.Prezime;
            osoba.Oib             = osobaDTO.Oib;
            osoba.Telefon         = osobaDTO.Telefon;
            osoba.DatumOdlaska    = osobaDTO.DatumOdlaska;
            osoba.DatumRodenja    = osobaDTO.DatumRodenja;
            osoba.DatumZaposlenja = osobaDTO.DatumZaposlenja;
            osoba.Email           = osobaDTO.Email;

            _context.Entry(osoba).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OsobaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#5
0
        public async Task <IActionResult> PutTehnologija([FromRoute] int id, [FromBody] Tehnologija tehnologijaDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != tehnologijaDTO.IdTehnologije)
            {
                return(BadRequest());
            }

            Tehnologija tehnologija = _context.Tehnologija.FirstOrDefault(x => x.IdTehnologije == id);

            tehnologija.Naziv = tehnologijaDTO.Naziv;
            tehnologija.Opis  = tehnologijaDTO.Opis;

            _context.Entry(tehnologija).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TehnologijaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#6
0
        public async Task <IActionResult> PutProjekt([FromRoute] int id, [FromBody] ProjektDTO projektDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != projektDTO.IdProjekta)
            {
                return(BadRequest());
            }

            List <DokumentProjekt> ids1 = _context.DokumentProjekt.Where(x => x.IdProjekta == projektDTO.IdProjekta).ToList();
            List <int>             ids2 = projektDTO.Dokumenti.Select(x => x.IdDokumenta).ToList();
            List <DokumentDTO>     doks = projektDTO.Dokumenti.ToList();

            for (int i = doks.Count - 1; i > -1; i--)
            {
                if (doks[i].IdDokumenta != 0)
                {
                    doks.RemoveAt(i);
                }
            }

            foreach (var i in ids1)
            {
                if (!ids2.Contains(i.IdDokumenta))
                {
                    _context.DokumentProjekt.Remove(i);
                }
            }

            DodajDokumente(doks);

            Projekt projekt = _context.Projekt.FirstOrDefault(x => x.IdProjekta == id);

            projekt.Naziv              = projektDTO.Naziv;
            projekt.Opis               = projektDTO.Opis;
            projekt.KljucneRijeci      = projektDTO.KljucneRijeci;
            projekt.IdStacka           = projektDTO.IdStacka;
            projekt.IdFaze             = projektDTO.IdFaze;
            projekt.DatumPocetka       = projektDTO.DatumPocetka;
            projekt.DatumZavrsetka     = projektDTO.DatumZavrsetka;
            projekt.IdFazeNavigation   = _context.Faza.FirstOrDefault(x => x.IdFaze == projekt.IdFaze);
            projekt.IdStackaNavigation = _context.TehnoloskiStack.FirstOrDefault(x => x.IdStacka == projekt.IdStacka);

            int n = doks.Count;

            List <Dokument> dokumenti = _context.Dokument.OrderByDescending(x => x.IdDokumenta).Take(n).ToList();

            foreach (var i in dokumenti)
            {
                DokumentProjekt x = new DokumentProjekt()
                {
                    IdProjekta           = projekt.IdProjekta,
                    IdDokumenta          = i.IdDokumenta,
                    IdProjektaNavigation = projekt,
                };

                x.IdDokumentaNavigation = _context.Dokument.FirstOrDefault(a => a.IdDokumenta == i.IdDokumenta);
                _context.DokumentProjekt.Add(x);
            }

            List <int> ids   = _context.Tehnologija.Select(x => x.IdTehnologije).ToList();
            List <int> novi  = projektDTO.Tehnologije.Select(x => x.IdTehnologije).ToList();
            List <int> stari = _context.TehnologijaProjekt.Where(x => x.IdProjekta == projekt.IdProjekta).Select(x => x.IdTehnologije).ToList();

            foreach (var i in ids)
            {
                if (novi.Contains(i) && !stari.Contains(i))
                {
                    _context.TehnologijaProjekt.Add(new TehnologijaProjekt()
                    {
                        IdProjekta              = projekt.IdProjekta,
                        IdTehnologije           = i,
                        IdProjektaNavigation    = projekt,
                        IdTehnologijeNavigation = _context.Tehnologija.FirstOrDefault(x => x.IdTehnologije == i)
                    });
                }
                if (!novi.Contains(i) && stari.Contains(i))
                {
                    _context.TehnologijaProjekt.Remove(_context.TehnologijaProjekt.FirstOrDefault(x => x.IdTehnologije == i && x.IdProjekta == projekt.IdProjekta));
                }
            }

            ids   = _context.PoslovnoPodrucje.Select(x => x.IdPodrucja).ToList();
            novi  = projektDTO.Podrucja.Select(x => x.IdPodrucja).ToList();
            stari = _context.PodrucjeProjekt.Where(x => x.IdProjekta == projekt.IdProjekta).Select(x => x.IdPodrucja).ToList();

            foreach (var i in ids)
            {
                if (novi.Contains(i) && !stari.Contains(i))
                {
                    _context.PodrucjeProjekt.Add(new PodrucjeProjekt()
                    {
                        IdProjekta           = projekt.IdProjekta,
                        IdPodrucja           = i,
                        IdProjektaNavigation = projekt,
                        IdPodrucjaNavigation = _context.PoslovnoPodrucje.FirstOrDefault(x => x.IdPodrucja == i)
                    });
                }
                if (!novi.Contains(i) && stari.Contains(i))
                {
                    _context.PodrucjeProjekt.Remove(_context.PodrucjeProjekt.FirstOrDefault(x => x.IdPodrucja == i && x.IdProjekta == projekt.IdProjekta));
                }
            }



            ids   = _context.Osoba.Select(x => x.IdOsobe).ToList();
            novi  = projektDTO.Sudionici.Select(x => x.IdOsobe).ToList();
            stari = _context.OsobaProjekt.Where(x => x.IdProjekta == projekt.IdProjekta).Select(x => x.IdOsobe).ToList();

            foreach (var i in ids)
            {
                if (novi.Contains(i) && !stari.Contains(i))
                {
                    _context.OsobaProjekt.Add(new OsobaProjekt()
                    {
                        IdProjekta           = projekt.IdProjekta,
                        IdOsobe              = i,
                        IdProjektaNavigation = projekt,
                        IdUloge              = projektDTO.Sudionici.FirstOrDefault(x => x.IdOsobe == i).IdUloge,
                        IdOsobeNavigation    = _context.Osoba.FirstOrDefault(x => x.IdOsobe == i),
                        IdUlogeNavigation    = _context.Uloga.FirstOrDefault(x => x.IdUloge == projektDTO.Sudionici.FirstOrDefault(y => y.IdOsobe == i).IdUloge)
                    });
                }
                else if (!novi.Contains(i) && stari.Contains(i))
                {
                    _context.OsobaProjekt.Remove(_context.OsobaProjekt.FirstOrDefault(x => x.IdOsobe == i && x.IdProjekta == projekt.IdProjekta));
                }
            }

            _context.Entry(projekt).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProjektExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }