public void Set(DateTime LastTimeUpdate, DateTime LastTimeOnServer, CommonDll.Structs.F_HR.HR Set_HR) { Set_HR = (CommonDll.Structs.F_HR.HR)base.Set(ImportProtocol.HR, Set_HR, true, out TimeSpan TimeOnSetted); ImportProtocol.HR = Set_HR; LazyLoad.LazyLoading(this, MethodBase.GetCurrentMethod().Name, new Action(() => { treeListView_HRMain1.Set(LastTimeUpdate, LastTimeOnServer); treeListView_Groups1.Set(LastTimeUpdate, LastTimeOnServer); })); }
private void OnUpdate(bool Update, TimeSpan TimeFromServer, StructureValueForClient StructureValueForClient_Setted, ConnectionBackInformation ConnectionBackInformationLoad) { DateTime LastTimeUpdate = DateTime.Now; if (Update) { Updated = false; if (true) //Load { #region Pages load #region HR DateTime HRStart = DateTime.Now; if (tabControlMain.TabPages.Contains(tabPageHR)) { if (StructureValueForClient_Setted.UpdateTime_Module_HR > default(DateTime)) { if (this.StructureValueForClient is null ? true : StructureValueForClient_Setted.UpdateTime_Module_HR > this.StructureValueForClient.UpdateTime_Module_HR) { Updated = true; CommonDll.Structs.F_HR.HR HR = (CommonDll.Structs.F_HR.HR)StructureValueForClient_Setted.HR.Clone(); if (this.InvokeRequired) { this.Invoke(new Action(() => { hR_Page1.Set(LastTimeUpdate, StructureValueForClient_Setted.UpdateTime_Module_HR, HR); })); } HR = null; } } } if (!(StructureValueForClient_Setted.HR is null) & !(LoadDialog is null)) { LoadDialog.Set(nameof(StructureValueForClient_Setted.HR), DateTime.Now - HRStart); } #endregion #region отладка сервера DateTime ProgressOfUpdateStart = DateTime.Now; if (this.InvokeRequired) { this.Invoke(new Action(() => viewServerProcess1.LastTimeUpdate = LastTimeUpdate)); } else { viewServerProcess1.LastTimeUpdate = LastTimeUpdate; } if (tabControlMain.TabPages.Contains(tabPage_ServerProcess)) { if (StructureValueForClient_Setted.UpdateTime_Module_ProgressOfUpdate > default(DateTime)) { if (this.StructureValueForClient is null ? true : StructureValueForClient_Setted.UpdateTime_Module_ProgressOfUpdate > this.StructureValueForClient.UpdateTime_Module_ProgressOfUpdate) { if (viewServerProcess1.LastTimeOnServer == default(DateTime)) { Updated = true; List <ProgressOfUpdateAtStructAttribute> List_ProgressOfUpdateAtStructAttribute = StructureValueForClient_Setted.ProgressOfUpdate.List_ProgressOfUpdateAtStructAttribute.Select(x => (ProgressOfUpdateAtStructAttribute)x.Clone()).ToList(); if (this.InvokeRequired) { this.Invoke(new Action(() => { viewServerProcess1.LastTimeOnServer = StructureValueForClient_Setted.UpdateTime_Module_ProgressOfUpdate; viewServerProcess1.Set(List_ProgressOfUpdateAtStructAttribute); })); } List_ProgressOfUpdateAtStructAttribute = null; } } } } if (!(StructureValueForClient_Setted.ProgressOfUpdate is null) & !(LoadDialog is null)) { LoadDialog.Set(nameof(StructureValueForClient_Setted.ProgressOfUpdate), DateTime.Now - ProgressOfUpdateStart); } #endregion #endregion } Dictionary <string, MainParentClass> props = Helper.GetProperties <MainParentClass, StructureValueForClient>(StructureValueForClient_Setted); foreach (var From in props) // Обнулить не задействованные структуры. { string Name = From.Key; var ReadyStructure_Type = StructureValueForClient_Setted.GetType(); if (!(ReadyStructure_Type is null)) { var To_Property = ReadyStructure_Type.GetProperty(Name); if (!(To_Property is null)) { To_Property.SetValue(StructureValueForClient_Setted, null); } } } this.StructureValueForClient = StructureValueForClient_Setted; StructureValueForClient_Setted = null; TimeSpan TimeLoadOnClient = DateTime.Now - LastTimeUpdate; if (Updated) { Updated = false; } else { } TimeFromServer = new TimeSpan(TimeFromServer.Hours, TimeFromServer.Minutes, TimeFromServer.Seconds); TimeLoadOnClient = new TimeSpan(TimeLoadOnClient.Hours, TimeLoadOnClient.Minutes, TimeLoadOnClient.Seconds); if (StatusStripGlobal.InvokeRequired) { StatusStripGlobal.Invoke(new Action(() => { ToolStripStatusLabel.BackColor = Color.Transparent; ToolStripStatusLabel.Text = string.Format("Load from server: {0}, on client: {1}", TimeFromServer, TimeLoadOnClient); })); } } else { if (StatusStripGlobal.InvokeRequired) { StatusStripGlobal.Invoke(new Action(() => { ToolStripStatusLabel.BackColor = Color.Orange; ToolStripStatusLabel.Text = string.Format("Load from server: {0}, on client: {1}", "Failed", "at " + LastTimeUpdate); })); } } }