Пример #1
0
        /// <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
        }