public async Task <OAuthUserModel> GetIdByEmail(string EmailOrObjectId) { OAuthUserModel model = new OAuthUserModel(); try { var confidentialClient = ConfidentialClientApplicationBuilder .Create(_clientId) .WithTenantId(_tenantId) .WithClientSecret(_clientSecret) .Build(); ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClient); GraphServiceClient graphClient = new GraphServiceClient(authProvider); var user = await graphClient.Users[EmailOrObjectId].Request().GetAsync(); model.User = user; model.AuthProvider = authProvider; model.GraphService = graphClient; model.Status.Code = 200; model.Status.Message = "OK"; return(model); } catch (Exception e) { model.Status.Code = 406; model.Status.Message = e.Message; return(model); } }
public async Task <OAuthUserModel> UploadFileOneDrive(OAuthUserModel oAuth, string emailOrObjectId, string fileNameOrObjectId) { try { string _newFileName = $"Prueba Onboarding-{Guid.NewGuid()}.docx"; // where you want to save the file, with name var item = $"/Contratos/" + _newFileName; var uploadSession = await GetUploadSession(oAuth, item, emailOrObjectId); var maxChunkSize = 320 * 1024; // 320 KB - Change this to your chunk size. 5MB is the default. var provider = new ChunkedUploadProvider(uploadSession, oAuth.GraphService, oAuth.TemplateStream, maxChunkSize); // Setup the chunk request necessities var chunkRequests = provider.GetUploadChunkRequests(); var readBuffer = new byte[maxChunkSize]; var trackedExceptions = new List <Exception>(); DriveItem itemResult = null; //upload the chunks foreach (var request in chunkRequests) { // Do your updates here: update progress bar, etc. // ... // Send chunk request var result = await provider.GetChunkRequestResponseAsync(request, readBuffer, trackedExceptions); if (result.UploadSucceeded) { itemResult = result.ItemResponse; } } oAuth.Status.Code = 200; oAuth.Status.Message = "OK"; return(oAuth); } catch (Exception e) { oAuth.Status.Code = 406; oAuth.Status.Message = e.Message; return(oAuth); } }
public async Task <OAuthUserModel> GetFileStreamByUserId(OAuthUserModel oAuth, string emailOrObjectId, string fileNameOrObjectId) { try { Stream templateFileStream = await oAuth.GraphService.Users[emailOrObjectId].Drive.Items[fileNameOrObjectId].Content.Request().GetAsync(); oAuth.TemplateStream = templateFileStream; oAuth.Status.Code = 200; oAuth.Status.Message = "OK"; return(oAuth); } catch (ServiceException e) { oAuth.Status.Code = 406; oAuth.Status.Message = e.Message; return(oAuth); } }
public async Task <OAuthUserModel> ConvertFileToPdf(OAuthUserModel oAuth, string emailOrObjectId, string fileNameOrObjectId) { try { var queryOptions = new List <QueryOption>() { new QueryOption("format", "pdf") }; var stream = await oAuth.GraphService.Users[emailOrObjectId].Drive.Items[fileNameOrObjectId].Content.Request(queryOptions).GetAsync(); oAuth.PdfStream = stream; oAuth.Status.Code = 200; oAuth.Status.Message = "Ok"; return(oAuth); } catch (Exception e) { oAuth.Status.Code = 406; oAuth.Status.Message = e.Message; return(oAuth); } }
public async Task <UploadSession> GetUploadSession(OAuthUserModel oAuth, string item, string user) { return(await oAuth.GraphService.Users[user].Drive.Root.ItemWithPath(item).CreateUploadSession().Request().PostAsync()); }