コード例 #1
0
        private void createEvent_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(eventSummary.Text))
            {
                work.CreateEvent(eventSummary.Text, eventStart.Value, eventEnd.Value, calendars[CalendarsForEvents.SelectedIndex].Id, string.IsNullOrEmpty(eventDescription.Text) ? null : eventDescription.Text, string.IsNullOrEmpty(eventAttendees.Text) ? null : eventAttendees.Text.Split('\n').ToList(), string.IsNullOrEmpty(eventLocation.Text) ? null : eventLocation.Text);

                Close();
            }
            else
            {
                MessageBox.Show("Введите название события!", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
コード例 #2
0
        /// <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)));
        }