Exemplo n.º 1
0
        public Result <string> GetDriveAuthorizationUrl([FromBody] string url)
        {
            var result = new Result <string>();

            try
            {
                var connector = new GoogleDrive(DataRepository);
                var memberId  = GetMemberFromAuthenticatedUser().Id;
                var access    =
                    DataRepository.Queryable <MemberStorageAccess>()
                    .FirstOrDefault(s => s.MemberId == memberId && s.Type == StorageProviderType.GoogleDrive);

                if (access != null && !access.Token.StartsWith("{\"access_token\":"))
                {
                    DataRepository.Delete(access);
                }

                result.Data = connector.GetAuthorizeUrl(Request.RequestUri.ToString(), url, memberId);
                if (result.Data == null)
                {
                    result.Status.Code = Controller.StatusCode.GoogleDriverAlreadyAuthorized;
                }
            }
            catch (Exception ex)
            {
                LogExceptionAndSetResult(ex, result);
            }

            return(result);
        }