Пример #1
0
        public async Task <IActionResult> PutSpoj([FromRoute] int id, [FromBody] Spoj spoj)
        {
            if (!ModelState.IsValid)
            {
                logger.LogError("spoj nije valjan");
                return(BadRequest(ModelState));
            }

            if (id != spoj.Id)
            {
                logger.LogError("spoj nema dobar id" + " tražen: " + spoj.Id + " dobiven " + id);
                return(BadRequest());
            }

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

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SpojExists(id))
                {
                    logger.LogError("spoj " + id + " nije nađen");
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Пример #2
0
        public async Task <IActionResult> Create(int id, [Bind("Id,Name,TypeId")] Spoj spoj, ICollection <int> Elements)
        {
            if (Elements.Count >= Spoj.MinSizeOfElements)
            {
                _context.Add(spoj);
                if (ModelState.IsValid)
                {
                    var list = new List <SpojElement>();
                    foreach (var elem in Elements)
                    {
                        //until the ui supports entering count for each element set it to 1 and later edit it
                        list.Add(new SpojElement()
                        {
                            Count = 1, ElementId = elem, SpojId = spoj.Id
                        });
                    }



                    _context.AddRange(list);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
            }
            ViewDataSet();
            var spojVM = new SpojVM();

            return(View(spojVM));
        }
Пример #3
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,TypeId")] Spoj spoj, ICollection <int> Elements)
        {
            if (id != spoj.Id)
            {
                return(NotFound());
            }
            if (Elements.Count >= Spoj.MinSizeOfElements)
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        var list = new List <SpojElement>();
                        //Add elements to compound
                        foreach (var elem in Elements)
                        {
                            if (!SpojElementExists(spoj.Id, elem))
                            {
                                //until the ui supports entering count for each element set it to 1 and later edit it
                                list.Add(new SpojElement()
                                {
                                    Count = 1, ElementId = elem, SpojId = spoj.Id
                                });
                            }
                        }
                        //Remove elements from compound
                        foreach (var elem2 in _context.SpojElement.Where(s => s.SpojId == spoj.Id).Select(s => s.Element).ToList())
                        {
                            if (!Elements.Contains(elem2.Id))
                            {
                                var spojElementToDelete = _context.SpojElement.FirstOrDefault(s => s.SpojId == spoj.Id && s.ElementId == elem2.Id);
                                _context.Remove(spojElementToDelete);
                            }
                        }

                        _context.AddRange(list);
                        _context.Update(spoj);
                        await _context.SaveChangesAsync();
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        if (!SpojExists(spoj.Id))
                        {
                            return(NotFound());
                        }
                        else
                        {
                            throw;
                        }
                    }
                    return(RedirectToAction(nameof(Index)));
                }
            }
            ViewDataSet();
            var spojVM = new SpojVM();

            return(View(spojVM));
        }
Пример #4
0
        public async Task <IActionResult> PostSpoj([FromBody] Spoj spoj)
        {
            if (!ModelState.IsValid)
            {
                logger.LogError("spoj nije valjan");
                return(BadRequest(ModelState));
            }

            _context.Spoj.Add(spoj);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetSpoj", new { id = spoj.Id }, spoj));
        }