private static void AnnualReport(NetworkStream stream, byte[] inputData, string clientIp)
        {
            var subsidiary   = NetManager.ToString(inputData);
            var annualReport = new QuaterDataSerialize();

            if (!Directory.Exists(Folder + "/" + subsidiary))
            {
                var message = $"Данных для \"{subsidiary}\" не обнаружено.";
                NetManager.Send(stream, NetManager.ToBytes(message));
                Console.WriteLine("{0}: {1}", clientIp, message);
            }
            else
            {
                var quaters = string.Empty;

                foreach (var item in new DirectoryInfo(Folder + "/" + subsidiary).GetFiles())
                {
                    quaters += ", " + Path.GetFileNameWithoutExtension(item.Name);

                    var quater = new QuaterDataSerialize();
                    var vs     = File.ReadAllBytes(Folder + "/" + subsidiary + "/" + item.Name);

                    annualReport.AddData(quater.Deserialize(vs));
                }

                quaters = quaters.Substring(1, quaters.Length - 1);

                var message = $"Отчет построен по данным за{quaters}.";
                NetManager.Send(stream, NetManager.ToBytes(message));
                Console.WriteLine("{0}: {1}", clientIp, message);
            }

            NetManager.Send(stream, annualReport.Serialize());
        }
        private static void QuaterDataSave(NetworkStream stream, byte[] inputData, string clientIp)
        {
            try
            {
                QuaterDataSerialize quaterData = new QuaterDataSerialize();
                quaterData = quaterData.Deserialize(inputData);

                if (!Directory.Exists(Folder + "/" + quaterData.Subsidiary))
                {
                    Directory.CreateDirectory(Folder + "/" + quaterData.Subsidiary);
                }

                File.WriteAllBytes(Folder + "/" + quaterData.Subsidiary + "/" + quaterData.Quater + ".dat", inputData);
                var message = $"Получены данные \"{quaterData.Subsidiary}\" за {quaterData.Quater} квартал.";
                NetManager.Send(stream, NetManager.ToBytes(message));
                Console.WriteLine("{0}: {1}", clientIp, message);
            }
            catch (Exception ex)
            {
                ExceptManager.Write(ex);
            }
        }
        internal void AddData(QuaterDataSerialize quater)
        {
            if (Tables == null)
            {
                Tables     = quater.Tables;
                Titles     = quater.Titles;
                Subsidiary = quater.Subsidiary;
            }
            else
            {
                for (var i = 0; i < Tables[0].Rows.Count; i++)
                {
                    for (var j = 1; j < 3; j++)
                    {
                        Tables[0].Rows[i][j] = Convert.ToDouble(Tables[0].Rows[i][j]) + Convert.ToDouble(quater.Tables[0].Rows[i][j]);
                    }
                }

                for (var j = 0; j < 2; j++)
                {
                    Tables[1].Rows[0][j] = Convert.ToDouble(Tables[1].Rows[0][j]) + Convert.ToDouble(quater.Tables[1].Rows[0][j]);
                }

                for (var i = 0; i < Tables[2].Rows.Count; i++)
                {
                    for (var j = 1; j < 3; j++)
                    {
                        Tables[2].Rows[i][j] = Convert.ToDouble(Tables[2].Rows[i][j]) + Convert.ToDouble(quater.Tables[2].Rows[i][j]);
                    }
                }

                for (var i = 0; i < Tables[3].Rows.Count; i++)
                {
                    for (var j = 1; j < 4; j++)
                    {
                        Tables[3].Rows[i][j] = Convert.ToDouble(Tables[3].Rows[i][j]) + Convert.ToDouble(quater.Tables[3].Rows[i][j]);
                    }
                }

                for (var j = 2; j < 4; j++)
                {
                    Tables[4].Rows[0][j] = Convert.ToDouble(Tables[4].Rows[0][j]) + Convert.ToDouble(quater.Tables[4].Rows[0][j]);
                }

                Tables[5].Rows[0][0] = Convert.ToDouble(Tables[5].Rows[0][0]) + Convert.ToDouble(quater.Tables[5].Rows[0][0]);

                Tables[6].Rows[0][0] = Convert.ToDouble(Tables[6].Rows[0][0]) + Convert.ToDouble(quater.Tables[6].Rows[0][0]);

                for (var i = 0; i < Tables[7].Rows.Count; i++)
                {
                    for (var j = 1; j < 3; j++)
                    {
                        Tables[7].Rows[i][j] = Convert.ToDouble(Tables[7].Rows[i][j]) + Convert.ToDouble(quater.Tables[7].Rows[i][j]);
                    }
                }

                for (var j = 0; j < 2; j++)
                {
                    Tables[8].Rows[0][j] = Convert.ToDouble(Tables[8].Rows[0][j]) + Convert.ToDouble(quater.Tables[8].Rows[0][j]);
                }

                for (var j = 0; j < 2; j++)
                {
                    Tables[9].Rows[0][j] = Convert.ToDouble(Tables[9].Rows[0][j]) + Convert.ToDouble(quater.Tables[9].Rows[0][j]);
                }
            }
        }