[{"server":null,"owner":null,"id":"b61ddd81-5971-4f1e-9dd5-254ca69a0750","params":{"type":{"value":"EgsScheduled","datetime":1523970970,"status":null,"version":0},"settings":{"value":"{\"local_path\":\"f:\\\\exported_media\",\"ftp_path\":\"ftp://192.168.10.25:5433/test\",\"ftp_username\":\"\",\"ftp_password\":\"\"}","datetime":1523970894,"status":null,"version":0},"period_time":{"value":null,"datetime":1523970894,"status":null,"version":0},"error_text":{"value":null,"datetime":1523973219,"status":null,"version":0},"repeat":{"value":0,"datetime":1523970894,"status":null,"version":0},"period_unit":{"value":"Minute","datetime":1523970894,"status":null,"version":0},"hash":{"value":"c7oC0OXjimswWfNOeBkyKw==","datetime":1523973376,"status":null,"version":0},"name":{"value":"FTP uploader 2","datetime":1523972959,"status":null,"version":0},"enabled":{"value":false,"datetime":1523970894,"status":null,"version":0},"result":{"value":"","datetime":1523970894,"status":null,"version":0},"period_count":{"value":1,"datetime":1523970894,"status":null,"version":0},"typedef":{"value":"","datetime":1523973011,"status":null,"version":0},"state":{"value":"ok.normal","datetime":1523973219,"status":null,"version":0},"script":{"value":"# имя: 'FTP uploader 2'\r\n# описание: перенос файлов на FTP\r\n# тип триггера: 'EgsScheduled'\r\n# создан: 2017.11.08 11.34.29, Сельченков Н.Ю.\r\n# изменен: '2018.04.17 17.56.14', Сельченков Н.Ю.\r\n# подробности: https://redmine.integra-s.com:11000/projects/eilyacuario/wiki/FTP_uploader_2\r\n\r\nuse System.Net.NetworkCredential\r\nuse System.Net.WebClient\r\nuse System.IO.Path\r\nuse System.IO.Directory\r\nuse System.IO.File\r\n\r\nuse typedef\r\n`\r\n    <root>\r\n        <param name=\"local_path\" type=\"text\"/>\r\n        <param name=\"ftp_path\" type=\"text\"/>\r\n        <param name=\"ftp_username\" type=\"text\"/>\r\n        <param name=\"ftp_password\" type=\"text\"/>\r\n    </root>\r\n` as Settings\r\n\r\nconst settings = Settings(trigger.settings)\r\n\r\nlet locked(file as string) = try File.OpenWrite(file).Close(); false else true\r\n\r\nlet files = from Directory.GetFiles(settings.local_path) where it isnt locked to array\r\n\r\nif files isnt empty then\r\n    let webclient         = WebClient()\r\n    webclient.Credentials = NetworkCredential(settings.ftp_username, settings.ftp_password)\r\n    from files do \r\n        let target = settings.ftp_path + \"/\" + Path.GetFileName(it) \r\n        webclient.UploadFile(target, \"STOR\", it)\r\n        File.Delete(it) \r\n    now\r\n    webclient.Dispose()\r\nend ","datetime":1523973374,"status":null,"version":0}},"entity":"item","operation":"create"}]