/// <summary>
        /// Получение списка календарей
        /// </summary>
        /// <returns></returns>
        public List <CalendarListEntry> GetCalendarsName()
        {
            CalendarList result = null;

            if (isConnect)
            {
                var request = Service.CalendarList.List();
                result = request.Execute();

                result.Items.OrderBy(x => x.Summary);

                ErrorMsg = true;

                return(result.Items.ToList().OrderBy(x => x.AccessRole).ThenBy(p => p.Summary).ToList());
            }
            else
            {
                List <CalendarListEntry> calendarLists = new List <CalendarListEntry>();


                var caList = WorkBD.Select_query($"select calendar_name from Name_Calendar where Id_User = (select Id from Users where UserName = N'{User}')");

                foreach (DataRow rowcalendar in caList.Rows)
                {
                    calendarLists.Add(JsonConvert.DeserializeObject <CalendarListEntry>(rowcalendar.ItemArray[0].ToString()));
                }

                if (calendarLists.Count == 0)
                {
                    if (ErrorMsg)
                    {
                        MessageBox.Show("Отсутствует список календарей в локальной базе данных! Пожалуйста подключитесь к интернету и перезапустите программу для синхронизации ланных!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        ErrorMsg = false;
                    }
                }

                return(calendarLists.OrderBy(x => x.AccessRole).ThenBy(p => p.Summary).ToList());
            }
        }
        /// <summary>
        /// Синхронизация
        /// </summary>
        private void Synchronization()
        {
            if (work.IsConnect())
            {
                connectStatus.Text  = "Соединение есть";
                connectStatus.Image = Resources.connect;



                var delEvent = WorkBD.Select_query($"select nc.calendar_name, ec.Id, ec.Calendar_Event from Del_Event de, Name_Calendar nc, Events_calendar ec where nc.Id = (select NameId from Activity where Id = de.Event_Cal_id) and ec.Id = (select EvendId from Activity where Id = de.Event_Cal_id)");


                foreach (DataRow delete in delEvent.Rows)
                {
                    var Cal = JsonConvert.DeserializeObject <CalendarListEntry>(delete.ItemArray[0].ToString());
                    var Eve = JsonConvert.DeserializeObject <Event>(delete.ItemArray[2].ToString());

                    WorkBD.Execution_query($"delete from Events_calendar where Id = {delete.ItemArray[1].ToString()}");

                    work.DeleteEvent(Eve, Cal.Id);
                }
                WorkBD.Execution_query($"delete from Del_Event");



                var insEvent = WorkBD.Select_query($"select nc.Id_Calendar, ie.New_Ev from Ins_Event ie, Name_Calendar nc where nc.Id = ie.Cal_Id");

                foreach (DataRow insert in insEvent.Rows)
                {
                    var Eve = JsonConvert.DeserializeObject <Event>(insert.ItemArray[1].ToString());
                    Eve.Id = null;

                    work.CreateEvent(Eve, insert.ItemArray[0].ToString());
                }
                WorkBD.Execution_query("delete from Ins_Event");

                var modEvent = WorkBD.Select_query($"select nc.Id_Calendar, me.New_Event, ncc.Id_Calendar, case when me.New_Calendar = a.NameId then 1 else 0 end from Mod_Event me left join Activity a on a.Id = me.RecordId, Name_Calendar nc, Name_Calendar ncc where nc.Id = a.NameId and ncc.Id = me.New_Calendar");

                foreach (DataRow mod in modEvent.Rows)
                {
                    var newEvent = JsonConvert.DeserializeObject <Event>(mod.ItemArray[1].ToString());

                    if (mod.ItemArray[3].ToString() == "1")
                    {
                        work.UpdateEvent(newEvent, mod.ItemArray[0].ToString());
                    }
                    else
                    {
                        work.UpdateEvent(newEvent, mod.ItemArray[0].ToString(), mod.ItemArray[2].ToString());
                    }
                }
                WorkBD.Execution_query("delete from Mod_Event");



                ActionRun(() => Filling());

                foreach (var items in Calendar_s.ToArray())
                {
                    WorkBD.Execution_query($"if exists(select Id from Name_Calendar where Id_Calendar = N'{items.calendar.Id}' and Id_User = (select Id from Users where UserName = N'{work.User}')) update Name_Calendar set calendar_name = N'{JsonConvert.SerializeObject(items.calendar)}' where Id_Calendar = N'{items.calendar.Id}' and Id_User = (select Id from Users where UserName = N'{work.User}') else insert into Name_Calendar (calendar_name, Id_Calendar, Id_User) values (N'{JsonConvert.SerializeObject(items.calendar)}', N'{items.calendar.Id}', (select Id from Users where UserName = N'{work.User}'))");

                    foreach (Event events in items.events.ToArray())
                    {
                        var result = WorkBD.Select_query($"if exists(select Id from Activity where NameId = (select Id from Name_Calendar where Id_Calendar = N'{items.calendar.Id}' and Id_User = (select Id from Users where UserName = N'{work.User}')) and EvendId = (select Id from Events_calendar where Id_Event = N'{events.Id}')) select 1 else select 0");


                        if (result.Rows[0].ItemArray[0].ToString() == "1")
                        {
                            WorkBD.Execution_query($"update Events_calendar set Calendar_event = N'{JsonConvert.SerializeObject(events)}' where Id_Event = N'{events.Id}'");
                        }
                        else
                        {
                            WorkBD.Execution_query($"if not exists(select Id from Events_calendar where Id_Event = N'{events.Id}') insert into Events_calendar (Calendar_event, Id_Event) values (N'{JsonConvert.SerializeObject(events)}', N'{events.Id}')");
                            WorkBD.Execution_query($"insert into Activity (NameId, EvendId, Date_Event) values ((select Id from Name_Calendar where Id_Calendar = N'{items.calendar.Id}' and Id_User = (select Id from Users where UserName = N'{work.User}')), (select Id from Events_calendar where Id_Event = N'{events.Id}'), CONVERT(DATETIME, N'{work.DateEvent(events.Start).ToString("yyyyMMdd HH:mm:ss")}', 102) )");
                        }
                    }
                }
            }
            else
            {
                connectStatus.Text  = "Соединение отсутствует";
                connectStatus.Image = Resources.disconect;

                ActionRun(() => Filling());
            }

            ActionRun(() => UpdTable());
            ActionRun(() => Drawing_Calendar(new DateTime(year, month, 1)));
        }