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));
        }
Example #2
0
        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);
            }
        }
Example #3
0
 static App()
 {
     EventData = new EventAgenda();
 }