private void SendOfferTable(int index, string departmentname) { lock (DepartmentList) { foreach (var department in DepartmentList) { if (department.Name == departmentname) { var sendTable = department.OrderList.Clone(); if (index == -1) { foreach (DataRow row in department.OrderList.Rows) { if (row["Status"].ToString() == Global.UnKnown) { row["Status"] = Global.Wait; sendTable.Rows.Add(row.ItemArray); } } } else if (index >= 0) { sendTable.Rows.Add(department.OrderList.Rows[index].ItemArray); } var content = Mode.SendOrder.ToString(); content += " " + _client.ClientIP.ToString(); content += " " + department.IP; content += " " + CSVHelper.MakeCSV(sendTable); _client.SendContent(content); } } } }
private void Send() { var guid = Guid.NewGuid(); lock (Global.OnLineUserList) { if (clbOnlineList.CheckedItems.Count > 0) { var toips = string.Empty; var selected = new string[clbOnlineList.CheckedItems.Count]; clbOnlineList.CheckedItems.CopyTo(selected, 0); var selectitem = from item in selected where item != "All/None" select item; if (selectitem.Count() > 0) { var message = tbSend.Text; var o = new List <string>(); o.Add(guid.ToString()); o.Add(message); for (var i = 0; i < selectitem.Count(); i++) { SendContent sendContent = new SendContent(); sendContent.Id = guid; sendContent.Mode = SendMode.send.ToString(); sendContent.From = _client.ClientIP.ToString(); sendContent.To = selectitem.ToArray()[i].ToString(); sendContent.Message = message; toips += selectitem.ToArray()[i].ToString() + ","; o.Add(sendContent.To); var clientto = from user in Global.OnLineUserList where user.IP == sendContent.To select user; foreach (var cli in clientto) { cli.SendList.Add(sendContent); } } toips = toips.TrimEnd(','); WriteMessage(DateTime.Now.ToString() + " To[" + toips + "]:" + message); _client.SendContent(BuildContent(guid, SendMode.send, _client.ClientIP.ToString(), string.Join(",", selectitem), tbSend.Text)); tbSend.Text = string.Empty; var parStart = new ParameterizedThreadStart(CHandle); var recieveThread = new Thread(parStart); recieveThread.IsBackground = true; recieveThread.Start(o); } } } }