コード例 #1
0
ファイル: Repository.cs プロジェクト: ralfw/appzwitschern
 public void Delete(Versandauftrag versandauftrag, Action onEndOfStream)
 {
     if (versandauftrag != null)
         _ftp.DeleteFile(Build_filename(versandauftrag));
     else
         onEndOfStream();
 }
コード例 #2
0
        public Versandauftrag Versenden(Versandauftrag versandauftrag)
        {
            if (versandauftrag == null) return null;

            var twitter = new Twitter(TokenRepository.LoadFrom("twitter.consumer.token.txt"));

            twitter.SendMessage(versandauftrag.Text, versandauftrag.Credentials.Key, versandauftrag.Credentials.Secret);

            return versandauftrag;
        }
コード例 #3
0
ファイル: Repository.cs プロジェクト: ralfw/appzwitschern
        public void Store(Versandauftrag versandauftrag, Action onEndOfStream)
        {
            if (versandauftrag == null) { onEndOfStream(); return; }

            var data = _serialization.Serialize(versandauftrag);

            var filename = Build_filename(versandauftrag);
            File.WriteAllText(filename, data);
            try
            {
                _ftp.PutFile(filename, filename);
            }
            finally
            {
                File.Delete(filename);
            }
        }
コード例 #4
0
        public void Run()
        {
            const string TEST_REPO_PATH = @"c:\appzwitschern";
            if (Directory.Exists(TEST_REPO_PATH)) Directory.Delete(TEST_REPO_PATH, true);

            var repo = new Repository(TEST_REPO_PATH);

            var va1 = new Versandauftrag() { Text = "a", Termin = new DateTime(2012, 6, 21), Id = Guid.NewGuid().ToString() };
            repo.Store(va1, null);
            var endOfStream = false;
            var va2 = new Versandauftrag() { Text = "b", Termin = new DateTime(2012, 6, 20), Id = Guid.NewGuid().ToString() };
            repo.Store(va2, null);
            repo.Store(null, () => endOfStream = true);
            Assert.IsTrue(endOfStream);
            endOfStream = false;

            var results = new List<string>();
            repo.List(results.Add);

            Assert.That(results.Select(fn => fn==null ? null : Path.GetFileName(fn)).ToArray(),
                        Is.EquivalentTo(new[] { va1.Id + ".tweet", va2.Id + ".tweet", null }));

            var resultVAs = new List<Versandauftrag>();
            foreach(var fn in results)
                repo.Load(fn, resultVAs.Add);

            Assert.That(resultVAs.Select(_ => _==null ? null : _.Text).ToArray(),
                                           Is.EquivalentTo(new[]{"a", "b", null}));

            resultVAs.ForEach(va => repo.Delete(va, () => endOfStream = true));

            Assert.AreEqual(0, Directory.GetFiles(TEST_REPO_PATH).Length);
            Assert.IsTrue(endOfStream);

            Directory.Delete(TEST_REPO_PATH);
        }
コード例 #5
0
ファイル: Repository.cs プロジェクト: ralfw/appzwitschern
 private string Build_filename(Versandauftrag versandauftrag)
 {
     var datum = versandauftrag.Termin.ToString("s").Replace("-", "").Replace(":", "");
     return string.Format("{0:s}-{1}.tweet", datum, versandauftrag.Id);
 }
コード例 #6
0
ファイル: Program.cs プロジェクト: ralfw/appzwitschern
 private void Filtern(Versandauftrag versandauftrag, Action<Versandauftrag> continueWith)
 {
     if (versandauftrag == null || versandauftrag.Termin <= DateTime.Now)
         continueWith(versandauftrag);
 }
コード例 #7
0
 public Versandauftrag Versandauftrag_um_access_token_erweitern(Versandauftrag versandauftrag)
 {
     versandauftrag.Credentials = TokenRepository.LoadFrom("twitter.access.token.txt");
     return versandauftrag;
 }