Example #1
0
        public async Task <IActionResult> EdycjaFormularza(int id, [Bind("IdForm, fields")] FormContainsField formContainsField)
        {
            if (ModelState.IsValid)
            {
                //pobranie wszystkich powiązań pól z edytowanym formularzem
                var       FormField = _context.FormField.Where(ff => ff.IdForm == formContainsField.IdForm).Select(ff => ff.IdField).ToList();
                FormField formField;
                foreach (var key in formContainsField.fields)
                {
                    if (key.ContainsField == true && !FormField.Contains(key.IdField))  //jeśli chcemy dodać pole
                    {                                                                   //którego jeszcze nie przypisano
                        formField = new FormField
                        {
                            IdField = key.IdField,
                            IdForm  = (int)formContainsField.IdForm
                        };
                        _context.Update(formField);
                        await _context.SaveChangesAsync();
                    }    // jeśli chcemy usunąć pole które już było przypisane
                    else if (key.ContainsField == false && FormField.Contains(key.IdField))
                    {
                        var IdDoUsuniecia = _context.FormField.Where(ff => ff.IdField == key.IdField && ff.IdForm == formContainsField.IdForm).Select(ff => ff.Id).ToList();
                        var doUsuniecia   = await _context.FormField.FindAsync(IdDoUsuniecia[0]);

                        _context.FormField.Remove(doUsuniecia);
                        await _context.SaveChangesAsync();
                    }
                }
                return(RedirectToAction(nameof(ListaFormularzy)));
            }
            return(View(formContainsField));
        }
Example #2
0
        // GET: Forms/Edit/5
        public IActionResult EdycjaFormularza(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            IdFieldBool idFieldBool;
            //pobranie do listy wszystkich pól(id i nazwę)
            var allFields = _context.Field.Select(af => new { af.Id, af.Name }).ToList();
            //pobranie do listy wszystkich przypisań pól które są przypisane do formularza
            var fieldsInForm = _context.FormField.Where(ff => ff.IdForm == id).Select(ff => ff.IdField).ToList();
            //tworzenie instancji modelu potrzebnego do wyświetlenia danych w widoku raz pobrania niezbędnych
            //informacji
            FormContainsField formContainsField = new FormContainsField
            {
                IdForm = id
            };

            foreach (var field in allFields)
            {
                idFieldBool = new IdFieldBool
                {
                    IdField   = field.Id,
                    NameField = field.Name
                };
                if (fieldsInForm.Contains(field.Id))
                {
                    idFieldBool.ContainsField = true;
                    formContainsField.fields.Add(idFieldBool);
                }
                else
                {
                    idFieldBool.ContainsField = false;
                    formContainsField.fields.Add(idFieldBool);
                }
            }



            return(View(formContainsField));
        }