/// <summary> /// Método que encontra uma conta, refrescando o token, e cria uma sessão de upload. /// </summary> /// <param name="size">tamanho do ficheiro.</param> /// <param name="name">nome do ficheiro.</param> /// <returns>Retorna Json consoante o sucesso ou insucesso da criação da sessão de upload.</returns> public async Task <IActionResult> UploadSession(long size, string name) { #region Encontrar conta e refrescar token ContaOnedrive conta = await _onedrive.GetAccountToUploadAsync(size); if (conta == null) { return(Json(new { success = false, details = "Já não existe contas com espaço sufeciente." })); } #endregion #region Criar sessão de upload string uploadUrl = await _onedrive.GetUploadSessionAsync(conta, name); switch (uploadUrl) { case "Error": return(Json(new { success = false, details = "Não foi possível criar sessão de upload." })); case "API": return(Json(new { success = false, details = "A API da OneDrive não conseguiu criar sessão de Upload." })); default: return(Json(new { success = true, url = uploadUrl, contaId = conta.ID })); } #endregion }