public IHttpActionResult Post([FromBody] CreateEventAgendaModel model) { var agenda = new EventAgenda { AgendaTitle = model.AgendaTitle, AgendaDescription = model.AgendaDescription, Tentative = model.Tentative, Time = model.Time, EventId = model.EventId, PersonInChargeId = model.PersonInChargeId, CreatedBy = null, Display = true, CreatedDate = DateTime.Now, }; db.EventAgenda.Add(agenda); db.SaveChanges(); //files foreach (var fileid in model.FilesId) { var eventfile = new EventFile { FileCategory = EventFileCategory.EventAgenda, FileId = fileid, ParentId = agenda.Id }; db.EventFile.Add(eventfile); } return(Ok(agenda.Id)); }
private static void UpdateEventDataFromJsonData(EventAgenda eventData, IEnumerable <TalkData> talksJson) { var slots = new List <TimeSlot>(); foreach (var t in talksJson) { var newTalk = new Talk { Title = t.title, Subtitle = t.subtitle, Description = t.description, Room = t.room, Speaker = new Speaker { Name = t.speaker, PictureUrl = t.speakerimage, WebsiteUrl = t.speakerlink, TwitterUrl = String.IsNullOrEmpty(t.speakertwitter) ? null : String.Format("https://www.twitter.com/{0}", t.speakertwitter) } }; var newSlot = new TimeSlot(t.slot); var existingSlot = slots.FirstOrDefault(s => newSlot.Equals(s)); if (existingSlot == null) { slots.Add(newSlot); } (existingSlot ?? newSlot).Talks.Add(newTalk); } // Link up timeslots foreach (var slot in slots) { foreach (var talk in slot.Talks) { talk.TimeSlot = slot; } slot.Talks = slot.Talks.OrderBy(t => t.Room).ToList(); } // Add slots to eventData foreach (var slot in slots.OrderBy(s => s.StartTime)) { eventData.Slots.Add(slot); } }
static App() { EventData = new EventAgenda(); }