示例#1
0
        public ActionResult DeleteConfirmed(int id)
        {
            TrackAgenda trackAgenda = db.TrackAgendas.Find(id);

            db.TrackAgendas.Remove(trackAgenda);
            db.SaveChanges();
            return(RedirectToAction("/DisplaySession/11"));
        }
示例#2
0
 public ActionResult Edit([Bind(Include = "TrackAgendaID,EventTrackID,SpeakerID,SessionID,StartTime,EndTime,FavCount,QRCode")] TrackAgenda trackAgenda)
 {
     if (ModelState.IsValid)
     {
         db.Entry(trackAgenda).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.EventTrackID = new SelectList(db.EventTracks, "EventTrackID", "TrackVenue", trackAgenda.EventTrackID);
     ViewBag.SessionID    = new SelectList(db.Sessions, "SessionID", "Title", trackAgenda.SessionID);
     ViewBag.SpeakerID    = new SelectList(db.Speakers, "SpeakerID", "SpeakerName", trackAgenda.SpeakerID);
     return(View(trackAgenda));
 }
示例#3
0
        // GET: TrackAgendas/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TrackAgenda trackAgenda = db.TrackAgendas.Find(id);

            if (trackAgenda == null)
            {
                return(HttpNotFound());
            }
            return(View(trackAgenda));
        }
示例#4
0
        // GET: TrackAgendas/Create
        //public ActionResult Create()
        //{
        //    ViewBag.EventTrackID = new SelectList(db.EventTracks, "EventTrackID", "Event_TrackCombination");
        //    ViewBag.SessionID = new SelectList(db.Sessions, "SessionID", "Title");
        //    ViewBag.SpeakerID = new SelectList(db.Speakers, "SpeakerID", "SpeakerName");
        //    return View();
        //}

        // POST: TrackAgendas/Create
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.

        //[HttpPost]
        //[ValidateAntiForgeryToken]
        //public ActionResult Create([Bind(Include = "TrackAgendaID,EventTrackID,SpeakerID,SessionID,Event_Track_Session_Speakers,StartTime,EndTime,FavCount,QRCode")] TrackAgenda trackAgenda)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        db.TrackAgendas.Add(trackAgenda);
        //        db.SaveChanges();
        //        return RedirectToAction("Index");
        //    }

        //    ViewBag.EventTrackID = new SelectList(db.EventTracks, "EventTrackID", "Event_TrackCombination", trackAgenda.EventTrackID);
        //    ViewBag.SessionID = new SelectList(db.Sessions, "SessionID", "Title", trackAgenda.SessionID);
        //    ViewBag.SpeakerID = new SelectList(db.Speakers, "SpeakerID", "SpeakerName", trackAgenda.SpeakerID);
        //    return View(trackAgenda);
        //}



        ////////////////////////////////

        //////////THIS HAS TO BE MADE LIKE CREATE ABOVE/////////////////////////////////////////////////////

        ////////////////////////////////



        // GET: TrackAgendas/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TrackAgenda trackAgenda = db.TrackAgendas.Find(id);

            if (trackAgenda == null)
            {
                return(HttpNotFound());
            }
            ViewBag.EventTrackID = new SelectList(db.EventTracks, "EventTrackID", "TrackVenue", trackAgenda.EventTrackID);
            ViewBag.SessionID    = new SelectList(db.Sessions, "SessionID", "Title", trackAgenda.SessionID);
            ViewBag.SpeakerID    = new SelectList(db.Speakers, "SpeakerID", "SpeakerName", trackAgenda.SpeakerID);
            return(View(trackAgenda));
        }
示例#5
0
        public ActionResult Create(int id, [Bind(Include = "TrackAgendaID,EventTrackID,SpeakerID,SessionID,Event_Track_Session_Speakers,StartTime,EndTime,FavCount,QRCode")] TrackAgenda trackAgenda)
        {
            trackAgenda.EventTrackID = id;
            if (ModelState.IsValid)
            {
                db.TrackAgendas.Add(trackAgenda);
                db.SaveChanges();
                return(RedirectToAction("DisplaySession", new { id = trackAgenda.EventTrackID }));
            }

            ViewBag.EventTrackID = new SelectList(db.EventTracks, "EventTrackID", "Event_TrackCombination", trackAgenda.EventTrackID);

            var tid = db.EventTracks.Where(e => e.EventTrackID == id).Select(e => e.TrackID).FirstOrDefault();

            ViewBag.SessionID = new SelectList(db.Sessions.Where(e => e.TrackID == tid), "SessionID", "Title");
            ViewBag.SpeakerID = new SelectList(db.Speakers, "SpeakerID", "SpeakerName", trackAgenda.SpeakerID);
            return(View(trackAgenda));
        }
