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);
            }));
        }
예제 #2
0
        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);
                    }));
                }
            }
        }