SPDeployment.Deployer.GetClientContext C# (CSharp) Method

GetClientContext() private method

private GetClientContext ( DeploymentSite site ) : ClientContext
site DeploymentSite
return ClientContext
        private ClientContext GetClientContext(DeploymentSite site)
        {
            var context = new ClientContext(site.Url);

            var username = string.IsNullOrEmpty(_credentialConfiguration?.Username) ? site.Username : _credentialConfiguration?.Username;
            var password = string.IsNullOrEmpty(_credentialConfiguration?.Password) ? site.Password : _credentialConfiguration?.Password;

            if (string.IsNullOrEmpty(username))
            {
                Console.ResetColor();
                Console.WriteLine("Please enter username for {0}", site.Url);
                username = Console.ReadLine();
            }
            if (string.IsNullOrEmpty(password))
            {
                Console.ResetColor();
                Console.WriteLine("Please enter password for user {0} and site {1}", username, site.Url);
                ConsoleKeyInfo key;
                string pw = "";
                do
                {
                    key = Console.ReadKey(true);
                    if (key.Key != ConsoleKey.Enter)
                        pw += key.KeyChar;
                    Console.Write("*");
                }
                while (key.Key != ConsoleKey.Enter);
                Console.WriteLine();
                password = pw;
            }

            if (site.Url.ToUpper().Contains("SHAREPOINT.COM"))
            {
                var securePassword = new SecureString();
                foreach (char c in password) securePassword.AppendChar(c);
                context.Credentials = new SharePointOnlineCredentials(username, securePassword);
            }
            else
            {
                context.Credentials = new System.Net.NetworkCredential(username, password);
            }
            context.ExecutingWebRequest += (sender, e) => { e.WebRequestExecutor.WebRequest.PreAuthenticate = true; };
            return context;
        }