protected virtual void Execute(MoveEventTimeContext context) { Item item = StaticSettings.EventTargetDatabase.GetItem(ID.Parse(context.EventID)); if (item == null) { Log.Error("Calendar Module: WebService - cannot find event", null); return; } if (SecurityManager.CanWrite(item) != true) { return; } if (item.TemplateID != StaticSettings.EventTemplate.ID) { throw new EventCalendarException( String.Format( String.Format(ResourceManager.Localize("UNSUPPORT_TEMPLATE"), item.Name, item.TemplateName, StaticSettings.EventTemplate.Name))); } item.Editing.BeginEdit(); if (!string.IsNullOrEmpty(context.StartTime)) { item.Fields[Event.StartTimeField].Value = Utilities.NormalizeTime(context.StartTime); } if (!string.IsNullOrEmpty(context.EndTime)) { item.Fields[Event.EndTimeField].Value = Utilities.NormalizeTime(context.EndTime); } item.Editing.EndEdit(); Event evt = new Event(item); if (evt.ScheduleID != null) { if (context.UpdateSeries) { SyncEventTimes(GetEventSet(evt, context.UpdateSeries), evt); } else { item.Editing.BeginEdit(); item.Fields[Event.ScheduleIDField].Value = string.Empty; item.Editing.EndEdit(); } } PublishUtil.Publishing(item, false, false); }
public static void UpdateTime(string eventID, string startTime, string endTime, bool updateSeries) { var message = Message.Parse(eventID, "event:movetime"); var moveTimeContext = new MoveEventTimeContext(eventID, startTime, endTime, updateSeries); Dispatcher.Dispatch(message, moveTimeContext); }