Exemple #1
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));
        }
Exemple #2
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));
        }
Exemple #3
0
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var spoj = await _context.Spoj.Include(s => s.SpojElement).ThenInclude(s => s.Element).SingleOrDefaultAsync(m => m.Id == id);

            if (spoj == null)
            {
                return(NotFound());
            }
            ViewDataSet();
            var spojVM = new SpojVM()
            {
                Name = spoj.Name, TypeID = spoj.TypeId, Elements = spoj.SpojElement.Select(s => s.ElementId).ToList()
            };

            return(View(spojVM));
        }