I am using Telerik UI Scheduler for asp.net core Project.I am using WebApi to bind data and insert new meeting to the room but I have 2 problems are:
 1. insert is called twice when I insert new Item. 
 2. update and delete methods are bound to Post and they are not calling corresponded  do delete of add operation.  html view     @(Html.Kendo().Scheduler<Meeting>().Name("scheduler").Date(new DateTime(2017, 5, 13))          .StartTime(new DateTime(2017, 5,13, 7, 00, 00))          .Editable(true)          .Views(views=>{              views.DayView();              views.AgendaView();          })          .Height(600)          .Timezone("Etc/UTC")          .Group(group => { group.Resources("Rooms"); group.Date(true); })          .Resources(resource =>          {              resource.Add(m => m.RoomId).Title("Room").Name("Rooms").DataTextField("Text").DataValueField("Value").DataColorField("Color").BindTo(new[] {                  new { Text = "Meeting Room 101", Value = 1, Color = "#6eb3fa" },                  new { Text = "Meeting Room 201", Value = 2, Color = "#f58a8a" }              });              resource.Add(m => m.Attendees)                  .Title("Attendees")                  .Multiple(true)                  .DataTextField("Text")                  .DataValueField("Value")                  .DataColorField("Color")                  .BindTo(new[] {                      new { Text = "Alex", Value = 1, Color = "#f8a398" } ,                      new { Text = "Bob", Value = 2, Color = "#51a0ed" } ,                      new { Text = "Charlie", Value = 3, Color = "#56ca85" }                  });          }).DataSource(d => d              .WebApi()              .Model(m =>              {                  m.Id(f => f.RecordId);                  m.Field(f => f.Title).DefaultValue("No title");                  m.Field(f => f.Title).DefaultValue("No title");              })              .Events(events => events.Error("error_handler"))              .Read(read => read.Action("Get", "Meeting"))              .Create(create => create.Action("Post", "Meeting"))             .Update(update => update.Action("Put", "Meeting", new { id = "{0}" }))             .Destroy(destroy => destroy.Action("Delete", "Meeting", new { id = "{0}" }))              ).Deferred())             @* All initialization scripts are rendered to the bottom of the page, see _Layout.cshtml *@        @section scripts {            @Html.Kendo().DeferredScripts()        }        <script>    function error_handler(e) {        var errors = $.parseJSON(e.xhr.responseText);             if (errors) {            alert("Errors:\n" + errors.join("\n"));        }    }        </script>meeting Web api controller        [Route("api/[controller]")]        public class MeetingController : Controller        {            private IMeetingData meetingData;                 public MeetingController(IMeetingData meetingData)            {                this.meetingData = meetingData;            }                 // GET api/task            [HttpGet]            public DataSourceResult Get([DataSourceRequest]DataSourceRequest request)            {                return meetingData.GetAll().ToDataSourceResult(request);            }                 // POST api/Meeting            [HttpPost]            public IActionResult Post(Meeting m)            {                if (!ModelState.IsValid)                {                    return BadRequest(ModelState.Values.SelectMany(v => v.Errors).Select(error => error.ErrorMessage));                }                     meetingData.Insert(m, null);                     return new ObjectResult(new DataSourceResult { Data = new[] { m }, Total = 1 });            }                 // PUT api/Meeting/5            [HttpPut("{id}")]            public IActionResult Put(int id, Meeting m)            {                if (ModelState.IsValid && id ==  m.RecordId)                {                    try                    {                        meetingData.Update(m, null);                    }                    catch (Exception)                    {                        return new NotFoundResult();                    }                         return new StatusCodeResult(200);                }                else                {                    return BadRequest(ModelState.Values.SelectMany(v => v.Errors).Select(error => error.ErrorMessage));                }            }                 // DELETE api/Meeting/5            [HttpDelete("{id}")]            public IActionResult Delete(int id)            {                try                {                    meetingData.Delete(new Meeting { RecordId = id }, null);                }                catch (Exception)                {                    return new NotFoundResult();                }                     return new StatusCodeResult(200);            }        }    }