public async Task <ActionResult> ProcessTimeSlotAdditionAsync(TimeSlotTemplate template) { Guard.Argument(() => template).NotNull(); var result = await _timeSlotOrchestrator.AddTimeSlotsAsync( template.StartTime, template.EndTime, template.TimeSlotDuration, template.QueueId); return(new CreatedAtRouteResult(new { Ids = result.Select(timeSlot => timeSlot.Id) }, result)); }
public bool SaveTemplate() { var template = GetSession(); if (template.RosterTemplateId == Guid.Empty) { var model = new RosterTemplate { RosterName = template.TemplateName, }; db.RosterTemplate.Add(model); db.SaveChanges(); template.RosterTemplateId = model.RosterTemplateId; foreach (var timeSlot in template.TimeSlots) { timeSlot.RosterTemplateId = model.RosterTemplateId; db.TimeSlotTemplate.Add(timeSlot); } db.SaveChanges(); } else { var model = new RosterTemplate { RosterTemplateId = template.RosterTemplateId, RosterName = template.TemplateName, }; db.Entry(model).State = EntityState.Modified; db.SaveChanges(); foreach (var oldTimeSlot in db.TimeSlotTemplate.Where(x => x.RosterTemplateId == template.RosterTemplateId)) { db.Entry(oldTimeSlot).State = EntityState.Deleted; } foreach (var newTimeSlot in template.TimeSlots) { var timeSlotModel = new TimeSlotTemplate { RosterTemplateId = template.RosterTemplateId, GameName = newTimeSlot.GameName, Length = newTimeSlot.Length, Offset = newTimeSlot.Offset, NumberOfPlayers = newTimeSlot.NumberOfPlayers, IsSteamGame = newTimeSlot.IsSteamGame, }; db.TimeSlotTemplate.Add(timeSlotModel); } db.SaveChanges(); } template.Edited = false; SetSession(template); return(true); }
public async Task <ActionResult> Post([FromBody] TimeSlotTemplate template) { return(await _timeSlotProcessService.ProcessTimeSlotAdditionAsync(template)); }