Beispiel #1
0
        public ActionResult allEvents(int?id)
        {
            {
                EventQuery       Equery = new EventQuery();
                ParticipantQuery Pquery = new ParticipantQuery();

                allEventsViewModel UserEventsCreatedList = new allEventsViewModel();

                List <EventsViewModel> events = new List <EventsViewModel>();

                List <EventDTO> dtoUserEventsCreated = Equery.QueryUserEventsCreated();


                foreach (EventDTO Edto in dtoUserEventsCreated)
                {
                    EventsViewModel vm = new EventsViewModel();

                    vm.Id          = Edto.Id;
                    vm.Name        = Edto.Name;
                    vm.TimeStart   = Edto.TimeStart;
                    vm.Description = Edto.Description;

                    vm.isRegistered = Pquery.IsRegistered(Edto.Id);
                    if (vm.isRegistered)
                    {
                        vm.participantId = Pquery.FindParticipantByEventAndUser(Edto.Id);
                    }
                    events.Add(vm);
                }

                List <ParticipantsViewModel> Pevents        = new List <ParticipantsViewModel>();
                List <ParticipantDTO>        ParticipantDTO = Pquery.QueryUserEventsAttending();

                foreach (ParticipantDTO Pdto in ParticipantDTO)
                {
                    ParticipantsViewModel vm = new ParticipantsViewModel();

                    vm.id             = Equery.FindEvent(Pdto.eventId).Id;
                    vm.parId          = Pdto.Id;
                    vm.EventName      = Equery.FindEvent(Pdto.eventId).Name;
                    vm.EventStartDate = Equery.FindEvent(Pdto.eventId).TimeStart;
                    vm.Description    = Equery.FindEvent(Pdto.eventId).Description;
                    Pevents.Add(vm);
                }

                UserEventsCreatedList.EventsAttend  = Pevents;
                UserEventsCreatedList.EventsCreated = events;


                return(View(UserEventsCreatedList));
            }
        }
