コード例 #1
0
        public ActionResult EventDetailsById(int id, string eventfulId, bool eventfulEvent)
        {
            if (!eventfulEvent)
            {
                var currentUserId = this.User.Identity.GetUserId();
                var isAdmin = this.IsAdmin();
                var eventDetails = this.eventsdb.Events
                    .Where(e => e.Id == id)
                    .Where(e => e.IsPublic || isAdmin || (e.AuthorId != null && e.AuthorId == currentUserId))
                    .Select(EventDetailsViewModel.ViewModel)
                    .FirstOrDefault();

                var isOwner = (eventDetails != null && eventDetails.AuthorId != null &&
                    eventDetails.AuthorId == currentUserId);
                this.ViewBag.CanEdit = isOwner || isAdmin;

                return this.PartialView("_EventDetails", eventDetails);
            }
            else
            {
                this.ViewBag.CanEdit = false;
                EventDetailsViewModel result = new EventDetailsViewModel();

                EventfulSearch search = new EventfulSearch();
                search.Id = eventfulId;
                var eventResult = search.GetEventfulDetails();

                if (eventResult.description != null)
                    result.Description = HttpUtility.HtmlDecode(eventResult.description);
                else
                    result.Description = "No additional details.";

                result.Id = eventfulId;

                List<CommentViewModel> comments = new List<CommentViewModel>();
                var r = this.eventfulDb.EventfulComments.Where(c => c.EventfulId == eventfulId).ToList();

                if (r != null && r.Any())
                {
                    foreach (EventfulComment c in r)
                    {
                        CommentViewModel cView = new CommentViewModel();

                        cView.Text = c.Text;
                        cView.Author = c.AspNetUser.FullName;

                        comments.Add(cView);
                    }
                }

                result.Comments = comments;

                return this.PartialView("_EventDetails", result);
            }
        }
コード例 #2
0
        public ActionResult Index()
        {
            var events = this.eventsdb.Events
                .Where(e => e.IsPublic)
                .OrderBy(e => e.StartDateTime);

            var eventViews = EventsController.AddImagesToOurEvents(events);

            var upcomingEvents = eventViews.Where(e => e.StartDateTime > DateTime.Now).ToList();
            var passedEvents = eventViews.Where(e => e.StartDateTime <= DateTime.Now).ToList();

            var result = (new UpcomingPassedEventsViewModel()
            {
                UpcomingEvents = upcomingEvents,
                PassedEvents = passedEvents
            });

            //Getting results from Eventful
            EventfulSearch api = new EventfulSearch();
            api.Location = "Atlanta";
            api.Date = DateTime.Now.AddDays(1).ToString("yyyyMMdd") + "00-" + DateTime.Now.AddDays(15).ToString("yyyyMMdd") + "00";

            var eventfulEvents = api.Search().ConvertToEventViewModel();

            //Add the Eventful Events to the database events and resort
            var temp = eventfulEvents.Where(e => e.StartDateTime > DateTime.Now).OrderBy(m => m.StartDateTime).AddMissingImagesToTheirEvents();
            result.UpcomingEvents = result.UpcomingEvents.Concat(temp).ToList();
            var temp1 = eventfulEvents.Where(e => e.StartDateTime <= DateTime.Now).OrderBy(m => m.StartDateTime).AddMissingImagesToTheirEvents();
            result.PassedEvents = result.PassedEvents.Concat(temp1).ToList();

            return View(result);
        }
