private void btnAdd_Click(object sender, RoutedEventArgs e) { string queueName = ConfigurationManager.AppSettings["MSMQLocation"]; MessageQueue rmTxnQ = new MessageQueue(queueName); rmTxnQ.Formatter = new XmlMessageFormatter(new Type[] { typeof(ProcessMessage) }); foreach (ListBoxItem itm in files.Items) { MessageQueueTransaction msgTx = new MessageQueueTransaction(); msgTx.Begin(); try { string argument = "-i \"{0}\" -o \"{1}\" --preset \"" + ConfigurationManager.AppSettings["HandbrakePreset"] + "\""; string destination = txtDestination.Text + "\\" + System.IO.Path.GetFileNameWithoutExtension(itm.ToolTip.ToString()) + ".m4v"; ProcessMessage p = new ProcessMessage() { CommandLine = argument, DestinationURL = destination, OrignalFileURL = itm.ToolTip.ToString() }; rmTxnQ.Send(p, msgTx); results.Items.Insert(0, string.Format("{0} added to queue", p.OrignalFileURL)); msgTx.Commit(); } catch (Exception ex) { results.Items.Insert(0, ex.Message); msgTx.Abort(); } } }
static void Main(string[] args) { string queueName = ConfigurationManager.AppSettings["MSMQLocation"]; if (args.Count() != 4) { Console.WriteLine("needs 4 params: sourcedir sourcefiletypes dstdir dstfileformat"); return; } try { MessageQueue rmTxnQ = new MessageQueue(queueName); rmTxnQ.Formatter = new XmlMessageFormatter(new Type[] { typeof(ProcessMessage) }); string[] files = Directory.GetFiles(args[0], args[1], SearchOption.AllDirectories); int count = 0; foreach (string s in files) { MessageQueueTransaction msgTx = new MessageQueueTransaction(); msgTx.Begin(); try { string argument = "-i \"{0}\" -o \"{1}\" --preset \"" + ConfigurationManager.AppSettings["HandbrakePreset"] + "\""; string destination = args[2] + "\\" + Path.GetFileNameWithoutExtension(s) + args[3]; ProcessMessage p = new ProcessMessage() { CommandLine = argument, DestinationUrl = destination, OrignalFileUrl = s }; rmTxnQ.Send(p, msgTx); Console.WriteLine("Adding message for {0} to queue", s); count++; msgTx.Commit(); } catch (Exception ex) { Console.WriteLine(ex.Message); msgTx.Abort(); } } Console.WriteLine("added {0} items to queue. Queue count now {1}", count, rmTxnQ.GetAllMessages().Count()); } catch (Exception ex) { Console.WriteLine(ex.Message); } }