// // Sample invocation: csharp.example.declare_queues.exe localhost:5672 my-queue // static int Main(string[] args) { string addr = "localhost:5672"; string queue = "my-queue"; if (args.Length > 0) addr = args[0]; if (args.Length > 1) queue = args[1]; Connection connection = null; try { connection = new Connection(addr); connection.Open(); Session session = connection.CreateSession(); String queueName = queue + "; {create: always}"; Sender sender = session.CreateSender(queueName); session.Close(); connection.Close(); return 0; } catch (Exception e) { Console.WriteLine("Exception {0}.", e); if (null != connection) connection.Close(); } return 1; }
static void Main(string[] args) { String broker = args.Length > 0 ? args[0] : "localhost:5672"; String address = args.Length > 1 ? args[1] : "amq.topic"; Connection connection = null; try { connection = new Connection(broker); connection.Open(); Session session = connection.CreateSession(); Receiver receiver = session.CreateReceiver(address); Sender sender = session.CreateSender(address); sender.Send(new Message("Hello world!")); Message message = new Message(); message = receiver.Fetch(DurationConstants.SECOND * 1); Console.WriteLine("{0}", message.GetContent()); session.Acknowledge(); connection.Close(); } catch (Exception e) { Console.WriteLine("Exception {0}.", e); if (null != connection) connection.Close(); } }
// // Sample invocation: csharp.example.drain.exe --broker localhost:5672 --timeout 30 my-queue // static int Main(string[] args) { Options options = new Options(args); Connection connection = null; try { connection = new Connection(options.Url, options.ConnectionOptions); connection.Open(); Session session = connection.CreateSession(); Receiver receiver = session.CreateReceiver(options.Address); Duration timeout = options.Forever ? DurationConstants.FORVER : DurationConstants.SECOND * options.Timeout; Message message = new Message(); while (receiver.Fetch(ref message, timeout)) { Dictionary<string, object> properties = new Dictionary<string, object>(); properties = message.Properties; Console.Write("Message(properties={0}, content='", message.MapAsString(properties)); if ("amqp/map" == message.ContentType) { Dictionary<string, object> content = new Dictionary<string, object>(); message.GetContent(content); Console.Write(message.MapAsString(content)); } else if ("amqp/list" == message.ContentType) { Collection<object> content = new Collection<object>(); message.GetContent(content); Console.Write(message.ListAsString(content)); } else { Console.Write(message.GetContent()); } Console.WriteLine("')"); session.Acknowledge(); } receiver.Close(); session.Close(); connection.Close(); return 0; } catch (Exception e) { Console.WriteLine("Exception {0}.", e); if (null != connection) connection.Close(); } return 1; }
public void Dispose() { Model?.Close(); Model?.Dispose(); Connection?.Close(); Connection?.Dispose(); }
private void btnLoadPI_Click(object sender, EventArgs e) { try { Connection cnx = new Connection(); cnx.Open(ConfigurationManager.AppSettings["K2ServerName"]); SourceCode.Workflow.Client.ProcessInstance pi = cnx.OpenProcessInstance(int.Parse(txtProcInstanceId.Text)); txtFolio.Text = pi.Folio; lblStatus.Text = pi.Status1.ToString(); txtProcessFullName.Text = pi.FullName; DataTable dt = new DataTable("Datafields"); dt.Columns.Add("Name"); dt.Columns.Add("Value"); foreach (DataField df in pi.DataFields) { dt.Rows.Add(new object[] { df.Name, df.Value }); } displayActivity(); dgvDatafields.DataSource = dt; dgvDatafields.Refresh(); dgvDatafields.AutoResizeColumn(0); dgvDatafields.Columns[0].ReadOnly = true; dgvDatafields.AutoResizeColumn(1); cnx.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "PI Manager eror"); } }
public void Dispose() { Connection?.Close(); Channel?.Dispose(); Connection?.Dispose(); IsListening = false; }
private async void SendFileButton_Clicked(object sender, EventArgs eventArgs) { SetInputEnabled(false); string filePath = null; Connection connection = null; try { await Task.Factory.StartNew(() => { connection = CreateConnection(); connection.Open(); ZebraPrinter printer = ZebraPrinterFactory.GetInstance(connection); filePath = CreateDemoFile(printer.PrinterControlLanguage); printer.SendFileContents(filePath); }); } catch (Exception e) { await DisplayAlert("Error", e.Message, "OK"); } finally { try { connection?.Close(); } catch (ConnectionException) { } if (filePath != null) { try { new FileInfo(filePath).Delete(); } catch (Exception) { } } SetInputEnabled(true); } }
/// <summary> /// Creates a new connection with the given user name and password /// </summary> public IConnection CreateConnection() { Connection connection = null; try { var transport = _transportFactory.CreateTransport(BrokerUri); connection = new Connection(BrokerUri, transport, ClientIdGenerator, StompConnectionSettings); ConfigureConnection(connection); // Set the client id if set if (StompConnectionSettings.ClientId.IsNotEmpty()) { connection.DefaultClientId = StompConnectionSettings.ClientId; } return(connection); } catch (Exception ex) { try { connection?.Close(); } catch { // ignored } throw new StompException($"Could not connect to broker URL: '{BrokerUri}'. See inner exception for details.", ex); } }
public void FinalizeConnection() { if (ExecuteMode == ExecuteMode.Single) { Connection?.Close(); } }
public void Close(TimeSpan?timeout = null) { timeout = timeout ?? TimeSpan.Zero; conn?.Close(timeout.Value); conn = null; Error = null; }
private static void ConfigureMicrophone() { bool isTalking = false; Connection testConnection = null; try { testConnection = CreateLocalTestMode(); testConnection.TalkStatusChanged += (client, status, isReceivedWhisper) => { isTalking = status == TalkStatus.Talking; }; Console.WriteLine(); Console.WriteLine("**********************************"); Console.WriteLine("Entering configure microphone mode"); Console.WriteLine("[v] - set VAD level"); Console.WriteLine("[q] - quit microphone configuration"); Console.WriteLine(); for (int counter = 0; ; counter++) { if (Console.KeyAvailable) { switch (Console.ReadKey().KeyChar) { case 'v': Console.WriteLine("Insert value to change voice activations level"); int value; if (int.TryParse(Console.ReadLine(), out value) == false) { Console.WriteLine("Invalid input. Please enter a number."); Console.WriteLine(); } testConnection.Preprocessor.VadLevel = value; Console.WriteLine($"new vad level: {testConnection.Preprocessor.VadLevel}"); continue; case 'q': testConnection.Close(); Console.WriteLine(); Console.WriteLine("**********************************"); Console.WriteLine("Left configure microphone mode"); Console.WriteLine(); return; } } if (counter == 9) { Console.WriteLine("{0:0.00} - {1}", testConnection.Preprocessor.DecibelLastPeriod, isTalking ? "talking" : "not talking"); counter = 0; } Thread.Sleep(100); } } finally { testConnection?.Close(); ShowHelp(); } }
public void CloseConnectionWithDetachTest() { this.testListener.RegisterTarget(TestPoint.Close, (stream, channel, fields) => { // send a detach TestListener.FRM(stream, 0x16UL, 0, channel, 0u, true); return TestOutcome.Continue; }); string testName = "CloseConnectionWithDetachTest"; Trace.WriteLine(TraceLevel.Information, "sync test"); { Connection connection = new Connection(this.address); Session session = new Session(connection); SenderLink sender = new SenderLink(session, "sender-" + testName, "any"); sender.Send(new Message("test") { Properties = new Properties() { MessageId = testName } }); connection.Close(); Assert.IsTrue(connection.Error == null, "connection has error!" + connection.Error); } Trace.WriteLine(TraceLevel.Information, "async test"); Task.Factory.StartNew(async () => { Connection connection = await Connection.Factory.CreateAsync(this.address); Session session = new Session(connection); SenderLink sender = new SenderLink(session, "sender-" + testName, "any"); await sender.SendAsync(new Message("test") { Properties = new Properties() { MessageId = testName } }); await connection.CloseAsync(); Assert.IsTrue(connection.Error == null, "connection has error!" + connection.Error); }).Unwrap().GetAwaiter().GetResult(); }
private async Task <string> RetrieveFormatContentAsync(FormatViewModel format) { string formatContent = null; Connection connection = null; try { await Task.Factory.StartNew(() => { connection = ConnectionCreator.Create(ViewModel.SelectedPrinter); connection.Open(); ZebraPrinter printer = ZebraPrinterFactory.GetInstance(connection); ZebraPrinterLinkOs linkOsPrinter = ZebraPrinterFactory.CreateLinkOsPrinter(printer); formatContent = Encoding.UTF8.GetString(printer.RetrieveFormatFromPrinter(format.PrinterPath)); }); } catch (Exception e) { await AlertCreator.ShowErrorAsync(this, e.Message); } finally { await Task.Factory.StartNew(() => { try { connection?.Close(); } catch (ConnectionException) { } }); } return(formatContent); }
protected override Task OnCloseConnectionAsync() { _openConnectionTask = null; Connection?.Close(); return(Task.FromResult(true)); }
private async void CheckPrinterStatusButton_Clicked(object sender, EventArgs eventArgs) { SetInputEnabled(false); PrinterStatusLabel.Text = "Checking printer status..."; Connection connection = null; try { await Task.Factory.StartNew(() => { connection = CreateConnection(); connection.Open(); ZebraPrinter printer = ZebraPrinterFactory.GetInstance(connection); ZebraPrinterLinkOs linkOsPrinter = ZebraPrinterFactory.CreateLinkOsPrinter(printer); PrinterStatus printerStatus = linkOsPrinter?.GetCurrentStatus() ?? printer.GetCurrentStatus(); Device.BeginInvokeOnMainThread(() => { PrinterStatusLabel.Text = BuildPrinterStatusString(printerStatus); }); }); } catch (Exception e) { PrinterStatusLabel.Text = $"Error: {e.Message}"; await DisplayAlert("Error", e.Message, "OK"); } finally { try { connection?.Close(); } catch (ConnectionException) { } SetInputEnabled(true); } }
protected override Task StopMessagePumpAsync(CancellationToken cancellationToken) { ReceiverChannel?.Close(); Connection?.Close(); return(base.StopMessagePumpAsync(cancellationToken)); }
static int Main(string[] args) { String url = "amqp:tcp:127.0.0.1:5672"; String connectionOptions = ""; if (args.Length > 0) url = args[0]; if (args.Length > 1) connectionOptions = args[1]; Connection connection = new Connection(url, connectionOptions); try { connection.Open(); Session session = connection.CreateSession(); Sender sender = session.CreateSender("service_queue"); Address responseQueue = new Address("#response-queue; {create:always, delete:always}"); Receiver receiver = session.CreateReceiver(responseQueue); String[] s = new String[] { "Twas brillig, and the slithy toves", "Did gire and gymble in the wabe.", "All mimsy were the borogroves,", "And the mome raths outgrabe." }; Message request = new Message(""); request.ReplyTo = responseQueue; for (int i = 0; i < s.Length; i++) { request.SetContent(s[i]); sender.Send(request); Message response = receiver.Fetch(); Console.WriteLine("{0} -> {1}", request.GetContent(), response.GetContent()); } connection.Close(); return 0; } catch (Exception e) { Console.WriteLine("Exception {0}.", e); connection.Close(); } return 1; }
public List<SA4Launcher.Models.WorklistItem> LoadWorkList() { Connection K2Conn = new Connection(); SCConnectionStringBuilder K2ConnString = new SCConnectionStringBuilder(); List<SA4Launcher.Models.WorklistItem> _currentWorkList = new List<SA4Launcher.Models.WorklistItem>(); //Setup Connection String K2ConnString.Host = "Sa4DemoK2wAD"; K2ConnString.Integrated = false; K2ConnString.UserID = "SA4Demo\\Tberry"; K2ConnString.Password = "******"; K2ConnString.Port = 5252; K2ConnString.WindowsDomain = "Sa4Demo"; K2ConnString.SecurityLabelName = "K2"; K2ConnString.Authenticate = false; K2ConnString.IsPrimaryLogin = true; K2Conn.Open("Sa4DemoK2wAD", K2ConnString.ConnectionString.ToString()); //TODO: Need to add try loop with true false return Worklist K2WorkList = K2Conn.OpenWorklist(); List<SA4Launcher.Models.Action> CurrentActions = new List<SA4Launcher.Models.Action>(); if (K2WorkList != null) { _currentWorkList.Clear(); foreach (SourceCode.Workflow.Client.WorklistItem K2worklistitem in K2WorkList) { //Build Actions First CurrentActions.Clear(); foreach (SourceCode.Workflow.Client.Action K2action in K2worklistitem.Actions) { CurrentActions.Add(new SA4Launcher.Models.Action { Name = K2action.Name, Batchable = K2action.Batchable }); } //Load worklist items into model _currentWorkList.Add(new SA4Launcher.Models.WorklistItem { ID = K2worklistitem.ID, serialno = K2worklistitem.SerialNumber, Name = K2worklistitem.ProcessInstance.Name, UserName = K2worklistitem.AllocatedUser, Folio = K2worklistitem.ProcessInstance.Folio, StartDate = K2worklistitem.ProcessInstance.StartDate, Status = K2worklistitem.Status.ToString(), ViewFlow = K2worklistitem.ProcessInstance.ViewFlow, Data = K2worklistitem.Data, Priority = K2worklistitem.ProcessInstance.Priority, Actions = CurrentActions.ToList() }); } } K2Conn.Close(); return (_currentWorkList); }
internal void Close() { NetworkStream?.Close(); Connection?.Close(); Stream = null; NetworkStream = null; Connection = null; }
public Task DisposeAsync() { Transaction?.Rollback(); Connection?.Close(); Connection?.Dispose(); return(Task.CompletedTask); }
protected virtual void DisposeManagedResources() { if (CloseConnectionOnDispose) { Connection?.Close(); Connection?.Dispose(); } }
// Direct sender example // // Send 10 messages from localhost:5672, amq.direct/key // Messages are assumed to be printable strings. // static int Main(string[] args) { String host = "localhost:5672"; String addr = "amq.direct/key"; Int32 nMsg = 10; if (args.Length > 0) host = args[0]; if (args.Length > 1) addr = args[1]; if (args.Length > 2) nMsg = Convert.ToInt32(args[2]); Console.WriteLine("csharp.direct.sender"); Console.WriteLine("host : {0}", host); Console.WriteLine("addr : {0}", addr); Console.WriteLine("nMsg : {0}", nMsg); Console.WriteLine(); Connection connection = null; try { connection = new Connection(host); connection.Open(); if (!connection.IsOpen) { Console.WriteLine("Failed to open connection to host : {0}", host); } else { Session session = connection.CreateSession(); Sender sender = session.CreateSender(addr); for (int i = 0; i < nMsg; i++) { Message message = new Message(String.Format("Test Message {0}", i)); sender.Send(message); } session.Sync(); connection.Close(); return 0; } } catch (Exception e) { Console.WriteLine("Exception {0}.", e); if (null != connection) connection.Close(); } return 1; }
private void Dispose(bool disposing) { if (!disposing) { return; } Transaction?.Dispose(); Connection?.Close(); }
/// <summary> /// Dispose this object and its resources. /// </summary> public void Dispose() { QueueListener?.Dispose(); Connection?.Close(); Channel?.Dispose(); Connection?.Dispose(); Channel = null; Connection = null; }
/// <inheritdoc /> public override Task PersistAsync(CancellationToken ct) { FailIfDisposed(); Transaction?.Commit(); Connection?.Close(); return(CompletedTask); }
/// <summary> /// Shuts down the message provider and releases resources. /// </summary> public override void ShutDown() { ReceiverChannel?.Close(); Connection?.Close(); base.ShutDown(); _initialized = false; }
/// <inheritdoc /> public override Task RollbackAsync(CancellationToken ct) { FailIfDisposed(); Transaction?.Rollback(); Connection?.Close(); return(CompletedTask); }
// Direct receiver example // // Receive 10 messages from localhost:5672, amq.direct/key // Messages are assumed to be printable strings. // static int Main(string[] args) { String host = "localhost:5672"; String addr = "amq.direct/key"; Int32 nMsg = 10; if (args.Length > 0) host = args[0]; if (args.Length > 1) addr = args[1]; if (args.Length > 2) nMsg = Convert.ToInt32(args[2]); Console.WriteLine("csharp.direct.receiver"); Console.WriteLine("host : {0}", host); Console.WriteLine("addr : {0}", addr); Console.WriteLine("nMsg : {0}", nMsg); Console.WriteLine(); Connection connection = null; try { connection = new Connection(host); connection.Open(); if (!connection.IsOpen) { Console.WriteLine("Failed to open connection to host : {0}", host); } else { Session session = connection.CreateSession(); Receiver receiver = session.CreateReceiver(addr); Message message = new Message(""); for (int i = 0; i < nMsg; i++) { Message msg2 = receiver.Fetch(DurationConstants.FORVER); Console.WriteLine("Rcvd msg {0} : {1}", i, msg2.GetContent()); } connection.Close(); return 0; } } catch (Exception e) { Console.WriteLine("Exception {0}.", e); if (null != connection) connection.Close(); } return 1; }
/// <summary> ///大批量数据插入,返回成功插入行数 ////************(网上的示例在linux上运行批量插入就是巨坑,会丢数据,至于为什么,见MySqlBulkLoader源码)***************/ /// </summary> /// <param name="connectionString">数据库连接字符串</param> /// <param name="table">数据表</param> /// <returns>返回成功插入行数</returns> private int MySqlBulkInsert(DataTable table, string tableName, string fileName = null, string tmpPath = null) { if (table.Rows.Count == 0) { return(0); } tmpPath = tmpPath ?? FileHelper.GetCurrentDownLoadPath(); // fileName = fileName ?? $"{DateTime.Now.ToString("yyyyMMddHHmmss")}.csv"; int insertCount = 0; string csv = DataTableToCsv(table); // FileHelper.WriteFile(tmpPath, fileName, csv); // string path = tmpPath + fileName; string text = $"当前行:{table.Rows.Count}"; MemoryStream stream = null; try { if (Connection.State == ConnectionState.Closed) { Connection.Open(); } using (IDbTransaction tran = Connection.BeginTransaction()) { MySqlBulkLoader bulk = new MySqlBulkLoader(Connection as MySqlConnection) { LineTerminator = "\n", TableName = tableName, CharacterSet = "UTF8" }; var array = Encoding.UTF8.GetBytes(csv); stream = new MemoryStream(array); // StreamReader reader = new StreamReader(stream); bulk.SourceStream = stream; //File.OpenRead(fileName); bulk.Columns.AddRange(table.Columns.Cast <DataColumn>().Select(colum => colum.ColumnName).ToList()); insertCount = bulk.Load(); //text = text + $",实际写入行:{insertCount}"; //fileName = fileName ?? $"{DateTime.Now.ToString("yyyyMMddHHmmss")}.text"; //FileHelper.WriteFile(tmpPath, fileName, text); //Console.WriteLine(text); //Console.WriteLine(insertCount); tran.Commit(); } } catch (Exception ex) { throw ex; } finally { Connection?.Dispose(); Connection?.Close(); stream?.Dispose(); } return(insertCount); // File.Delete(path); }
/// <summary> /// Dispose the database connection if applicable /// </summary> internal virtual void Close() { if (DisposeConnection) { // DBSqlServerConnection.Close wont throw exceptions Connection?.Close(); } Connection = null; }
public void Dispose() { if (Connection?.State != ConnectionState.Closed) { Connection?.Close(); } Connection?.Dispose(); Transaction?.Dispose(); }
public static void Disconnect(string reason) { var reasonError = new Error(ErrorCode.ConnectionForced); reasonError.Description = reason; receiver?.Close(TimeSpan.Zero, reasonError); session?.Close(TimeSpan.Zero, reasonError); connection?.Close(TimeSpan.Zero, reasonError); }
public virtual void Dispose() { Transaction?.Dispose(); Connection?.Close(); Connection?.Dispose(); Connection = null; Transaction = null; Adapter?.Dispose(); Provider?.Dispose(); }
private async void GetPrinterStatusButton_Clicked(object sender, EventArgs eventArgs) { AvailableChannelsLabel.Text = ""; PrinterStatusLabel.Text = "Retrieving printer status..."; SetInputEnabled(false); StatusConnection statusConnection = null; Connection rawConnection = null; try { statusConnection = CreateStatusConnection(); if (statusConnection == null) { return; } if (GetSelectedConnectionType() == ConnectionType.Bluetooth) { try { // Over Bluetooth, the printer only broadcasts the status connection if a valid raw connection is open rawConnection = DependencyService.Get <IConnectionManager>().GetBluetoothConnection(AddressEntry.Text); } catch (NotImplementedException) { throw new NotImplementedException("Bluetooth connection not supported on this platform"); } await Task.Factory.StartNew(() => { rawConnection.Open(); }); await Task.Delay(3000); // Give the printer some time to start the status connection } await Task.Factory.StartNew(() => { statusConnection.Open(); ZebraPrinter printer = ZebraPrinterFactory.GetLinkOsPrinter(statusConnection); PrinterStatus printerStatus = printer.GetCurrentStatus(); Device.BeginInvokeOnMainThread(() => { UpdateResult(printerStatus); }); }); } catch (Exception e) { PrinterStatusLabel.Text = $"Error: {e.Message}"; await DisplayAlert("Error", e.Message, "OK"); } finally { try { statusConnection?.Close(); rawConnection?.Close(); } catch (ConnectionException) { } SetInputEnabled(true); } }
public void Close(string message) { m_Connection?.Close(message); m_Connection = null; IsConnected = false; if (m_Socket != null && m_Socket.Connected) { m_Socket.Close(); } m_Socket = null; }
protected virtual void Dispose(bool disposing) { if (disposing) { if (_transaction == null) { Connection?.Close(); } } _disposed = true; }
/// <summary> /// Disconnect this instance from the server /// </summary> public void Disconnect() { Connection?.Close(); Connection = null; foreach (var cb in _responseHandlers) { var tcs = cb.Value; tcs.TrySetCanceled(); } }
public override void Disconnect() { if (Connection.State != System.Data.ConnectionState.Closed && Connection.State != System.Data.ConnectionState.Broken) { Connection?.Close(); } Connection?.Dispose(); Connection = null; Log.WriteLine("Disconnected from MySQL Server at %@", LogLevel.Message, Configuration.Hostname); }
public void Dispose() { if (_disposed) { return; } Connection?.Close(); Connection?.Dispose(); _node?.Dispose(); _disposed = true; }
public void ConnectionClose() { Dictionary<string, object> options = new Dictionary<string, object>(); options["id"] = 987654321; options["name"] = "Widget"; options["percent"] = 0.99; Connection myConn = new Connection("url", options); myConn.Close(); Assert.IsFalse(myConn.IsOpen); }
// csharp.map.receiver example // // Send an amqp/map message to amqp:tcp:localhost:5672 amq.direct/map_example // The map message // static int Main(string[] args) { string url = "amqp:tcp:localhost:5672"; string address = "message_queue; {create: always}"; string connectionOptions = ""; if (args.Length > 0) url = args[0]; if (args.Length > 1) address = args[1]; if (args.Length > 2) connectionOptions = args[2]; // // Create and open an AMQP connection to the broker URL // Connection connection = new Connection(url); connection.Open(); // // Create a session and a receiver fir the direct exchange using the // routing key "map_example". // Session session = connection.CreateSession(); Receiver receiver = session.CreateReceiver(address); // // Fetch the message from the broker // Message message = receiver.Fetch(DurationConstants.MINUTE); // // Extract the structured content from the message. // Dictionary<string, object> content = new Dictionary<string, object>(); message.GetContent(content); Console.WriteLine("{0}", message.AsString(content)); // // Acknowledge the receipt of all received messages. // session.Acknowledge(); // // Close the receiver and the connection. // receiver.Close(); connection.Close(); return 0; }
public void CloseConnectionWithDetachTest() { this.testListener.RegisterTarget(TestPoint.Close, (stream, channel, fields) => { // send a detach TestListener.FRM(stream, 0x16UL, 0, channel, 0u, true); return TestOutcome.Continue; }); string testName = "CloseConnectionWithDetachTest"; Connection connection = new Connection(new Address("amqp://localhost:" + port)); Session session = new Session(connection); SenderLink sender = new SenderLink(session, "sender-" + testName, "any"); sender.Send(new Message("test") { Properties = new Properties() { MessageId = testName } }); connection.Close(); Assert.IsTrue(connection.Error == null, "connection has error!" + connection.Error); }
public void CloseTest() { using (var connection = new Connection(CreateClientFactory())) { Connect(connection); _stream.Expect(x => x.Close()); _tcpClient.Expect(x => x.Close()); bool statusMessageFired = false; connection.StatusMessage += (sender, args) => statusMessageFired = true; connection.Close(); Assert.IsTrue(statusMessageFired); } _tcpClient.VerifyAllExpectations(); _stream.VerifyAllExpectations(); }
public static void CloseConnection(Connection conn) { bool isRelease = false; try { if (conn != null) { conn.Close(); isRelease = true; } } finally { if (conn != null && !isRelease) { conn.Dispose(); conn = null; } } }
/// <summary> /// 调用k2的dll,生成流程 /// <param name="dataFields">开启流程所需数据</param> /// <param name="processName">流程名称</param> /// </summary> public static int StartProcess(string processName, Dictionary<string, string> dataFields, string objectId, string folio, string userName) { int processInstId = 0; Connection k2Connection = new Connection(); try { k2Connection.Open(ConfigurationBase.Web.K2Server, ConfigurationBase.Web.K2LoginString); k2Connection.ImpersonateUser(userName); //创建实例 ProcessInstance processInst = k2Connection.CreateProcessInstance(processName); processInstId = processInst.ID; if (!string.IsNullOrEmpty(folio)) { processInst.Folio = folio; } #region 赋值datafields foreach (string key in dataFields.Keys) { if (processInst.DataFields[key] != null) { processInst.DataFields[key].Value = dataFields[key]; } } #endregion } finally { if (k2Connection != null) { k2Connection.Close(); } } return processInstId; }
private void ReleaseWorklistItem() { string sn = base.GetStringProperty(Constants.SOProperties.ClientWorklist.SerialNumber, true); ServiceObject serviceObject = base.ServiceBroker.Service.ServiceObjects[0]; serviceObject.Properties.InitResultTable(); DataTable results = base.ServiceBroker.ServicePackage.ResultTable; using (Connection k2Con = new Connection()) { k2Con.Open(base.K2ClientConnectionSetup); WorklistItem wli = k2Con.OpenWorklistItem(sn); wli.Release(); k2Con.Close(); } }
/// <summary> /// A function to illustrate how to open a Session callback and /// receive messages. /// </summary> /// <param name="args">Main program arguments</param> public int TestProgram(string[] args) { string url = "amqp:tcp:localhost:5672"; string addr = "amq.direct/map_example"; int nSec = 30; string connectionOptions = ""; if (1 == args.Length) { if (args[0].Equals("-h") || args[0].Equals("-H") || args[0].Equals("/?")) { usage(url, addr, nSec); return 1; } } if (args.Length > 0) url = args[0]; if (args.Length > 1) addr = args[1]; if (args.Length > 2) nSec = System.Convert.ToInt32(args[2]); if (args.Length > 3) connectionOptions = args[3]; // // Create and open an AMQP connection to the broker URL // Connection connection = new Connection(url, connectionOptions); connection.Open(); // // Create a session. // Session session = connection.CreateSession(); // // Receive through callback // // Create callback server and implicitly start it // SessionReceiver.CallbackServer cbServer = new SessionReceiver.CallbackServer(session, this); // // The callback server is running and executing callbacks on a // separate thread. // // // Create a receiver for the direct exchange using the // routing key "map_example". // Receiver receiver = session.CreateReceiver(addr); // // Establish a capacity // receiver.Capacity = 100; // // Wait so many seconds for messages to arrive. // System.Threading.Thread.Sleep(nSec * 1000); // in mS // // Stop the callback server. // cbServer.Close(); // // Close the receiver and the connection. // try { receiver.Close(); connection.Close(); } catch (Exception exception) { // receiver or connection may throw if they closed in error. // A typical application will take more action here. Console.WriteLine("{0} Closing exception caught.", exception.ToString()); } return 0; }
private void GetWorklist() { ServiceObject serviceObject = base.ServiceBroker.Service.ServiceObjects[0]; serviceObject.Properties.InitResultTable(); DataTable results = base.ServiceBroker.ServicePackage.ResultTable; using (Connection k2Con = new Connection()) { k2Con.Open(base.K2ClientConnectionSetup); WorklistCriteria wc = new WorklistCriteria(); wc.Platform = base.Platform; AddFieldFilters(wc); if (base.GetBoolProperty(Constants.SOProperties.ClientWorklist.IncludeShared) == true) { wc.AddFilterField(WCLogical.Or, WCField.WorklistItemOwner, "Me", WCCompare.Equal, WCWorklistItemOwner.Me); wc.AddFilterField(WCLogical.Or, WCField.WorklistItemOwner, "Other", WCCompare.Equal, WCWorklistItemOwner.Other); } if (base.GetBoolProperty(Constants.SOProperties.ClientWorklist.ExcludeAllocated) == true) { wc.AddFilterField(WCLogical.And, WCField.WorklistItemStatus, WCCompare.NotEqual, WorklistStatus.Allocated); } Worklist wl = k2Con.OpenWorklist(wc); foreach (WorklistItem wli in wl) { AddRowToDataTable(results, wli); } k2Con.Close(); } }
private void RedirectWorklistItem() { string sn = base.GetStringProperty(Constants.SOProperties.ClientWorklist.SerialNumber, true); string fqn = base.GetStringProperty(Constants.SOProperties.ClientWorklist.FQN, true); using (Connection k2Con = new Connection()) { k2Con.Open(base.K2ClientConnectionSetup); WorklistItem wli = k2Con.OpenWorklistItem(sn); wli.Redirect(fqn); k2Con.Close(); } }
/// <summary> /// Set OOF status for a user /// </summary> /// <param name="status">OOF Status (Available, OOF, None)</param> private void SetStatus(SourceCode.Workflow.Client.UserStatuses status) { using (Connection k2Con = new Connection()) { k2Con.Open(base.K2ClientConnectionSetup); // None for userstatus means the users is not configured, throw an exception if (UserStatuses.None == k2Con.GetUserStatus() && UserStatuses.OOF == status) { // exception should be thrown only in case that user tries to set OOF, throw new ApplicationException(Constants.ErrorMessages.OutOfOfficeNotConfiguredForUser); } try { k2Con.SetUserStatus(status); } catch (Exception ex) { throw new ApplicationException(Constants.ErrorMessages.FailedToSetOOF, ex); } k2Con.Close(); } }
// Example from page - http://help.k2.com/onlinehelp/k2blackpearl/DevRef/4.6.9/default.htm#How_to_set_a_users_Out_of_Office_Status.html%3FTocPath%3DRuntime%2520APIs%2520and%2520Services%7CWorkflow%7CWorkflow%2520Client%2520API%7CWorkflow%2520Client%2520API%2520Samples%7C_____10 /// <summary> /// Add OOF share for current user /// </summary> private void AddOutOfOffice() { string destinationUser = base.GetStringProperty(Constants.SOProperties.OutOfOffice.DestinationUser); ServiceObject serviceObject = base.ServiceBroker.Service.ServiceObjects[0]; serviceObject.Properties.InitResultTable(); DataTable results = base.ServiceBroker.ServicePackage.ResultTable; using (Connection k2Con = new Connection()) { k2Con.Open(base.K2ClientConnectionSetup); WorklistShares wsColl = k2Con.GetCurrentSharingSettings(ShareType.OOF); // Throw error if multiple configurations (WorklistShare objects) detected, as this method cannot support that if (wsColl.Count > 1) { throw new ApplicationException(Constants.ErrorMessages.MultipleOOFConfigurations); } // If configuration exist already, add to it else if (wsColl.Count == 1) { WorklistShare worklistshare = wsColl[0]; int capacity = worklistshare.WorkTypes[0].Destinations.Count; string[] existingDestinations = new string[capacity]; for (int i = 0; i < capacity; i++) { existingDestinations[i] = worklistshare.WorkTypes[0].Destinations[i].Name.ToUpper().Trim(); } if (Array.IndexOf(existingDestinations, destinationUser.ToUpper().Trim()) == -1) { worklistshare.WorkTypes[0].Destinations.Add(new Destination(destinationUser, DestinationType.User)); } bool result = k2Con.ShareWorkList(worklistshare); DataRow dr = results.NewRow(); dr[Constants.SOProperties.OutOfOffice.DestinationUser] = destinationUser; results.Rows.Add(dr); ; } // New user, create configuration for OOF else { // ALL Work that remains which does not form part of any "WorkTypeException" Filter WorklistCriteria worklistcriteria = new WorklistCriteria(); worklistcriteria.Platform = "ASP"; // Send ALL Work based on the above Filter to the following User Destinations worktypedestinations = new Destinations(); worktypedestinations.Add(new Destination(destinationUser, DestinationType.User)); // Link the filters and destinations to the Work WorkType worktype = new WorkType("MyWork_" + k2Con.User.FQN, worklistcriteria, worktypedestinations); WorklistShare worklistshare = new WorklistShare(); worklistshare.ShareType = ShareType.OOF; worklistshare.WorkTypes.Add(worktype); bool result = k2Con.ShareWorkList(worklistshare); k2Con.SetUserStatus(UserStatuses.Available); DataRow dr = results.NewRow(); dr[Constants.SOProperties.OutOfOffice.DestinationUser] = destinationUser; results.Rows.Add(dr); } k2Con.Close(); } }
/// <summary> /// List all existing shares for a current user /// </summary> private void ListSharedUsers() { ServiceObject serviceObject = base.ServiceBroker.Service.ServiceObjects[0]; serviceObject.Properties.InitResultTable(); DataTable results = base.ServiceBroker.ServicePackage.ResultTable; using (Connection k2Con = new Connection()) { k2Con.Open(base.K2ClientConnectionSetup); // None for userstatus means the users is not configured, throw an exception if (UserStatuses.None == k2Con.GetUserStatus()) throw new ApplicationException(Constants.ErrorMessages.OutOfOfficeNotConfiguredForUser); WorklistShares wsColl = k2Con.GetCurrentSharingSettings(ShareType.OOF); foreach (WorklistShare ws in wsColl) { //throw new ApplicationException("collection count is: "+ wsColl.Count.ToString()); foreach (WorkType wt in ws.WorkTypes) { foreach (Destination dest in wt.Destinations) { DataRow dr = results.NewRow(); dr[Constants.SOProperties.OutOfOffice.DestinationUser] = dest.Name.ToString(); results.Rows.Add(dr); } } } k2Con.Close(); } }
public ResultModel ReAssign(string sn, int assignFrom, int assignTo, out string activityName, out string processCode, out int procInstID) { Connection k2Connect = null; WorklistItem workList = null; ResultModel jr = new ResultModel() { Code = ResultCode.Fail }; activityName = string.Empty; processCode = string.Empty; procInstID = 0; try { k2Connect = new Connection(); k2Connect.Open(ConfigurationManager.AppSettings["K2Server"], ConfigurationManager.AppSettings["K2LoginString"]); k2Connect.ImpersonateUser(SecurityLable(assignFrom.ToString())); workList = k2Connect.OpenWorklistItem(sn); if (workList != null ) { workList.Redirect(SecurityLable(assignTo.ToString())); jr.Code = ResultCode.Sucess; jr.Msg = ""; activityName = workList.ActivityInstanceDestination.Name; processCode = workList.ProcessInstance.DataFields["ProcessCode"].Value.ToString(); procInstID = workList.ProcessInstance.ID; } } catch (Exception ex) { jr.Msg = ex.Message; } finally { if (workList != null) { if (workList.Status == WorklistStatus.Open) { try { k2Connect.RevertUser(); workList.Release(); } catch { } } } if (k2Connect != null) k2Connect.Close(); } return jr; }
/// <summary> /// 审批流程 /// </summary> /// <param name="userName"></param> /// <param name="sn"></param> /// <param name="actionString"></param> /// <param name="memo"></param> /// <param name="dataFields"></param> public WorklistItem ApprovalProcess(string userName, string sn, string actionString, string memo, Dictionary<string, string> dataFields) { Connection k2Connection = new Connection(); try { k2Connection.Open(ConfigurationBase.Web.K2Server, ConfigurationBase.Web.K2LoginString); k2Connection.ImpersonateUser(userName); //根据SN打开工作项 WorklistItem workList = k2Connection.OpenWorklistItem(sn); if (workList != null) { #region 更新Datafield if (dataFields != null && dataFields.Count > 0) { ProcessInstance currentProcessInst = k2Connection.OpenProcessInstance(workList.ProcessInstance.ID); //更新Datafields foreach (string key in dataFields.Keys) { if (currentProcessInst.DataFields[key] != null) { if (currentProcessInst.DataFields[key].Value!= dataFields[key]) { currentProcessInst.DataFields[key].Value = dataFields[key]; } } } currentProcessInst.Update(); } #endregion #region 审批任务 //批量审批没有actionString,默认第一个操作 if (string.IsNullOrEmpty(actionString)) { if (workList.Actions[0].Name == REJECTACTION) { workList.GotoActivity("流程未通过"); } else if (workList.Actions[0].Name == UNDOACTION) { workList.GotoActivity("流程撤销"); } else { workList.Actions[0].Execute(); } } else { //执行匹配的操作 if (actionString == UNDOACTION) { workList.GotoActivity("流程撤销"); } else if (actionString == REJECTACTION) { workList.GotoActivity("流程未通过"); } else { bool isExcuted = false; for (int i = 0; i < workList.Actions.Count; i++) { if (workList.Actions[i].Name == actionString) { workList.Actions[i].Execute(); isExcuted = true; break; } } } } #endregion } return workList; } catch (Exception) { return null; } finally { if (k2Connection != null) { k2Connection.Close(); } } }
public void ConnectionClose() { Dictionary<string, object> options = new Dictionary<string, object>(); Connection myConn = new Connection("url", options); myConn.Close(); Assert.IsFalse(myConn.IsOpen); }
public void ReleaseConnection(Connection conn) { if (!conn.InUse) { var header = new FDFSHeader(0, Consts.FDFS_PROTO_CMD_QUIT, 0); var buffer = header.ToByte(); conn.GetStream().Write(buffer, 0, buffer.Length); conn.GetStream().Close(); } conn.Close(); lock ((_inUse as ICollection).SyncRoot) { _inUse.Remove(conn); } _autoEvent.Set(); }
public bool Run() { bool result = true; PerformStepInvoke("Iniciando base de dados local ..."); string line = null; double progress = 0; double progressValue = 0; try { //------------------------------------------------------------------------- // Ajustar a conexão no Unimake.Data.Generic de acordo com os dados informados na tela anterior //------------------------------------------------------------------------- Unimake.Data.Generic.Configuration.DataGenericSettings.Settings.ConnectionStrings.Add(new Unimake.Data.Generic.Configuration.ConnectionString { DatabaseType = CurrentConfig.ServerConfig.DatabaseType, ConnectionString = CurrentConfig.ServerConfig.ToConnectionString(), Name = "Setup" }); Unimake.Data.Generic.Configuration.DataGenericSettings.ChangeConnection("Setup"); if(!CreateDatabase()) { MessageBox.ShowError("Não foi possível criar a base de dados. O instalador não irá continuar."); return false; } Connection = DbContext.CreateConnection(); Connection.BeginTransaction(); #region Endereços ... InitInstallEnd(Connection); #endregion result = RunPreInstall(Connection); if(result) { #region create table string[] linesCreate = null; string[] linesInsert = null; using(StreamReader sr = CreateFile.OpenText()) { line = sr.ReadToEnd(); linesCreate = line.Split(new string[] { ";" + "\r\n", ";" + "\n" }, StringSplitOptions.RemoveEmptyEntries); } line = ""; #endregion #region insert using(StreamReader sr = InsertFile.OpenText()) { line = sr.ReadToEnd(); linesInsert = line.Split(new string[] { ";" + "\r\n", ";" + "\n" }, StringSplitOptions.RemoveEmptyEntries); } line = ""; #endregion //------------------------------------------------------------------------- // Ao final, some todas as ações extras que deverão ser realizadas // Tipo de Usuário : +2 (Administrador e Operador) //------------------------------------------------------------------------- progress = 100 / (double)(linesCreate.Length + linesInsert.Length + 3); #region execute foreach(string l in linesCreate) { line = l; //------------------------------------------------------------------------- // Algumas tabelas são ignoradas por serem pesadas na importação // Então já foram previamente criadas //------------------------------------------------------------------------- if(IgnoreTables(line)) continue; PerformStepInvoke("Executando comando: " + line); Connection.ExecuteNonQuery(line); ProgressInvoke((int)(progressValue += progress)); Application.DoEvents(); } foreach(string l in linesInsert) { line = l; PerformStepInvoke("Executando comando: " + line); Connection.ExecuteNonQuery(line); ProgressInvoke((int)(progressValue += progress)); Application.DoEvents(); } #endregion result = RunPostInstall(Connection); Settings.Tables = Tables.GetTables(Connection); #region Outras ações ProgressInvoke((int)(progressValue += progress)); #endregion if(result) { Connection.CommitTransaction(); MessageBox.Show("A instalação da base de dados foi concluída com sucesso. Clique em \"Avançar >\" para continuar a instalação do OpenPOS."); ProgressInvoke(100); } } } catch(Exception ex) { if(Connection != null) { if(Connection.Transaction != null && Connection.Transaction.State == TransactionState.Begin) Connection.RollbackTransaction(); } MessageBox.ShowError(ex, (String.IsNullOrEmpty(line) ? ex.Message : line) + Environment.NewLine); result = false; } finally { if(Connection != null) Connection.Close(); } return result; }
/// <summary> /// Get OOF status for current user from Client API and return it /// TODO: Remove User FQN parameter /// </summary> private void GetUserStatus() { ServiceObject serviceObject = base.ServiceBroker.Service.ServiceObjects[0]; serviceObject.Properties.InitResultTable(); DataTable results = base.ServiceBroker.ServicePackage.ResultTable; using (Connection k2Con = new Connection()) { k2Con.Open(base.K2ClientConnectionSetup); SourceCode.Workflow.Client.UserStatuses status = k2Con.GetUserStatus(); DataRow dr = results.NewRow(); dr[Constants.SOProperties.OutOfOffice.UserStatus] = status.ToString(); results.Rows.Add(dr); k2Con.Close(); } }
public ResultModel ApproveK2Process(string sn, int loginId, string actionString, string memo, Dictionary<string, string> dataFields, out string activityName, out string processCode, out int procInstID) { Connection k2Connect = null; WorklistItem workList = null; ResultModel jr = new ResultModel() { Code = ResultCode.Fail }; activityName = string.Empty; processCode = string.Empty; procInstID = 0; try { k2Connect = new Connection(); k2Connect.Open(ConfigurationManager.AppSettings["K2Server"], ConfigurationManager.AppSettings["K2LoginString"]); k2Connect.ImpersonateUser(SecurityLable(loginId.ToString())); workList = k2Connect.OpenWorklistItem(sn); if (workList != null) { #region 更新Datafield if (dataFields != null && dataFields.Count > 0) { ProcessInstance CurrentProcessInst = workList.ProcessInstance; //更新Datafields foreach (string key in dataFields.Keys) { if (CurrentProcessInst.DataFields[key] != null) { if (CurrentProcessInst.DataFields[key].Value.ToString() != dataFields[key]) { CurrentProcessInst.DataFields[key].Value = dataFields[key]; } } } } #endregion #region 审批任务 //批量审批没有actionString,默认第一个操作 if (string.IsNullOrEmpty(actionString)) { if (workList.Actions[0].Name == REJECTACTION) { workList.GotoActivity("流程未通过"); } else if (workList.Actions[0].Name == UNDOACTION) { workList.GotoActivity("流程撤销"); } else { workList.Actions[0].Execute(); } } else { //执行匹配的操作 if (actionString == UNDOACTION) { workList.GotoActivity("流程撤销"); } else if (actionString == REJECTACTION) { workList.GotoActivity("流程未通过"); } else { bool isExcute = false; for (int i = 0; i < workList.Actions.Count; i++) { if (workList.Actions[i].Name == actionString) { workList.Actions[i].Execute(); isExcute = true; break; } } if (!isExcute) { jr.Code = ResultCode.Fail; jr.Msg = string.Format("Action:{0}错误", actionString); return jr; } } } #endregion jr.Code = ResultCode.Sucess; jr.Msg = ""; activityName = workList.ActivityInstanceDestination.Name; processCode = workList.ProcessInstance.DataFields["ProcessCode"].Value.ToString(); procInstID = workList.ProcessInstance.ID; } } catch (Exception ex) { jr.Msg = ex.Message; } finally { if (workList != null) { if (workList.Status == WorklistStatus.Open) { try { k2Connect.RevertUser(); workList.Release(); } catch { } } } if (k2Connect != null) k2Connect.Close(); } return jr; }
public ResultModel StartProcess(string processName, int loginId, string objectId, string folio, Dictionary<string, string> dataFields,out int procInstId) { Connection k2Connect = null; WorklistItem workList = null; ResultModel jr = new ResultModel() { Code = ResultCode.Fail }; procInstId = 0; try { k2Connect = new Connection(); k2Connect.Open(ConfigurationManager.AppSettings["K2Server"], ConfigurationManager.AppSettings["K2LoginString"]); k2Connect.ImpersonateUser(SecurityLable(loginId.ToString())); //创建实例 ProcessInstance ProcessInst = k2Connect.CreateProcessInstance(processName); if (!string.IsNullOrEmpty(folio)) { ProcessInst.Folio = folio; } #region //赋值datafields foreach (string key in dataFields.Keys) { if (ProcessInst.DataFields[key] != null) { ProcessInst.DataFields[key].Value = dataFields[key]; } } #endregion k2Connect.StartProcessInstance(ProcessInst); procInstId = ProcessInst.ID; jr.Code = ResultCode.Sucess; jr.Msg = procInstId.ToString(); } catch (Exception ex) { jr.Msg = ex.Message; } finally { if (workList != null) { if (workList.Status == WorklistStatus.Open) { try { k2Connect.RevertUser(); workList.Release(); } catch { } } } if (k2Connect != null) k2Connect.Close(); } return jr; //var result = (new K2Service.K2Service()).StartProcess(processCode, loginId, objectId, folio, jsonData, ConfigurationManager.AppSettings["APIKEY"]); }