示例#6
0
        //[ValidateAntiForgeryToken]
        public String CreateEvent(EventInfoModel eventInfo)
        {
            if (eventInfo.Event.EventTypeObj != null)
            {
                eventInfo.Event.EventType = (EventType)eventInfo.Event.EventTypeObj.Key;  // map key to enum type.
            }

            if (eventInfo.Event.EventStatusObj != null)
            {
                eventInfo.Event.EventStatus = (EventStatus)eventInfo.Event.EventStatusObj.Key; // map key to enum type.
            }


            if (eventInfo.Event.EventVisibilityObj != null)
            {
                eventInfo.Event.EventVisibility = (EventVisibility)eventInfo.Event.EventVisibilityObj.Key; // map key to from enum type.
            }


            if (eventInfo.Event.EventScEligibilityObj != null)
            {
                eventInfo.Event.ScEligibility = (scEligibility)eventInfo.Event.EventScEligibilityObj.Key; // map key to enum type.
            }

            if (ModelState.IsValid)
            {
                if (eventInfo.Event.EventID == 0)                                                                                           //if new event.
                {
                    db.Events.Add(eventInfo.Event);                                                                                         //add new event.
                    if (eventInfo.EventTracks == null && (eventInfo.EventTechnologTags == null || eventInfo.EventAudienceTypeTags == null)) //event technolog tags does not exist and event tracks are also empty.
                    {
                        return(JsonConvert.SerializeObject(new { responseCode = 003 }));
                    }
                    db.SaveChanges();
                    if (eventInfo.EventTracks != null)              //event tracks if exists.
                    {
                        foreach (var eventTrack in eventInfo.EventTracks)
                        {
                            eventTrack.EventID = eventInfo.Event.EventID;

                            db.EventTracks.Add(eventTrack);
                        }
                        if (eventInfo.EventTechnologTags != null)       //event log tags in event if exist.
                        {
                            var @event = db.Events.Where(x => x.EventID == eventInfo.Event.EventID).FirstOrDefault();
                            foreach (var eventLog in eventInfo.EventTechnologTags)
                            {
                                @event.EventTechnologTags.Remove(eventLog);
                            }
                        }
                        if (eventInfo.EventAudienceTypeTags != null)
                        {
                            var @event = db.Events.Where(x => x.EventID == eventInfo.Event.EventID).FirstOrDefault();
                            foreach (var eventLog in eventInfo.EventAudienceTypeTags)
                            {
                                @event.EventAudienceTypeTags.Remove(eventLog);
                            }
                        }
                    }
                    else
                    {
                        var @event = db.Events.Where(x => x.EventID == eventInfo.Event.EventID).FirstOrDefault();
                        @event.EventTechnologTags = new List <PrimaryTechnology>();
                        foreach (var eventLog in eventInfo.EventTechnologTags)          //event techno log tags exist.
                        {
                            var existingEventLog = db.PrimaryTechnologies.Where(x => x.PrimaryTechnologyID == eventLog.PrimaryTechnologyID).FirstOrDefault();
                            @event.EventTechnologTags.Add(existingEventLog);        //add to event.
                        }

                        @event.EventAudienceTypeTags = new List <AudienceType>();
                        foreach (var eventLog in eventInfo.EventAudienceTypeTags)          //event techno log tags exist.
                        {
                            var existingEventLog = db.AudienceTypes.Where(x => x.AudienceTypeID == eventLog.AudienceTypeID).FirstOrDefault();
                            @event.EventAudienceTypeTags.Add(existingEventLog);        //add to event.
                        }
                    }
                }
                else
                {
                    var existingEvent = db.Events
                                        .Where(p => p.EventID == eventInfo.Event.EventID)
                                        .Include("EventTracks.TrackAgendas")
                                        .SingleOrDefault();

                    if (existingEvent != null)                                            //event already exist.
                    {
                        db.Entry(existingEvent).CurrentValues.SetValues(eventInfo.Event); //update existing event values.

                        // Delete children
                        foreach (var existingChild in existingEvent.EventTracks.ToList())
                        {
                            if (eventInfo.EventTracks == null || !eventInfo.EventTracks.Any(c => c.EventTrackID == existingChild.EventTrackID))
                            {
                                existingChild.TrackAgendas.ToList().ForEach(p => db.TrackAgendas.Remove(p));
                                db.EventTracks.Remove(existingChild);
                            }
                        }


                        if (eventInfo.EventTracks != null)
                        {
                            // Update and Insert children
                            foreach (var childModel in eventInfo.EventTracks)
                            {
                                var existingChild = existingEvent.EventTracks
                                                    .Where(c => c.EventTrackID == childModel.EventTrackID)
                                                    .SingleOrDefault();

                                if (existingChild != null)
                                {
                                    // Update child

                                    db.Entry(existingChild).CurrentValues.SetValues(childModel);

                                    // Delete children
                                    foreach (var existingGrandChild in existingChild.TrackAgendas.ToList())
                                    {
                                        if (!existingChild.TrackAgendas.Any(c => c.TrackAgendaID == existingGrandChild.TrackAgendaID))
                                        {
                                            db.TrackAgendas.Remove(existingGrandChild);
                                        }
                                    }

                                    // Update and Insert children
                                    foreach (var grandChildModel in existingChild.TrackAgendas)
                                    {
                                        var existingGrandChild = existingChild.TrackAgendas
                                                                 .Where(c => c.TrackAgendaID == grandChildModel.TrackAgendaID)
                                                                 .SingleOrDefault();

                                        if (existingGrandChild != null)
                                        {
                                            // Update child

                                            db.Entry(existingGrandChild).CurrentValues.SetValues(grandChildModel);
                                        }
                                        else
                                        {
                                            // Insert child
                                            var newChild = new TrackAgenda()
                                            {
                                                EndTime      = grandChildModel.EndTime,
                                                SpeakerID    = grandChildModel.SpeakerID,
                                                EventTrackID = grandChildModel.EventTrackID,
                                                FavCount     = grandChildModel.FavCount,
                                                QRCode       = grandChildModel.QRCode,
                                                SessionID    = grandChildModel.SessionID,
                                                StartTime    = grandChildModel.StartTime
                                            };
                                            existingChild.TrackAgendas.Add(newChild);
                                        }
                                    }
                                }
                                else
                                {
                                    // Insert child
                                    var newChild = new EventTrack()
                                    {
                                        EventID        = childModel.EventID,
                                        TrackEndTime   = childModel.TrackEndTime,
                                        TrackID        = childModel.TrackID,
                                        TrackOwner     = childModel.TrackOwner,
                                        TrackSeating   = childModel.TrackSeating,
                                        TrackVenue     = childModel.TrackVenue,
                                        TrackStartTime = childModel.TrackStartTime,
                                        TrackAgendas   = childModel.TrackAgendas
                                    };
                                    existingEvent.EventTracks.Add(newChild);
                                }
                            }
                            if (existingEvent.EventTechnologTags != null)
                            {
                                var existingTags = existingEvent.EventTechnologTags.ToList();
                                foreach (var eventLog in existingTags)
                                {
                                    existingEvent.EventTechnologTags.Remove(
                                        existingEvent.EventTechnologTags.FirstOrDefault(
                                            x => x.PrimaryTechnologyID == eventLog.PrimaryTechnologyID));
                                }
                            }
                            if (existingEvent.EventAudienceTypeTags != null)
                            {
                                var existingTags = existingEvent.EventAudienceTypeTags.ToList();
                                foreach (var eventLog in existingTags)
                                {
                                    existingEvent.EventAudienceTypeTags.Remove(
                                        existingEvent.EventAudienceTypeTags.FirstOrDefault(
                                            x => x.AudienceTypeID == eventLog.AudienceTypeID));
                                }
                            }
                        }
                        else
                        {
                            if (eventInfo.EventTechnologTags == null)
                            {
                                return(JsonConvert.SerializeObject(new { responseCode = 003 }));
                            }
                            else
                            {
                                if (existingEvent.EventTechnologTags != null)
                                {
                                    var existingTags = existingEvent.EventTechnologTags.ToList();
                                    foreach (var eventLog in existingTags)
                                    {
                                        existingEvent.EventTechnologTags.Remove(eventLog);
                                    }
                                }
                                existingEvent.EventTechnologTags = new List <PrimaryTechnology>();
                                foreach (var eventLog in eventInfo.EventTechnologTags)
                                {
                                    var existingEventLog = db.PrimaryTechnologies.Where(x => x.PrimaryTechnologyID == eventLog.PrimaryTechnologyID).FirstOrDefault();
                                    existingEvent.EventTechnologTags.Add(existingEventLog);         //add new techno log tags of event.
                                }
                            }

                            if (eventInfo.EventAudienceTypeTags == null)
                            {
                                return(JsonConvert.SerializeObject(new { responseCode = 003 }));
                            }
                            else
                            {
                                if (existingEvent.EventAudienceTypeTags != null)
                                {
                                    var existingTags = existingEvent.EventAudienceTypeTags.ToList();
                                    foreach (var eventLog in existingTags)
                                    {
                                        existingEvent.EventAudienceTypeTags.Remove(eventLog);
                                    }
                                }
                                existingEvent.EventAudienceTypeTags = new List <AudienceType>();
                                foreach (var eventLog in eventInfo.EventAudienceTypeTags)
                                {
                                    var existingEventLog = db.AudienceTypes.Where(x => x.AudienceTypeID == eventLog.AudienceTypeID).FirstOrDefault();
                                    existingEvent.EventAudienceTypeTags.Add(existingEventLog);         //add new techno log tags of event.
                                }
                            }
                        }
                    }
                }
                db.SaveChanges();

                return(JsonConvert.SerializeObject(new { responseCode = 001 }));
            }
            return(JsonConvert.SerializeObject(new { responseCode = 002 }));
        }