//[Authorize]

        public IActionResult getorcreateuser([FromBody] UserDtoCreation uservariable)
        {
            //string userId = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;



            var userOrnull    = _userInfoRepository.ReturnUserorNull(uservariable.Id);
            var inviteOrnulll = _userInfoRepository.ReturnInviteorNull(uservariable.Id);

            //check to see if user is in the database
            //check to see if user is in the invite table
            if (userOrnull != null)
            {
                //ready to patch
                userOrnull.Authorization = uservariable.Authorization;
                _context.SaveChanges();
            }
            //if neither
            //add user to database
            if (userOrnull == null && inviteOrnulll == null)
            {
                var createdUser = _userInfoRepository.CreateUser(uservariable.Id, uservariable.Description, uservariable.Authorization);



                return(Ok(uservariable.Id));
            }

            // if in the database and not in the invite table
            //do nothing

            // if not in the database and in the invite table
            // add the user, add learner details, and enroll with the classroomID in the invite table
            if (userOrnull == null && inviteOrnulll != null)
            {
                var createdUser = _userInfoRepository.CreateUserLearnerAndEnroll(uservariable.Id, inviteOrnulll.Email, inviteOrnulll.ClassroomID);
                return(Ok(uservariable.Id));
            }
            // if in the database and in the invite table
            //do nothing

            return(Ok(uservariable.Id));
            //return CreatedAtRoute("GetUser", new
            //{
            //    id = createdUserToReturn.Id
            //}, createdUserToReturn);
        }
        //[Authorize]

        public IActionResult createEducatorDetail([FromBody] UserDtoCreation uservariable)
        {
            //string userId = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;

            var getorcreateduser = _userInfoRepository.GetorCreateUser(uservariable.Id, uservariable.Description);


            var finalUser = Mapper.Map <User>(uservariable);

            if (getorcreateduser.EducatorDetails == null && finalUser.EducatorDetails != null)
            {
                getorcreateduser.Description = finalUser.Description;
                getorcreateduser.Id          = finalUser.Id;
                //newuserinfo.EducatorDetails = new EducatorDetail() {
                //    Name = finalUser.EducatorDetails.Name
                //};

                getorcreateduser.EducatorDetails    = finalUser.EducatorDetails;
                getorcreateduser.EducatorDetails.Id = null;
                getorcreateduser.LearnerDetails     = finalUser.LearnerDetails;
                getorcreateduser.Name = finalUser.Name;
                getorcreateduser.EducatorDetails.Classrooms = finalUser.EducatorDetails.Classrooms.ToList();
                if (!_userInfoRepository.Save())
                {
                    return(StatusCode(500, "problem"));
                }
            }

            else if (getorcreateduser.LearnerDetails == null && finalUser.LearnerDetails != null)
            {
                getorcreateduser.Description    = finalUser.Description;
                getorcreateduser.Id             = finalUser.Id;
                getorcreateduser.LearnerDetails = finalUser.LearnerDetails;
                getorcreateduser.Name           = finalUser.Name;
                if (!_userInfoRepository.Save())
                {
                    return(StatusCode(500, "problem"));
                }
            }
            return(Ok());
            //return CreatedAtRoute("GetUser", new
            //{
            //    id = createdUserToReturn.Id
            //}, createdUserToReturn);
        }