// GET: odata/EventDatas(5)
[EnableQuery]
[AcceptVerbs("GET")]
public IQueryable<EventData> GetEventDatas(string StartDate, string EndDate)
{
DateTime start = DateTime.Parse(StartDate);
DateTime end = DateTime.Parse(EndDate);
return db.EventDatas.Where(evt => evt.StartTime >= start && evt.EndTime <= end);
}
// POST: odata/EventDatas
[AcceptVerbs("POST", "OPTIONS")]
public void Post([FromBody]CrudData eventData)
{
EventData insertData = new EventData();
insertData.Id = (db.EventDatas.ToList().Count > 0 ? db.EventDatas.ToList().Max(p => p.Id) : 1) + 1;
insertData.StartTime = Convert.ToDateTime(eventData.StartTime).ToLocalTime();
insertData.EndTime = Convert.ToDateTime(eventData.EndTime).ToLocalTime();
insertData.Subject = eventData.Subject;
insertData.IsAllDay = eventData.IsAllDay;
insertData.Location = eventData.Location;
insertData.Description = eventData.Description;
insertData.GroupId = eventData.GroupId;
insertData.GroupCategoryId = eventData.GroupCategoryId;
insertData.RecurrenceRule = eventData.RecurrenceRule;
insertData.RecurrenceID = eventData.RecurrenceID;
insertData.RecurrenceException = eventData.RecurrenceException;
insertData.StartTimezone = eventData.StartTimezone;
insertData.EndTimezone = eventData.EndTimezone;
db.EventDatas.Add(insertData);
db.SaveChanges();
}
// PATCH: odata/EventDatas(5)
[AcceptVerbs("PATCH", "MERGE", "OPTIONS")]
public void Patch([FromBody]CrudData eventData)
{
EventData updateData = db.EventDatas.Find(Convert.ToInt32(eventData.Id));
if (updateData != null)
{
updateData.StartTime = Convert.ToDateTime(eventData.StartTime).ToLocalTime();
updateData.EndTime = Convert.ToDateTime(eventData.EndTime).ToLocalTime();
updateData.Subject = eventData.Subject;
updateData.IsAllDay = eventData.IsAllDay;
updateData.Location = eventData.Location;
updateData.Description = eventData.Description;
updateData.GroupId = eventData.GroupId;
updateData.GroupCategoryId = eventData.GroupCategoryId;
updateData.RecurrenceRule = eventData.RecurrenceRule;
updateData.RecurrenceID = eventData.RecurrenceID;
updateData.RecurrenceException = eventData.RecurrenceException;
updateData.StartTimezone = eventData.StartTimezone;
updateData.EndTimezone = eventData.EndTimezone;
db.SaveChanges();
}
}
// DELETE: odata/EventDatas(5)
[AcceptVerbs("DELETE", "OPTIONS")]
public void Delete([FromODataUri]int key)
{
EventData removeData = db.EventDatas.Find(key);
if (removeData != null)
{
db.EventDatas.Remove(removeData);
db.SaveChanges();
}
} |
this.dataManager = new DataManager({
url: "http://localhost:25255/odata",
adaptor: new ODataV4Adaptor(),
crossDomain: true
});
this.dataQuery = new Query().from("EventDatas");
.
.
.
eventSettings={{
dataSource: this.dataManager,
query: this.dataQuery
}}
|
<ScheduleComponent
cssClass="timeline-resource-grouping"
width="100%"
height="650px"
selectedDate={new Date(2018, 3, 4)}
currentView="TimelineWeek"
eventSettings={{
dataSource: this.dataManager,
query: this.dataQuery
}}
group={{ resources: ["Projects", "Categories"] }}
editorTemplate={this.editorTemplate.bind(this)}
>
<ResourcesDirective>
<ResourceDirective
field="GroupCategoryId"
title="Choose Project"
name="Projects"
allowMultiple={false}
dataSource={this.projectData}
textField="parentText"
idField="parentId"
colorField="color"
/>
<ResourceDirective
field="GroupId"
title="Category"
name="Categories"
allowMultiple={false}
dataSource={this.categoryData}
textField="text"
idField="id"
groupIDField="groupId"
colorField="color"
/>
</ResourcesDirective>
<ViewsDirective>
<ViewDirective option="TimelineDay" />
<ViewDirective option="TimelineWeek" />
<ViewDirective option="TimelineWorkWeek" />
<ViewDirective option="TimelineMonth" />
<ViewDirective option="Agenda" />
</ViewsDirective>
<Inject
services={[
TimelineViews,
TimelineMonth,
Agenda,
Resize,
DragAndDrop
]}
/>
</ScheduleComponent> |
<ScheduleComponent
cssClass="timeline-resource-grouping"
width="100%"
height="650px"
editorTemplate={this.editorTemplate.bind(this)}
>
</ScheduleComponent> |