public async Task<ActionResult> AddSchedule([ModelBinder(typeof(DayOfWeekModelBinder))] DayOfWeek days) { var submitModel = new ScheduleSubmitModel{ Days = days }; if (!this.TryUpdateModel(submitModel , new[]{"CheckForRain", "DeviceId", "Duration", "Hours", "Minutes", "Recurrence", "StartDate"} ) ) { return this.View("Add", submitModel); } var schedule = new Schedule { CheckForRain = submitModel.CheckForRain, Days = submitModel.Recurrence ? submitModel.Days : null, DeviceId = submitModel.DeviceId, Duration = submitModel.Duration, Offset = new TimeSpan(submitModel.Hours, submitModel.Minutes, 0), Recurrence = submitModel.Recurrence, StartDate = submitModel.Recurrence ? null : submitModel.StartDate }; await this.scheduleCommandManager.AddScheduleAsync(this.HttpContext.User.Identity.GetUserId(), schedule); return this.RedirectToAction("Index", new { Id = schedule.Id, DeviceId = submitModel.DeviceId }); }
public async Task AddScheduleAsync(string personId, Schedule schedule) { var device = await this.deviceQueryManager.GetDeviceAsync(personId, schedule.DeviceId); var schedules = await this.scheduleQueryManager.GetSchedulesAsync(personId, device.Id); if (schedules.Any(x => x.StartDate == schedule.StartDate && x.Days == schedule.Days && x.Offset == schedule.Offset)) { throw new ArgumentException("This device already has a schedule with the same trigger."); } schedule.DeviceId = device.Id; await this.scheduleCommandStore.AddScheduleAsync(schedule); }
public Task RemoveScheduleAsync(Schedule schedule) { this.databaseContext.Schedules.Attach(schedule); this.databaseContext.Schedules.Remove(schedule); return this.databaseContext.SaveChangesAsync(); }
public Task AddScheduleAsync(Schedule schedule) { this.databaseContext.Schedules.Add(schedule); return this.databaseContext.SaveChangesAsync(); }