private void modEvent_Click(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(eventSummary.Text)) { SelectEvent.Summary = SelectEvent.Summary == eventSummary.Text ? SelectEvent.Summary : eventSummary.Text; SelectEvent.Start.Date = SelectEvent.Start.Date == eventStart.Value.Date.ToString("yyyy-MM-dd") ? SelectEvent.Start.Date : eventStart.Value.Date.ToString("yyyy-MM-dd"); SelectEvent.End.Date = SelectEvent.End.Date == eventEnd.Value.Date.ToString("yyyy-MM-dd") ? SelectEvent.End.Date : eventEnd.Value.Date.ToString("yyyy-MM-dd"); SelectEvent.Description = string.IsNullOrWhiteSpace(eventDescription.Text) ? null : eventDescription.Text; SelectEvent.Attendees = string.IsNullOrWhiteSpace(eventAttendees.Text) ? null : AttendeesForEvent(eventAttendees.Text); SelectEvent.Location = string.IsNullOrWhiteSpace(eventLocation.Text) ? null : eventLocation.Text; Work.UpdateEvent(SelectEvent, SourceCalendar.Id, SourceCalendar != AllCalendars[CalendarsForEvents.SelectedIndex] ? AllCalendars[CalendarsForEvents.SelectedIndex].Id : null); Close(); } else { MessageBox.Show("Название не может быть пустым!"); } }
/// <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))); }