public StructuralGroupViewModel InsertGroup(StructuralGroupViewModel viewModel) { var root = GetRoot(); if (!viewModel.ValidateNew(root)) { throw new HttpResponseException(HttpStatusCode.BadRequest); } var type = root == null ? StructuralGroupType.Root : viewModel.TypeDescription == "Class" ? StructuralGroupType.Leaf : StructuralGroupType.Intermediate; var model = new StructuralGroup(type, viewModel.Name); model.ParentId = viewModel.ParentId; using (var structureRepository = new StructureRepository(ApplicationContext.DatabaseContext.Database, ApplicationContext.Services.MemberService)) { structureRepository.Insert(model); } return(StructuralGroupViewModel.FromModel(model)); }