Пример #1
0
        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);
        }
Пример #3
0
 public async Task <ActionResult> Post([FromBody] TimeSlotTemplate template)
 {
     return(await _timeSlotProcessService.ProcessTimeSlotAdditionAsync(template));
 }