Example #1
0
        public Task <TaskInfoList> GetInfo(IEnumerable <string> ids, AdditionalInfoFlags additional = AdditionalInfoFlags.None)
        {
            if (ids == null)
            {
                throw new ArgumentNullException(nameof(ids));
            }

            var stringIds = String.Join(",", ids);

            if (String.IsNullOrWhiteSpace(stringIds))
            {
                throw new ArgumentException("Collection is empty.", nameof(ids));
            }

            var parameters = new Dictionary <string, object>()
            {
                { "api", "SYNO.DownloadStation.Task" },
                { "version", 1 },
                { "method", "getinfo" },
                { "id", stringIds },
                { "_sid", _authInfo.SessionId }
            };

            if (additional != AdditionalInfoFlags.None)
            {
                parameters["additional"] = additional.ToString().ToLowerInvariant().Replace(" ", "");
            }

            return(_client.GetAsync <TaskInfoList>(@"DownloadStation/task.cgi", parameters));
        }
Example #2
0
        public async Task GetInfoTest(IEnumerable <string> ids, AdditionalInfoFlags flags, string idsExpected, string flagsExpected)
        {
            IDictionary <string, object> parameters = null;

            _clientMock.Setup((client => client.GetAsync <TaskInfoList>(It.IsAny <string>(), It.IsAny <IDictionary <string, object> >())))
            .Callback <string, IDictionary <string, object> >((s, objects) => { parameters = objects; })
            .ReturnsAsync(new TaskInfoList());

            var result = await _service.GetInfo(ids, flags);

            _clientMock.Verify((client => client.GetAsync <TaskInfoList>("DownloadStation/task.cgi", It.IsAny <IDictionary <string, object> >())), Times.Once);

            Assert.That(result, Is.Not.Null);

            var expected = new Dictionary <string, object>()
            {
                { "api", "SYNO.DownloadStation.Task" },
                { "version", 1 },
                { "method", "getinfo" },
                { "id", idsExpected },
                { "_sid", _authInfo.SessionId }
            };

            if (flagsExpected != null)
            {
                expected["additional"] = flagsExpected;
            }

            CollectionAssert.AreEquivalent(expected, parameters);
        }
Example #3
0
        public Task <TaskInfoList> ListTasks(int offset = 0, int limit = -1, AdditionalInfoFlags additional = AdditionalInfoFlags.None)
        {
            var parameters = new Dictionary <string, object>()
            {
                { "api", "SYNO.DownloadStation.Task" },
                { "version", 1 },
                { "method", "list" },
                { "offset", offset },
                { "limit", limit },
                { "_sid", _authInfo.SessionId }
            };

            if (additional != AdditionalInfoFlags.None)
            {
                parameters["additional"] = additional.ToString().ToLowerInvariant().Replace(" ", "");
            }

            return(_client.GetAsync <TaskInfoList>(@"DownloadStation/task.cgi", parameters));
        }