public IHttpActionResult CreateSchedulerEvent(WebAPIRecurringEvent webAPIEvent)
        {
            var newSchedulerEvent = (SchedulerRecurringEvent)webAPIEvent;

            db.SchedulerRecurringEvents.Add(newSchedulerEvent);
            db.SaveChanges();

            // delete a single occurrence from a recurring series
            var resultAction = "inserted";

            if (newSchedulerEvent.RecType == "none")
            {
                resultAction = "deleted";
            }

            return(Ok(new
            {
                tid = newSchedulerEvent.Id,
                action = resultAction
            }));
        }
        public IHttpActionResult EditSchedulerEvent(int id, WebAPIRecurringEvent webAPIEvent)
        {
            var updatedSchedulerEvent = (SchedulerRecurringEvent)webAPIEvent;

            updatedSchedulerEvent.Id = id;
            db.Entry(updatedSchedulerEvent).State = EntityState.Modified;

            if (!string.IsNullOrEmpty(updatedSchedulerEvent.RecType) && updatedSchedulerEvent.RecType != "none")
            {
                //all modified occurrences must be deleted when we update a recurring series
                //https://docs.dhtmlx.com/scheduler/server_integration.html#savingrecurringevents

                db.SchedulerRecurringEvents.RemoveRange(
                    db.SchedulerRecurringEvents.Where(e => e.EventPID == id)
                    );
            }

            db.SaveChanges();

            return(Ok(new
            {
                action = "updated"
            }));
        }