Exemplo n.º 1
0
        public async Task LoginAsync(
            string username,
            string password,
            string otpCode = "")
        {
            var loginResult = await AuthApi().LoginAsync(username, password, otpCode);

            Session = new SynologySession(loginResult.Sid);
        }
Exemplo n.º 2
0
 public FileStationUploadEndpoint(ISynologyHttpClient synologyHttpClient,
                                  IApiInfo apiInfo,
                                  ISynologySession session,
                                  IFileSystem fileSystem)
 {
     _synologyHttpClient = synologyHttpClient;
     _apiInfo            = apiInfo;
     _session            = session;
     _fileSystem         = fileSystem;
 }
Exemplo n.º 3
0
        public async Task LogoutAsync()
        {
            if (!IsLoggedIn)
            {
                return;
            }

            await AuthApi().LogoutAsync(Session.Sid);

            Session = null;
        }
        public SynologyHyperBackupApi(ISynologySession session)
        {
            if (session == null)
            {
                throw new ArgumentNullException("session");
            }
            _session = session;

            if (string.IsNullOrEmpty(_session.sid))
            {
                throw new SynologyClientException("Session Id is empty");
            }
        }
Exemplo n.º 5
0
        public async Task <T> GetAsync <T>(
            IApiInfo apiInfo,
            string apiMethod,
            object queryParams,
            ISynologySession session = null)
        {
            var flurlRequest = BuildGetRequest(apiInfo, apiMethod, queryParams, session);

            using (var httpResponse = await flurlRequest.GetAsync())
            {
                return(await HandleSynologyResponse <T>(httpResponse, apiInfo, apiMethod));
            }
        }
Exemplo n.º 6
0
        private IFlurlRequest BuildGetRequest(IApiInfo apiInfo, string apiMethod, object queryParams, ISynologySession session = null)
        {
            var flurlRequest = _flurlClient
                               .Request(apiInfo.Path)
                               .SetQueryParams(new
            {
                api     = apiInfo.Name,
                version = apiInfo.Version,
                method  = apiMethod,
            });

            flurlRequest.SetQueryParams(queryParams);

            if (!string.IsNullOrWhiteSpace(apiInfo.SessionName))
            {
                flurlRequest.SetQueryParam("session", apiInfo.SessionName);
            }

            if (session != null)
            {
                flurlRequest.SetQueryParam("_sid", session.Sid);
            }

            return(flurlRequest);
        }
Exemplo n.º 7
0
        public async Task <T> PostAsync <T>(IApiInfo apiInfo, string apiMethod, HttpContent content, ISynologySession session = null)
        {
            var flurlRequest = _flurlClient.Request(apiInfo.Path);

            if (session != null)
            {
                flurlRequest.SetQueryParam("_sid", session.Sid);
            }

            using (var httpResponse = await flurlRequest.PostAsync(content))
            {
                return(await HandleSynologyResponse <T>(httpResponse, apiInfo, apiMethod));
            }
        }
Exemplo n.º 8
0
 public DownloadStationTaskEndpoint(ISynologyHttpClient synologyHttpClient, IApiInfo apiInfo, ISynologySession session)
 {
     _synologyHttpClient = synologyHttpClient;
     _apiInfo            = apiInfo;
     _session            = session;
 }
Exemplo n.º 9
0
 public FileStationApi(ISynologyHttpClient synologyHttpClient, IApisInfo apisInfo, ISynologySession session)
 {
     _synologyHttpClient = synologyHttpClient;
     _apisInfo           = apisInfo;
     _session            = session;
 }
Exemplo n.º 10
0
 public FileStationExtractEndpoint(ISynologyHttpClient synologyHttpClient, IApiInfo apiInfo, ISynologySession session)
 {
     _synologyHttpClient = synologyHttpClient;
     _apiInfo            = apiInfo;
     _session            = session;
 }
Exemplo n.º 11
0
 public FileStationUploadEndpoint(ISynologyHttpClient synologyHttpClient, IApiInfo apiInfo, ISynologySession session)
     : this(synologyHttpClient, apiInfo, session, new FileSystem())
 {
 }