コード例 #3
0
        public ActionResult Create(EventInputModel model)
        {
            string lat = string.Empty;
            string lon = string.Empty;
            EventfulSearch coorResolver = new EventfulSearch();
            string[] coord = resolveCoordinates(model.Address, model.City, model.State, model.Zip);

            int zip = 0;
            int.TryParse(model.Zip, out zip);

            if (coord != null && coord.Length == 2)
            {
                lat = coord[0];
                lon = coord[1];
            }

            if (model != null && this.ModelState.IsValid)
            {
                var e = new Event()
                {
                    AuthorId = this.User.Identity.GetUserId(),
                    Title = model.Title,
                    StartDateTime = model.StartDateTime,
                    Duration = model.Duration,
                    Description = model.Description,
                    Address = model.Address,
                    City = model.City,
                    Lat = lat,
                    Lon = lon,
                    State = model.State,
                    Zip = zip > 9999 ? new Nullable<int>(zip) : null,
                    IsPublic = model.IsPublic
                };

                this.eventsdb.Events.Add(e);
                this.eventsdb.SaveChanges();

                List<string> invitedUsers = new List<string>();
                if(Request["Friends"]!= null)
                {
                    invitedUsers = Request["Friends"].Split(',').ToList();
                }

                foreach(string invitedUser in invitedUsers)
                {
                    var invite = new EventInvite();
                    invite.FromUser = this.User.Identity.GetUserId();
                    invite.ToUser = invitedUser;
                    invite.EventId = e.Id;

                    eventsdb.EventInvites.Add(invite);
                }
                eventsdb.SaveChanges();

                if (Request.Files != null && Request.Files.Count > 0)
                {
                    SaveImages(e.Id);
                }

                this.AddNotification("Event created.", NotificationType.INFO);
                return this.RedirectToAction("My");
            }

            return this.View(model);
        }
コード例 #4
0
        public ActionResult Index(string location, string keyword, string fromDate, string toDate)
        {
            List<EventViewModel> events;
            //Local events search
            events = LocalEventSearch(location, keyword);

            //Local date search
            events = LocalEventsDateSearch(fromDate, toDate, events);

            //Local events sorting
            var upcomingEvents = events.Where(e => e.StartDateTime > DateTime.Now).ToList();
            var passedEvents = events.Where(e => e.StartDateTime <= DateTime.Now).ToList();

            var result = (new UpcomingPassedEventsViewModel()
            {
                UpcomingEvents = upcomingEvents,
                PassedEvents = passedEvents
            });

            //Getting results from Eventful
            EventfulSearch api = new EventfulSearch();
            if (!string.IsNullOrEmpty(keyword))
                api.Keyword = keyword;
            if (!string.IsNullOrEmpty(location))
                api.Location = location;

            api.Date = FormatEventfulSearchDateRange(fromDate, toDate);

            var eventfulEvents = api.Search().ConvertToEventViewModel();

            //Add the Eventful Events to the database events and resort
            var temp = eventfulEvents.Where(e => e.StartDateTime > DateTime.Now).OrderBy(m => m.StartDateTime).AddMissingImagesToTheirEvents();
            result.UpcomingEvents = result.UpcomingEvents.Concat(temp).ToList();
            var temp1 = eventfulEvents.Where(e => e.StartDateTime <= DateTime.Now).OrderBy(m => m.StartDateTime).AddMissingImagesToTheirEvents();
            result.PassedEvents = result.PassedEvents.Concat(temp1).ToList();

            return View(result);
        }
コード例 #5
0
        public ActionResult Index()
        {
            var events = this.eventsdb.Events
                .OrderBy(e => e.StartDateTime)
                .Where(e => e.IsPublic)
                .Select(EventViewModel.ViewModel);

            var upcomingEvents = events.Where(e => e.StartDateTime > DateTime.Now).ToList();
            var passedEvents = events.Where(e => e.StartDateTime <= DateTime.Now).ToList();

            var result = (new UpcomingPassedEventsViewModel()
            {
                UpcomingEvents = upcomingEvents,
                PassedEvents = passedEvents
            });

            //Getting results from Eventful
            EventfulSearch api = new EventfulSearch();
            api.Location = "Atlanta";
            api.Date = DateTime.Now.ToString("MMMM");

            var eventfulEvents = api.Search().ConvertToEventViewModel();

            //Add the Eventful Events to the database events and resort

            result.UpcomingEvents = result.UpcomingEvents.Concat(eventfulEvents.Where(e => e.StartDateTime > DateTime.Now)).OrderBy(m => m.StartDateTime);
            result.PassedEvents = result.PassedEvents.Concat(eventfulEvents.Where(e => e.StartDateTime <= DateTime.Now)).OrderBy(m => m.StartDateTime);

            return View(result);
        }