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));
        }