protected virtual void Execute(MoveEventContext 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(ResourceManager.Localize("UNSUPPORT_TEMPLATE"), item.Name, item.TemplateName,
                             StaticSettings.EventTemplate.Name));
             }

             item.Editing.BeginEdit();
             item.Fields[Event.StartDateField].Value = DateUtil.ToIsoDate(Utilities.StringToDate(context.NewDate));

             if (Utilities.StringToDate(context.NewDate) > Utilities.IsoStringToDate(item.Fields[Event.EndDateField].Value))
             {
            item.Fields[Event.EndDateField].Value = item.Fields[Event.StartDateField].Value;
             }

             item.Fields[Event.ScheduleIDField].Value = string.Empty;

             item.Editing.EndEdit();

             PublishUtil.Publishing(item, true, false);
        }
 public static void MoveEvent(string eventID, string newDate)
 {
     Message message = Message.Parse(eventID, "event:move");
      var context = new MoveEventContext(eventID, newDate);
      Dispatcher.Dispatch(message, context);
 }