Ejemplo n.º 1
0
        public async Task <IActionResult> PutKorisnik([FromRoute] int id, [FromBody] KorisniciFirmiEdit model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

            _context.Entry(model.Sopstvenik).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();

                IEnumerable <int>             listFirmi   = model.SelectedFirmi;
                IQueryable <FirmiSopstvenici> toBeRemoved = _context.FirmiSopstvenici.Where(s => !listFirmi.Contains(s.firmaId) &&
                                                                                            s.sopstvenikId == id);
                _context.FirmiSopstvenici.RemoveRange(toBeRemoved);

                IEnumerable <int> existFirmi = _context.FirmiSopstvenici.Where(s => listFirmi.Contains(s.firmaId) &&
                                                                               s.sopstvenikId == id).Select(s => s.firmaId);

                IEnumerable <int> newFirmi = listFirmi.Where(e => !existFirmi.Contains(e));

                foreach (int firmId in newFirmi)
                {
                    _context.FirmiSopstvenici.Add(new FirmiSopstvenici {
                        firmaId = firmId, sopstvenikId = id
                    });
                }
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!KorisnikExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Edit(int id, KorisniciFirmiEdit viewmodel)
        {
            if (id != viewmodel.Sopstvenik.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(viewmodel.Sopstvenik);
                    await _context.SaveChangesAsync();

                    IEnumerable <int>             listFirmi   = viewmodel.SelectedFirmi;
                    IQueryable <FirmiSopstvenici> toBeRemoved = _context.FirmiSopstvenici.Where(s => !listFirmi.Contains(s.firmaId) &&
                                                                                                s.sopstvenikId == id);
                    _context.FirmiSopstvenici.RemoveRange(toBeRemoved);

                    IEnumerable <int> existFirmi = _context.FirmiSopstvenici.Where(s => listFirmi.Contains(s.firmaId) &&
                                                                                   s.sopstvenikId == id).Select(s => s.firmaId);

                    IEnumerable <int> newFirmi = listFirmi.Where(e => !existFirmi.Contains(e));

                    foreach (int firmId in newFirmi)
                    {
                        _context.FirmiSopstvenici.Add(new FirmiSopstvenici {
                            firmaId = firmId, sopstvenikId = id
                        });
                    }
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!KorisnikExists(viewmodel.Sopstvenik.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(viewmodel));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var korisnik = _context.Korisnik.Where(k => k.Id == id).Include(k => k.Firmi).First();

            if (korisnik == null)
            {
                return(NotFound());
            }

            KorisniciFirmiEdit viewmodel = new KorisniciFirmiEdit
            {
                Sopstvenik    = korisnik,
                FirmiList     = new MultiSelectList(_context.Firma.OrderBy(f => f.firmName), "Id", "firmName"),
                SelectedFirmi = korisnik.Firmi.Select(f => f.firmaId)
            };

            return(View(viewmodel));
        }