public async Task <IActionResult> PutTechPreference(int id, TechPreference techPreference)
        {
            if (id != techPreference.Id)
            {
                return(BadRequest());
            }

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

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

            return(NoContent());
        }
        public void Test()
        {
            var techJS = new Tech()
            {
                Name = "JS"
            };
            var techCPP = new Tech()
            {
                Name = "C++"
            };
            var techjava = new Tech()
            {
                Name = "Java"
            };
            var techsharp = new Tech()
            {
                Name = "C#"
            };
            var technode = new Tech()
            {
                Name = "Node .JS"
            };
            var techHS = new Tech()
            {
                Name = "Haskell"
            };
            var techjs1 = new TechPreference()
            {
                Tech = techJS, PreferenceLevel = 1
            };
            var techcpp1 = new TechPreference()
            {
                Tech = techCPP, PreferenceLevel = 1
            };
            var techidk1 = new TechPreference()
            {
                Tech = techjava, PreferenceLevel = 0
            };
            var techidk2 = new TechPreference()
            {
                Tech = techsharp, PreferenceLevel = 0
            };
            var techidk3 = new TechPreference()
            {
                Tech = technode, PreferenceLevel = 0
            };
            var techhs1 = new TechPreference()
            {
                Tech = techHS, PreferenceLevel = 1
            };
            var techjs0 = new TechPreference()
            {
                Tech = techJS, PreferenceLevel = -1
            };
            var techcpp0 = new TechPreference()
            {
                Tech = techCPP, PreferenceLevel = -1
            };
            var techhs0 = new TechPreference()
            {
                Tech = techHS, PreferenceLevel = -1
            };
            var a = new Student()
            {
                Name = "a"
            };
            var b = new Student()
            {
                Name = "b"
            };
            var c = new Student()
            {
                Name = "c"
            };
            var d = new Student()
            {
                Name = "d"
            };
            var e = new Student()
            {
                Name = "e"
            };
            var f = new Student()
            {
                Name = "f"
            };
            var g = new Student()
            {
                Name = "g"
            };
            var h = new Student()
            {
                Name = "h"
            };
            var qs = new List <Questionnaire>
            {
                new Questionnaire {
                    Student = a, TechPreferences = { techjs1, techcpp1, techhs1, techidk1, techidk2, techidk3 }
                },
                new Questionnaire {
                    Student = b, TechPreferences = { techjs1, techcpp1, techhs1, techidk1, techidk2, techidk3 }
                },
                new Questionnaire {
                    Student = c, TechPreferences = { techjs1, techcpp0, techhs1, techidk1, techidk2, techidk3 }
                },
                new Questionnaire {
                    Student = d, TechPreferences = { techjs1, techcpp1, techhs1, techidk1, techidk2, techidk3 }
                },
                new Questionnaire {
                    Student = e, TechPreferences = { techjs1, techcpp1, techhs1, techidk1, techidk2, techidk3 }
                },
                new Questionnaire {
                    Student = f, TechPreferences = { techjs0, techcpp0, techhs0, techidk1, techidk2, techidk3 }
                },
                new Questionnaire {
                    Student = g, TechPreferences = { techjs0, techcpp1, techhs0, techidk1, techidk2, techidk3 }
                },
                new Questionnaire {
                    Student = h, TechPreferences = { techjs0, techcpp0, techhs0, techidk1, techidk2, techidk3 }
                },
                new Questionnaire {
                    Student = new Student {
                        Name = "i"
                    }, TechPreferences = { techjs0, techcpp1, techhs0, techidk1, techidk2, techidk3 }
                },
                new Questionnaire {
                    Student = new Student {
                        Name = "j"
                    }, TechPreferences = { techjs0, techcpp0, techhs0, techidk1, techidk2, techidk3 }
                },
            };

            qs[3].TeammatePreferences.Add(new TeammatePreference {
                Initiator = qs[3], Friend1 = a, Friend2 = b, Friend3 = c
            });
            qs[7].TeammateAntipreferences.Add(new TeammateAntipreference {
                Initiator = qs[7], Enemy1 = e, Enemy2 = f, Enemy3 = g
            });
            var alg = new Algorithm(qs, 4, 5);
            var res = alg.Run(new Class {
                Id = 0
            });

            Assert.Equal(10, res.SelectMany(gr => gr.Studentgroups.Select(sg => sg.Student).ToList()).Count());
        }