Beispiel #2
0
        public ActionResult Reminders(int id, [Bind(Include = "Reminder, emailNotificationOn, SMSNotificationOn, EventStartDate, PhoneNumber")] RemindersViewModel remindersViewModel)
        {
            if (id <= 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (ModelState.IsValid)
            {
                ParticipantQuery      pq   = new ParticipantQuery();
                ParticipantDTO        pDTO = new ParticipantDTO();
                ParticipantDTO        pdt  = pq.FindParticipant(id);
                ParticipantsViewModel pvm  = new ParticipantsViewModel();

                EventQuery eq   = new EventQuery();
                EventDTO   edto = eq.FindEvent(pdt.eventId);

                pDTO.Reminder            = remindersViewModel.Reminder;
                pDTO.emailNotificationOn = remindersViewModel.emailNotificationOn;
                pDTO.SMSNotificationOn   = remindersViewModel.SMSNotificationOn;
                pDTO.Id    = id;
                pDTO.Phone = remindersViewModel.PhoneNumber;

                pq.UpdateParticipantReminders(pDTO);

                return(RedirectToAction("ReminderConfirmation", "Participants"));
            }

            return(View(remindersViewModel));
        }
Beispiel #3
0
        public ActionResult RegistrationConfirmationPrint(int id)
        {
            ParticipantQuery participantQuery = new ParticipantQuery();
            ParticipantDTO   participantDTO   = new ParticipantDTO();
            EventQuery       eventQuery       = new EventQuery();
            EventDTO         eventDTO         = new EventDTO();
            UserDTO          userDTO          = new UserDTO();
            UserQuery        userQuery        = new UserQuery();

            ParticipantsViewModel vm = new ParticipantsViewModel();

            participantDTO = participantQuery.FindParticipant(id);
            eventDTO       = eventQuery.FindEvent(participantDTO.eventId);
            userDTO        = userQuery.FindCurrentUser();

            vm.EventName      = eventDTO.Name;
            vm.NumberOfTicket = participantDTO.NumberOfTicket;
            vm.EventStartDate = eventDTO.TimeStart;

            ViewBag.NumberOfTickets = participantDTO.NumberOfTicket;
            ViewBag.Username        = userDTO.Username.Replace("@", "").Replace(".com", "");
            ViewBag.UserId          = userDTO.Id;
            ViewBag.EventName       = eventDTO.Name;
            ViewBag.EventId         = eventDTO.Id;

            return(View(vm));
        }
Beispiel #4
0
        public PartialViewResult _EventsCreatedPartial()
        {
            {
                EventQuery       Equery = new EventQuery();
                ParticipantQuery Pquery = new ParticipantQuery();


                allEventsViewModel     UserEventsCreatedList = new allEventsViewModel();
                List <EventsViewModel> events = new List <EventsViewModel>();

                List <EventDTO> dtoUserEventsCreated = Equery.QueryUserEventsCreated();

                foreach (EventDTO Edto in dtoUserEventsCreated)
                {
                    EventsViewModel vm = new EventsViewModel();

                    vm.Id          = Edto.Id;
                    vm.Name        = Edto.Name;
                    vm.TimeStart   = Edto.TimeStart;
                    vm.Description = Edto.Description;

                    events.Add(vm);
                }

                List <ParticipantsViewModel> Pevents        = new List <ParticipantsViewModel>();
                List <ParticipantDTO>        ParticipantDTO = Pquery.QueryUserEventsAttending();

                foreach (ParticipantDTO Pdto in ParticipantDTO)
                {
                    ParticipantsViewModel vm = new ParticipantsViewModel();

                    vm.id             = Equery.FindEvent(Pdto.eventId).Id;
                    vm.EventName      = Equery.FindEvent(Pdto.eventId).Name;
                    vm.EventStartDate = Equery.FindEvent(Pdto.eventId).TimeStart;
                    vm.Description    = Equery.FindEvent(Pdto.eventId).Description;

                    Pevents.Add(vm);
                }

                UserEventsCreatedList.EventsAttend  = Pevents;
                UserEventsCreatedList.EventsCreated = events;

                return(PartialView(UserEventsCreatedList));
            }
        }
Beispiel #5
0
        public void DownloadCalendar(int id)
        {
            EventQuery eventQuery = new EventQuery();
            EventDTO   eventDto   = eventQuery.FindEvent(id);

            byte[] ics = GenerateICSFile(eventDto);
            Response.Clear();
            Response.ContentType = "text/calendar";
            Response.AddHeader("content-disposition", "attachment; filename=" + eventDto.Name + ".ics");
            Response.BinaryWrite(ics);
            Response.End();
        }
Beispiel #6
0
        public ActionResult Create(int id)
        {
            ParticipantsViewModel vm         = new ParticipantsViewModel();
            EventQuery            eventQuery = new EventQuery();
            EventDTO eventDto = new EventDTO();

            eventDto            = eventQuery.FindEvent(id);
            vm.TicketsAvailable = eventQuery.GetRemainingTickets(eventDto.Id);
            vm.TicketPrice      = eventDto.TicketPrice;

            return(View(vm));
        }
Beispiel #7
0
        public ActionResult RegistrationConfirmation(int id)
        {
            ParticipantQuery participantQuery = new ParticipantQuery();
            ParticipantDTO   participantDTO   = new ParticipantDTO();
            EventQuery       eventQuery       = new EventQuery();
            EventDTO         eventDTO         = new EventDTO();

            ParticipantsViewModel vm = new ParticipantsViewModel();

            //Gary added to give payment confirmation
            string confirmCode = "";

            if (TempData.ContainsKey("ConfirmationCode"))
            {
                confirmCode = TempData["ConfirmationCode"].ToString();
            }
            if (confirmCode == "")
            {
                ViewBag.Confirmation = "";
            }
            else
            {
                ViewBag.Confirmation = "The payment processed successfully.  " +
                                       "Your confirmation number is " + confirmCode;
            }

            participantDTO = participantQuery.FindParticipant(id);
            eventDTO       = eventQuery.FindEvent(participantDTO.eventId);

            vm.EventName      = eventDTO.Name;
            vm.NumberOfTicket = participantDTO.NumberOfTicket;
            vm.EventStartDate = eventDTO.TimeStart;
            vm.Barcodes       = participantDTO.Barcodes;
            vm.Address        = eventDTO.Address;
            vm.City           = eventDTO.City;
            vm.State          = eventDTO.State;
            vm.Zip            = eventDTO.Zip;

            ViewBag.EventId = eventDTO.Id;

            ViewBag.Location = ($"{vm.Address}, {vm.City}, {vm.State} {vm.Zip}");

            return(View(vm));
        }
Beispiel #8
0
        public ActionResult Reminders(int id)
        {
            ViewBag.PhoneValidation = ConstantValues.phoneValidation;
            RemindersViewModel rvm = new RemindersViewModel();
            ParticipantQuery   pq  = new ParticipantQuery();
            EventQuery         eq  = new EventQuery();

            ParticipantDTO pDTO  = pq.FindParticipant(id);
            EventDTO       evDTO = eq.FindEvent(pDTO.eventId);

            //Map DTO fields to rvm

            rvm.EventStartDate      = evDTO.TimeStart;
            rvm.Reminder            = pDTO.Reminder;
            rvm.emailNotificationOn = pDTO.emailNotificationOn;
            rvm.SMSNotificationOn   = pDTO.SMSNotificationOn;

            return(View(rvm));
        }
Beispiel #9
0
        //get
        public ActionResult Edit(int?id)
        {
            EventQuery Equery = new EventQuery();
            EventDTO   Edto   = new EventDTO();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Edto = Equery.FindEvent(id);

            if (Edto == null)
            {
                return(HttpNotFound());
            }

            EventsViewModel vm = new EventsViewModel();

            vm.Address       = Edto.Address;
            vm.Categories    = Edto.Categories;
            vm.City          = Edto.City;
            vm.Zip           = Edto.Zip;
            vm.Description   = Edto.Description;
            vm.Detail        = Edto.Detail;
            vm.HashTag       = Edto.HashTag;
            vm.Id            = Edto.Id;
            vm.IsActive      = Edto.IsActive;
            vm.Logo          = Edto.Logo;
            vm.Name          = Edto.Name;
            vm.State         = Edto.State;
            vm.TicketPrice   = Edto.TicketPrice;
            vm.TimeStart     = Edto.TimeStart;
            vm.TimeStop      = Edto.TimeStop;
            vm.TwitterHandle = Edto.TwitterHandle;
            vm.Web           = Edto.Web;
            vm.AttendeeCap   = Edto.AttendeeCap;


            return(View(vm));
        }
Beispiel #10
0
        public ActionResult Details(int?id)
        {
            ParticipantQuery participantQuery = new ParticipantQuery();
            EventQuery       Equery           = new EventQuery();
            EventDTO         Edto             = new EventDTO();



            if (participantQuery.IsRegistered(id))
            {
                ViewBag.Registered    = "You have already registered for this event.";
                ViewBag.ParticipantID = participantQuery.FindParticipantByEventAndUser(id);
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Edto = Equery.FindEvent(id);

            if (Edto == null)
            {
                return(HttpNotFound());
            }

            int ticketsRemaining = Equery.GetRemainingTickets(Edto.Id);

            if (ticketsRemaining == 0)
            {
                ViewBag.SoldOut = "This event is sold out";
            }
            else if (ticketsRemaining < 0)
            {
                Exception ex = new Exception("There are a negative number of tickets remaining for this event. This should never execute. If so, there is a bug");
                throw ex;
            }

            EventsViewModel vm = new EventsViewModel();


            vm.Address       = Edto.Address;
            vm.Categories    = Edto.Categories;
            vm.City          = Edto.City;
            vm.CreatedDate   = Edto.CreatedDate;
            vm.Description   = Edto.Description;
            vm.Detail        = Edto.Detail;
            vm.HashTag       = Edto.HashTag;
            vm.Logo          = Edto.Logo;
            vm.Id            = Edto.Id;
            vm.IsActive      = Edto.IsActive;
            vm.Name          = Edto.Name;
            vm.State         = Edto.State;
            vm.TicketPrice   = Edto.TicketPrice;
            vm.TimeStart     = Edto.TimeStart;
            vm.TimeStop      = Edto.TimeStop;
            vm.TwitterHandle = Edto.TwitterHandle;
            vm.Web           = Edto.Web;
            vm.Zip           = Edto.Zip;


            string fullAddressRaw = Edto.Address + " " + Edto.City + " " + Edto.State + " " + Edto.Zip + " ";
            string trimRawAddress = fullAddressRaw.Trim(); //Edto.Address.Trim();
            int    spaceLoc       = trimRawAddress.IndexOf(' ');
            string number         = trimRawAddress.Substring(0, spaceLoc);
            string street         = trimRawAddress.Substring(spaceLoc + 1);

            vm.Number = number;
            vm.Street = street;

            vm.AttendeeCap = Edto.AttendeeCap;

            return(View(vm));
        }
Beispiel #11
0
        public ActionResult Create([Bind(Include = "NumberOfTicket, Reminder, RemainingTickets")] ParticipantsViewModel participantsViewModel, int id)
        {
            ParticipantDTO   participantDto   = new ParticipantDTO();
            ParticipantQuery participantQuery = new ParticipantQuery();

            //Gary added to find ticket price
            EventDTO   eventDTO   = new EventDTO();
            EventQuery eventQuery = new EventQuery();

            eventDTO.TicketPrice = eventQuery.FindEvent(id).TicketPrice;
            int remainingTickets = eventQuery.GetRemainingTickets(id);

            if (ModelState.IsValid && remainingTickets >= participantsViewModel.NumberOfTicket)
            {
                //Gary added if statement for payment screen
                if ((participantsViewModel.NumberOfTicket > 0) && (eventDTO.TicketPrice > 0))
                {
                    TempData["Reminder"]        = participantsViewModel.Reminder;
                    TempData["NumberOfTickets"] = participantsViewModel.NumberOfTicket;
                    TempData["TicketPrice"]     = eventDTO.TicketPrice;
                    TempData["Subtotal"]        = Convert.ToInt32(participantsViewModel.NumberOfTicket) *
                                                  Convert.ToInt32(eventDTO.TicketPrice);

                    return(RedirectToAction("Payment/" + id, "Participants"));
                }
                else
                {
                    participantDto.NumberOfTicket = participantsViewModel.NumberOfTicket;
                    participantDto.Reminder       = participantsViewModel.Reminder;
                    participantDto.eventId        = id;
                    participantDto.Barcodes       = new List <Guid>();

                    for (int i = 0; i < participantDto.NumberOfTicket; i++)
                    {
                        Guid barcode = Guid.NewGuid();
                        participantDto.Barcodes.Add(barcode);
                    }

                    int participantID = participantQuery.CreateParticipant(participantDto);

                    //EventDTO eventDTO = new EventDTO();
                    ParticipantsViewModel vm = new ParticipantsViewModel();
                    //EventQuery eventQuery = new EventQuery();
                    UserDTO   userDTO   = new UserDTO();
                    UserQuery userQuery = new UserQuery();
                    userDTO  = userQuery.FindCurrentUser();
                    eventDTO = eventQuery.FindEvent(participantDto.eventId);

                    double totalCharge = participantDto.NumberOfTicket * eventDTO.TicketPrice;

                    string content = System.IO.File.ReadAllText(Server.MapPath("~/views/Shared/ConfirmMail.cshtml"));
                    content = content.Replace("{{Name}}", eventDTO.Name);
                    content = content.Replace("{{Address}}", eventDTO.Address);
                    content = content.Replace("{{City}}", eventDTO.City);
                    content = content.Replace("{{State}}", eventDTO.State);
                    content = content.Replace("{{Zip}}", eventDTO.Zip.ToString());
                    content = content.Replace("{{TimeStart}}", eventDTO.TimeStart.ToString());
                    content = content.Replace("{{Price}}", eventDTO.TicketPrice.ToString());
                    content = content.Replace("{{Ticket}}", participantDto.NumberOfTicket.ToString());
                    content = content.Replace("{{Total}}", totalCharge.ToString());
                    content = content.Replace("{{eventID}}", eventDTO.Id.ToString());
                    var toEmail = userDTO.Username.ToString();
                    new EmailNotification().SendEmail(toEmail, content, "Confirmation : You have registered for an event");

                    return(RedirectToAction("RegistrationConfirmation/" + participantID, "Participants"));
                }
            }

            if (remainingTickets < participantsViewModel.NumberOfTicket && remainingTickets > 0)
            {
                ViewBag.RemainingTicketsError1 = "Oops! The number of remaining tickets is less than what you ordered.";
            }
            else if (remainingTickets == 0)
            {
                ViewBag.RemainingTicketsError2 = "Sorry, there are no tickets left";
            }

            participantsViewModel.TicketsAvailable = eventQuery.GetRemainingTickets(id);
            return(View(participantsViewModel));
        }
Beispiel #12
0
        public ActionResult Payment([Bind(Include = "NumberOfTicket, Reminder")] ParticipantsViewModel participantsViewModel, int id)
        {
            ParticipantDTO   participantDto   = new ParticipantDTO();
            ParticipantQuery participantQuery = new ParticipantQuery();
            UserQuery        userQuery        = new UserQuery();
            EPay             ePay             = new EPay();

            if ((TempData.ContainsKey("Reminder")) && (TempData["Reminder"] != null))
            {
                participantsViewModel.Reminder = DateTime.Parse(TempData["Reminder"].ToString());
            }
            //participantsViewModel.NumberOfTicket = int.Parse(TempData["Reminder"].ToString());

            if (TempData.ContainsKey("NumberOfTickets"))
            {
                participantsViewModel.Subtotal = int.Parse(TempData["NumberOfTickets"].ToString());
            }

            if (TempData.ContainsKey("Subtotal"))
            {
                participantsViewModel.Subtotal = double.Parse(TempData["Subtotal"].ToString());
            }

            double purchAmt   = participantsViewModel.Subtotal * 100;
            string purchEmail = userQuery.FindCurrentUser().Username;

            if (ModelState.IsValid)
            {
                //Web Api call to Stripe Credit Card Payment Service
                string apiResp     = ePay.MakeStripeApiRequest(purchAmt, purchEmail);
                string confirmCode = apiResp.Substring(0, apiResp.IndexOf(','));
                string statusCode  = apiResp.Substring(apiResp.IndexOf(',') + 1, apiResp.Length - (apiResp.IndexOf(',') + 1));

                if (statusCode.ToUpper() == "OK")
                {
                    TempData["ConfirmationCode"] = confirmCode;
                    TempData.Keep("ConfirmationCode");
                    ViewBag.Confirmation = "The payment processed successfully.  " +
                                           "Your confirmation number is " + confirmCode;
                    participantDto.NumberOfTicket = participantsViewModel.NumberOfTicket;
                    participantDto.Reminder       = participantsViewModel.Reminder;
                    participantDto.eventId        = id;
                    participantDto.Barcodes       = new List <Guid>();

                    for (int i = 0; i < participantDto.NumberOfTicket; i++)
                    {
                        Guid barcode = Guid.NewGuid();
                        participantDto.Barcodes.Add(barcode);
                    }

                    int participantID = participantQuery.CreateParticipant(participantDto);

                    EventDTO   eventDTO   = new EventDTO();
                    EventQuery eventQuery = new EventQuery();
                    eventDTO.TicketPrice = eventQuery.FindEvent(id).TicketPrice;


                    ParticipantsViewModel vm = new ParticipantsViewModel();
                    UserDTO userDTO          = new UserDTO();
                    userDTO  = userQuery.FindCurrentUser();
                    eventDTO = eventQuery.FindEvent(participantDto.eventId);

                    double totalCharge = participantDto.NumberOfTicket * eventDTO.TicketPrice;

                    string content = System.IO.File.ReadAllText(Server.MapPath("~/views/Shared/confirmMailPurchase.cshtml"));
                    content = content.Replace("{{Name}}", eventDTO.Name);
                    content = content.Replace("{{Address}}", eventDTO.Address);
                    content = content.Replace("{{City}}", eventDTO.City);
                    content = content.Replace("{{State}}", eventDTO.State);
                    content = content.Replace("{{Zip}}", eventDTO.Zip.ToString());
                    content = content.Replace("{{TimeStart}}", eventDTO.TimeStart.ToString());
                    content = content.Replace("{{Price}}", eventDTO.TicketPrice.ToString());
                    content = content.Replace("{{Ticket}}", participantDto.NumberOfTicket.ToString());
                    content = content.Replace("{{Total}}", totalCharge.ToString());
                    content = content.Replace("{{eventID}}", eventDTO.Id.ToString());
                    content = content.Replace("{{RegistrationConfirmation}}", confirmCode);
                    var toEmail = userDTO.Username.ToString();
                    new EmailNotification().SendEmail(toEmail, content, "Confirmation : You have purchased tickets to an event");

                    return(RedirectToAction("RegistrationConfirmation/" + participantID, "Participants"));
                }
                else
                {
                    ViewBag.Confirmation = "The payment failed.  Please try again.";
                }
            }

            return(View(participantsViewModel));
        }