public async Task <IActionResult> CreateUser([FromBody] CreateUserViewModel cuvm)
        {
            Log.Info("Create user flow initiated");

            //Validate
            if (cuvm == null || string.IsNullOrEmpty(cuvm.firstName) || string.IsNullOrEmpty(cuvm.email) || string.IsNullOrEmpty(cuvm.password))
            {
                string msg = "One or more values are not set.";
                Log.Warn(msg);
                return(BadRequest(ResponseViewModel.GetErrorModel(msg)));
            }

            //Act
            User user = await _uService.CreateUser(cuvm.firstName, cuvm.lastName, cuvm.email, cuvm.password);

            if (user == null)
            {
                string msg = "Could not create user.";
                Log.Warn(msg);
                return(BadRequest(ResponseViewModel.GetErrorModel(msg)));
            }

            var response = ResponseViewModel.GetSuccessModel("User was successfully created.");

            //Response
            Log.Info("Create User flow Succes");
            return(Json(response));
        }
        public async Task <IActionResult> LoginFacebook([FromBody] FacebookLoginViewModel flvm)
        {
            Log.Info("Facebook login flow started");

            if (string.IsNullOrEmpty(flvm.userid) || string.IsNullOrEmpty(flvm.firstName))
            {
                return(BadRequest(ResponseViewModel.GetErrorModel("Missing Parameters")));
            }

            User user = await _lService.LoginFacebook(flvm.userid);

            if (string.IsNullOrEmpty(user.FirstName))
            {
                //TODO handle this in another way.
                //used to catch cast errors in .LoginFacebook
                return(BadRequest(ResponseViewModel.GetErrorModel("Could not log facebook user in.")));
            }
            else if (user != null)
            {
                // user exists
                return(Ok(ResponseViewModel.GetSuccessModel("Facebook user was logged in.")));
            }

            //User doesnt exist, create it.
            user = await _uService.CreateFacebookUser(flvm.userid, flvm.firstName);

            if (user == null)
            {
                string msg = "Could not create facebook user.";
                Log.Warn(msg);
                return(BadRequest(ResponseViewModel.GetSuccessModel(msg)));
            }

            //Response
            Log.Info("Login flow Succes");
            return(Ok(ResponseViewModel.GetSuccessModel("Facebook user was created and logged in.")));
        }