private UploadSession CreateUploadSession(string userId, string itemPath)
        {
            try
            {
                var urlRoot     = $"https://graph.microsoft.com/v1.0/";
                var url         = $"{urlRoot}/users/{userId}/drive/items/{itemPath}/createUploadSession";
                var json        = "{ \"@microsoft.graph.conflictBehavior\": \"rename\", \"name\": \"temp-large-file.dat\" }";
                var buffer      = System.Text.Encoding.UTF8.GetBytes(json);
                var byteContent = new ByteArrayContent(buffer);
                byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                var response      = _restClient.postResponse(url, byteContent);
                var responseBody  = response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult();
                var uploadSession = JsonConvert.DeserializeObject <UploadSession>(responseBody);
                return(uploadSession);
            }
            catch (ServiceException ex)
            {
                Console.Error.WriteLine(ex);
            }

            return(null);
        }