public HostNameNode(FSLib.IPMessager.Entity.Host host) : base(host) { SetInfo(); host.NickNameChanged += (s, e) => { SetInfo(); }; }
public HostStatusNode(FSLib.IPMessager.Entity.Host host) : base(host) { SetInfo(); host.AbsenceModeChanged += (s, e) => { SetInfo(); }; host.AbsenceMessageChanged += (s, e) => { SetInfo(); }; }
/// <summary> /// 获得主机应该在的用户组名 /// </summary> /// <param name="host"></param> /// <returns></returns> public static string GetHostGroupName(FSLib.IPMessager.Entity.Host host) { string key = host.HostSub.Ipv4Address.Address.ToString(); if (Env.ClientConfig.HostGroupConfig.ContainsKey(key)) { return Env.ClientConfig.HostGroupConfig[key]; } else return "未定义分组"; }
public void TaskItemProgressChange(FSLib.IPMessager.Core.FileTaskEventArgs e) { if (!browser.IsReady()) { notReadyScriptList.Add(new KeyValuePair<int, FileTaskEventArgs>(2, e)); return; } if (e.Direction == FileTransferDirection.Send) { browser.InvokeScript("fileSendingProgressChange", e.TaskItem.ToJsonInfoWithProgress()); } else { browser.InvokeScript("fileRecvProgressChange", e.TaskItem.ToJsonInfoWithProgress()); } }
public void TaskItemStateChange(FSLib.IPMessager.Core.FileTaskEventArgs e) { if (!browser.IsReady()) { notReadyScriptList.Add(new KeyValuePair<int, FileTaskEventArgs>(3, e)); return; } if (e.Direction == FileTransferDirection.Send) { browser.InvokeScript("fileSendingStateChange", e.TaskItem.TaskInfo.PackageID.ToString(), e.TaskItem.Index, e.TaskItem.CurrentName, e.TaskItem.Name, (int)e.TaskItem.State); } else { browser.InvokeScript("fileRecvStateChange", e.TaskItem.TaskInfo.PackageID.ToString(), e.TaskItem.Index, e.TaskItem.CurrentName, e.TaskItem.Name, (int)e.TaskItem.State); } }
void OnlineHost_HostOnline(object sender, FSLib.IPMessager.Entity.OnlineHost.HostEventArgs e) { if (DateTime.Now < initTime || (IsMute && Env.ClientConfig.HostInfo.DisableHostTipInQuite)) return; //SOUND if (!IsMute && Env.ClientConfig.Sound.EnableOnlineSound) Env.SoundManager.PlayOnline(); if ( Env.HostConfig.HostOnlineTip == IPMessagerNet.Config.HostBallonTip.None || (Env.HostConfig.HostOnlineTip == IPMessagerNet.Config.HostBallonTip.Special && !Env.HostConfig.OnlineTip.Contains(e.Host.HostSub.Ipv4Address.Address.ToString())) ) return; NotifyIcon.ShowBalloonTip(1000, String.Format("主机 {0} 上线", Core.HostInfoManager.GetHostDisyplayName(e.Host)), string.Format("主机:{0}\r\n用户:{1}\r\n组名:{2}\r\nIP地址:{3}", Core.HostInfoManager.GetHostDisyplayName(e.Host), e.Host.NickName, e.Host.GroupName, e.Host.HostSub.Ipv4Address.Address.ToString()), ToolTipIcon.Info); }
public override bool IsHostInThisGroup(FSLib.IPMessager.Entity.Host host) { return string.Compare(host.GroupName, this.Text, true) == 0; }
public void SendTaskDiscard(FSLib.IPMessager.Core.FileTaskEventArgs e) { System.Text.StringBuilder sb = new StringBuilder(); e.TaskInfo.TaskList.ForEach(s => sb.Append(s.Name + ";")); browser.InvokeScript("fileSendingDiscard", e.PackageID.ToString(), sb.ToString()); }
public void ReceiveTaskFinish(FSLib.IPMessager.Core.FileTaskEventArgs e) { if (!browser.IsReady()) { notReadyScriptList.Add(new KeyValuePair<int, FileTaskEventArgs>(7, e)); return; } browser.InvokeScript("fileRecvTaskFinished", e.TaskInfo.PackageID.ToString()); }
/// <summary> /// 确定这个主机是否在这个组中 /// </summary> /// <param name="host"></param> /// <returns></returns> public abstract bool IsHostInThisGroup(FSLib.IPMessager.Entity.Host host);
//创建信息的具体操作函数 void CreatePackage(object sender, FSLib.Threading.RunworkEventArgs e) { UpdateInfo info = new UpdateInfo() { AppName = this.txtAppName.Text, AppVersion = this.txtAppVersion.Text, Desc = this.txtDesc.Text, ExecuteArgumentAfter = this.txtAfterExecuteArgs.Text, ExecuteArgumentBefore = this.txtPreExecuteArgs.Text, PublishUrl = this.txtPublishUrl.Text, FileExecuteAfter = this.fileAfterExecute.SelectedFileName, FileExecuteBefore = this.filePreExecute.SelectedFileName, MD5 = "", Package = System.IO.Path.GetFileName(this.txtPackagePath.Text), ExecuteTimeout = txtTimeout.Text.ToInt32(), PackageSize = 0, RequiredMinVersion = "" }; this.options.SaveSetting(info); DME.Zip.Zip.FastZipEvents evt = new DME.Zip.Zip.FastZipEvents(); evt.ProcessFile += (s, f) => { e.ReportProgress(0, 0, "正在压缩文件 " + System.IO.Path.GetFileName(f.Name)); }; DME.Zip.Zip.FastZip zip = new DME.Zip.Zip.FastZip(evt); if (!info.PackagePassword.IsNullOrEmpty()) zip.Password = info.PackagePassword; zip.CreateZip(this.txtPackagePath.Text, this.txtNewSoftDir.Text, true, ""); //校验MD5 byte[] hash = null; var size = 0; using (var fs = new FSLib.IO.ExtendFileStream(SelectedPackagePath, System.IO.FileMode.Open)) { e.ReportProgress((int)fs.Length, 0, ""); fs.ProgressChanged += (s, f) => { e.ReportProgress((int)fs.Position); }; MD5 md5 = System.Security.Cryptography.MD5CryptoServiceProvider.Create(); hash = md5.ComputeHash(fs); size = (int)fs.Length; } info.MD5 = BitConverter.ToString(hash).Replace("-", "").ToUpper(); info.PackageSize = size; info.XmlSerilizeToFile(GetXmlPath(SelectedPackagePath)); e.ReportProgress(0, 0, "生成成功,MD5校验:" + info.MD5); }
bool isInBinding = false; //是否正在重新绑定中 /// <summary> /// 绑定服务状态,并绑定事件 /// </summary> /// <param name="service"></param> /// <param name="args"></param> void CheckServiceInstalled(FSLib.IPMessager.Services.InnerService service, params Control[] args) { ServiceInfo iflp = Env.IPMClient.Config.Services.Find(s => s.TypeName == ServiceManager.InnerServiceTypeList[service]); if (iflp == null) Array.ForEach(args, s => s.Enabled = false); else { Array.ForEach(args, s => { if (s is CheckBox) { CheckBox ck = s as CheckBox; ck.Checked = iflp.Enabled; if (!isFirstLoad) return; ck.CheckedChanged += (a, b) => { if (isInBinding) return; //如果是在绑定中,那么就让这次的事件触发无效。 CheckBox ckb = a as CheckBox; iflp.Enabled = ckb.Checked; if (ckb.Checked) { if (!Env.StartupServiceProvider(iflp)) Information("无法启动插件,可能需要重新启动设置才能生效。"); } else { if (!Env.ShutdownServiceProvider(iflp)) Information("无法停止插件,可能需要重新启动设置才能生效。"); } }; } } ); } }
public override bool IsHostInThisGroup(FSLib.IPMessager.Entity.Host host) { return host.HostSub.IPHeader == _iPHeader; }
/// <summary> /// 绑定插件的配置加载保存事件 /// </summary> /// <param name="provider"></param> public static void HandleServiceConfigLoad(FSLib.IPMessager.Services.IServiceProvider provider) { if (provider == null) return; provider.RequireLoadConfig += (s, e) => { if (!e.IsHandled) { e.ConfigObject = Core.ProfileManager.LoadConfig(e.Type, s.GetType().Name); e.IsHandled = true; } }; provider.ReuqireSaveConfig += (s, e) => { if (!e.IsHandled) { Core.ProfileManager.SaveConfig(s.GetType().Name, e.ConfigObject); e.IsHandled = true; } }; }
public void AddReceiveTask(FSLib.IPMessager.Core.FileTaskEventArgs e) { if (!browser.IsReady()) { notReadyScriptList.Add(new KeyValuePair<int, FileTaskEventArgs>(1, e)); return; } browser.Document.InvokeScript("fileRecvRequest", new object[] { e.TaskInfo.ToJsonInfo() }); }
public void SendTaskExpires(FSLib.IPMessager.Core.FileTaskEventArgs e) { if (!browser.IsReady()) { notReadyScriptList.Add(new KeyValuePair<int, FileTaskEventArgs>(6, e)); return; } browser.InvokeScript("fileSendingExpired", e.PackageID.ToString(), e.TaskInfo.CreateTime.ToString()); }
public PluginConfigMenuItem(FSLib.IPMessager.Services.ServiceInfo si) { this._service = si; }
public void ReceiveTaskStart(FSLib.IPMessager.Core.FileTaskEventArgs e) { if (!browser.IsReady()) { notReadyScriptList.Add(new KeyValuePair<int, FileTaskEventArgs>(8, e)); return; } browser.InvokeScript("fileRecvStateChange", e.TaskItem.TaskInfo.PackageID.ToString(), e.TaskItem.Index, e.TaskItem.CurrentName, 1); }
public HostFileTransferNode(FSLib.IPMessager.Entity.Host host) : base(host) { SetInfo(); }
/// <summary> /// 处理信息到达事件 /// </summary> /// <param name="host"></param> /// <param name="msg"></param> void TextMessageReceived(Host host, FSLib.IPMessager.Entity.Message msg) { IChatService cs = this.OpenChatTab(host); cs.DropMessage(msg); if (Env.ClientConfig.ChatConfig.AutoChangeCurrentTabToNew) { this.SelectTab(cs as TabPage); } //SOUND if (!Forms.FrameContainer.ContainerForm.IsMute && Env.ClientConfig.Sound.EnableNewMsgSound) Env.SoundManager.PlayNewMsg(); }
public HostVersionNode(FSLib.IPMessager.Entity.Host host) : base(host) { SetInfo(); host.ClientVersionResolved += (s, e) => { SetInfo(); }; }
public HostAddressNode(FSLib.IPMessager.Entity.Host host) : base(host) { SetInfo(); }
public HostEncryptNode(FSLib.IPMessager.Entity.Host host) : base(host) { SetInfo(); host.PublicKeyChanged += (s, e) => { SetInfo(); }; }