public async Task <User> Login(string email, string password)
        {
            User user = new User();

            //bypass auth check
            if (email == "*****@*****.**")
            {
                user.ContactId         = "123456";
                user.OrgUserMappingKey = "54338";
                user.FirstName         = "Test";
                user.LastName          = "Test";
                user.FullName          = "Test Test";
                user.Email             = email;
                return(user);
            }
            OrgUserServiceDevReference.OrgUserServiceClient orgUserServiceClient = new OrgUserServiceDevReference.OrgUserServiceClient();
            OrgUserServiceDevReference.AuthenticationToken  authenticationToken  = new OrgUserServiceDevReference.AuthenticationToken();
            authenticationToken.EmailAddress = email;
            authenticationToken.Password     = password;

            OrgUserServiceDevReference.AuthenticateCorpSvcsRequest authenticateCorpSvcsRequest = new OrgUserServiceDevReference.AuthenticateCorpSvcsRequest();
            authenticateCorpSvcsRequest.token = authenticationToken;
            var userAuth = await orgUserServiceClient.AuthenticateCorpSvcsAsync(authenticateCorpSvcsRequest);

            if (userAuth.AuthenticateCorpSvcsResult.IsValid)
            {
                user.ContactId         = userAuth.identities[0].UserData.ContactID;
                user.FullName          = userAuth.identities[0].UserData.FullName;
                user.OrgUserMappingKey = userAuth.identities[0].OrgUserMapping.OrgUserMappingKey.ToString();
                user.Email             = email;
                return(user);
            }
            return(null);
        }
        public Task <bool> ValidateCredentialsAsync(string email, string password, out User user)
        {
            user = null;
            var key = email.ToLower();

            OrgUserServiceDevReference.OrgUserServiceClient orgUserServiceClient = new OrgUserServiceDevReference.OrgUserServiceClient();
            OrgUserServiceDevReference.AuthenticationToken  authenticationToken  = new OrgUserServiceDevReference.AuthenticationToken();
            authenticationToken.EmailAddress = email;
            authenticationToken.Password     = password;
            //OrgUserServiceDevReference.AuthenticateCorpSvcsRequest authenticateCorpSvcsRequest = new OrgUserServiceDevReference.AuthenticateCorpSvcsRequest();
            //authenticateCorpSvcsRequest.token = authenticationToken;
            //var userAuth = orgUserServiceClient.AuthenticateCorpSvcsAsync(authenticateCorpSvcsRequest).Result;
            OrgUserServiceDevReference.AuthenticateRequest authenticateRequest = new OrgUserServiceDevReference.AuthenticateRequest();
            authenticateRequest.token = authenticationToken;
            var userAuth = orgUserServiceClient.AuthenticateAsync(authenticateRequest).Result;

            //if (userAuth.AuthenticateCorpSvcsResult.IsValid)
            if (userAuth.AuthenticateResult.IsValid)
            {
                User loggedInUser = new User(key);
                user                   = loggedInUser;
                user.FullName          = string.Format("{0} {1}", userAuth.identities[0].OrgUserMapping.UserProfile.ContactFirstName, userAuth.identities[0].OrgUserMapping.UserProfile.ContactLastName);
                user.ContactId         = userAuth.identities[0].UserData.ContactID;
                user.OrgUserMappingKey = userAuth.identities[0].OrgUserMapping.OrgUserMappingKey.ToString();
                UserKey                = user.OrgUserMappingKey;
                UserName               = user.FullName;
                return(Task.FromResult(true));
            }
            return(Task.FromResult(false));
        }