public void AddPartyTweet_NewCorrectPartyTweet_ShouldAddInDatabase()
        {
            IUnitOfWork           unitOfWork            = new MockUnitOfWork();
            PartyTweetsController partyTweetsController = new PartyTweetsController();
            Guest guest = new Guest {
                EmailAddress = "*****@*****.**"
            };
            Party party = new Party
            {
                Guests = new List <Guest> {
                    guest
                },
                EndTime   = DateTime.Now,
                StartTime = DateTime.Now
            };
            PartyGuest partyGuest = new PartyGuest {
                Guest = guest, Party = party
            };
            PartyTweet partyTweet = new PartyTweet {
                Message = "TestMessage", PartyGuest = partyGuest
            };

            unitOfWork.Parties.Insert(party);
            unitOfWork.Guests.Insert(guest);
            unitOfWork.PartyGuests.Insert(partyGuest);
            bool ok = partyTweetsController.AddPartyTweet(unitOfWork, partyTweet);

            Assert.IsTrue(ok);
            var partyTweets = unitOfWork.PartyTweets.Get();

            Assert.IsTrue(partyTweets.Any(pt => pt.Message == partyTweet.Message && pt.PartyGuest == partyGuest));
        }
        public void AddTrack_UnitOfWorkNull_ShouldThrowException()
        {
            TracksController tracksController = new TracksController();
            Guest            guest            = new Guest {
                EmailAddress = "*****@*****.**"
            };
            Party party = new Party
            {
                Guests = new List <Guest> {
                    guest
                },
                EndTime   = DateTime.Now,
                StartTime = DateTime.Now,
                PlayList  = new PlayList()
            };
            PartyGuest partyGuest = new PartyGuest {
                Party = party, Guest = guest, PartyCode = 1
            };
            PlayList playList = new PlayList {
                Party = party
            };
            Track track = new Track {
                Title = "Song1", Interpret = "Interpret", PlayLists = new List <PlayList> {
                    playList
                }, RecommendedByGuest = partyGuest
            };

            tracksController.AddTrack(null, track);
        }
Esempio n. 3
0
        public ActionResult HandleRegisterGuestForm(RegisterGuestForm registerGuestForm)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.CurrentUmbracoPage());
            }

            // no helper method on this.Members to register a user with a given memberType, so calling provider directly
            UmbracoMembershipProviderBase membersUmbracoMembershipProvider = (UmbracoMembershipProviderBase)Membership.Providers[Constants.Conventions.Member.UmbracoMemberProviderName];

            MembershipCreateStatus membershipCreateStatus;

            MembershipUser membershipUser = membersUmbracoMembershipProvider.CreateUser(
                PartyGuest.Alias,                                                               // member type alias
                registerGuestForm.EmailAddress,                                                 // username
                registerGuestForm.Password,                                                     // password
                registerGuestForm.EmailAddress,                                                 // email
                null,                                                                           // forgotten password question
                null,                                                                           // forgotten password answer
                true,                                                                           // is approved
                null,                                                                           // provider user key
                out membershipCreateStatus);

            if (membershipCreateStatus != MembershipCreateStatus.Success)
            {
                switch (membershipCreateStatus)
                {
                case MembershipCreateStatus.DuplicateEmail:
                case MembershipCreateStatus.DuplicateUserName:

                    this.ModelState.AddModelError("RegisterGuestValidation", "Email already registered");

                    break;
                }

                return(this.CurrentUmbracoPage());
            }

            // cast from MembershipUser rather than use this.Members.GetCurrentMember() helper (which needs a round trip for the login)
            PartyGuest partyGuest = (PartyGuest)membershipUser;

            partyGuest.FacebookRegistration = false;

            // update database with member and party guid (duplicated data, but never changes)
            this.DatabaseContext.Database.Insert(new MemberPartyRow(partyGuest.Id, registerGuestForm.PartyGuid));

            // (duplicate data) store party guid in cms cache
            partyGuest.PartyGuid = registerGuestForm.PartyGuid;

            // add member to DotMailer
            DotMailerService.GuestRegistrationStarted((Contact)partyGuest);

            // send cookie
            FormsAuthentication.SetAuthCookie(partyGuest.Username, true);

            //return this.NavigateToRegisterGuestUrl(registerGuestForm.PartyGuid);
            return(this.Redirect(this.Umbraco.TypedContentSingleAtXPath("//" + RegisterGuest.Alias).Url + "?partyGuid=" + registerGuestForm.PartyGuid.ToString()));
        }
 public MainWindowViewModel(IWindowController windowController, PartyGuest guest) : base(windowController)
 {
     if (guest != null)
     {
         GuestController guestController = new GuestController();
         GuestViewModel  viewModel       = new GuestViewModel(guestController, partyGuest: guest);
         guestController.ShowWindow(viewModel);
     }
 }
Esempio n. 5
0
 private void LoadData(PartyGuest partyGuest)
 {
     using (IUnitOfWork unitOfWork = new UnitOfWork())
     {
         LoggedPartyGuest = unitOfWork.PartyGuests.Get(includeProperties: "Guest,PartyTweets")
                            .SingleOrDefault(pg => pg.Id == partyGuest.Id);
     }
     LoadPlayListWithTracks();
     LoadPartyTweets();
     LoadAllTracks();
 }
Esempio n. 6
0
        public GuestViewModel(IWindowController windowController, PartyGuest partyGuest) : base(windowController)
        {
            PartyPlayList             = new PlayList();
            SelectedVoteTrack         = new ListTrack();
            TracksOfPartyPlayList     = new List <ListTrack>();
            PartyTweets               = new List <PartyTweet>();
            _selectedRecommendedTrack = new Track();

            TextPartyTweet = "";

            LoadCommands();
            LoadData(partyGuest);
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            PartyServer server = new PartyServer("");

            string[] strs = Directory.GetFiles(@"..\..\TestFiles\");
            string   sng  = strs[(new Random()).Next(0, strs.Length)];

            Console.WriteLine(sng);

            PartyHost host = new PartyHost(sng, server);

            PartyGuest guest = new PartyGuest(server);

            Console.Write("Press [Enter] to exit...");
            Console.Read();
        }
Esempio n. 8
0
        public ActionResult RenderRegisterGuestBillingForm()
        {
            RegisterGuestBillingForm registerGuestBillingForm = new RegisterGuestBillingForm();

            // set hidden field with party guid
            registerGuestBillingForm.PartyGuid = ((RegisterGuest)this.CurrentPage).PartyHost.PartyGuid;

            // set the default amount to the party host's suggested donation
            registerGuestBillingForm.Amount = this.Members.GetPartyHost(registerGuestBillingForm.PartyGuid).SuggestedDonation;

            PartyGuest partyGuest = (PartyGuest)this.Members.GetCurrentMember();

            registerGuestBillingForm.FirstName = partyGuest.FirstName;
            registerGuestBillingForm.LastName  = partyGuest.LastName;

            return(this.PartialView("RegisterGuest/Forms/RegisterGuestBillingForm", registerGuestBillingForm));
        }
        public void AddTrack_NewCorrectTrack_ShouldAddInDatabase()
        {
            IUnitOfWork      unitOfWork       = new MockUnitOfWork();
            TracksController tracksController = new TracksController();
            Guest            guest            = new Guest {
                EmailAddress = "*****@*****.**"
            };
            Party party = new Party
            {
                Guests = new List <Guest> {
                    guest
                },
                EndTime   = DateTime.Now,
                StartTime = DateTime.Now,
                PlayList  = new PlayList()
            };
            PartyGuest partyGuest = new PartyGuest {
                Party = party, Guest = guest, PartyCode = 1
            };
            PlayList playList = new PlayList {
                Party = party
            };
            Track track = new Track {
                Title = "Song1", Interpret = "Interpret", PlayLists = new List <PlayList> {
                    playList
                }, RecommendedByGuest = partyGuest
            };

            unitOfWork.Parties.Insert(party);
            unitOfWork.PlayLists.Insert(playList);
            unitOfWork.PartyGuests.Insert(partyGuest);
            bool ok = tracksController.AddTrack(unitOfWork, track);

            Assert.IsTrue(ok);
            var tracks = unitOfWork.Tracks.Get();

            Assert.IsTrue(tracks.Any(t => t.Title == track.Title &&
                                     t.Interpret == track.Interpret &&
                                     t.Url == track.Url &&
                                     t.PlayLists.Equals(track.PlayLists) &&
                                     t.RecommendedByGuest == track.RecommendedByGuest));
        }
        public void AddPartyTweet_UnitOfWorkNull_ShouldThrowException()
        {
            PartyTweetsController partyTweetsController = new PartyTweetsController();
            Guest guest = new Guest {
                EmailAddress = "*****@*****.**"
            };
            Party party = new Party
            {
                Guests = new List <Guest> {
                    guest
                },
                EndTime   = DateTime.Now,
                StartTime = DateTime.Now
            };
            PartyGuest partyGuest = new PartyGuest {
                Guest = guest, Party = party
            };
            PartyTweet partyTweet = new PartyTweet {
                Message = "TestMessage", PartyGuest = partyGuest
            };

            partyTweetsController.AddPartyTweet(null, partyTweet);
        }
Esempio n. 11
0
        public static void Seed(CrowdDj.DAL.ApplicationDbContext context)
        {
            Administrator[] administrators = new Administrator[5];
            Party[]         parties        = new Party[5];
            Guest[]         guests         = new Guest[50];
            Track[]         tracks         = new Track[50];
            PlayList[]      playLists      = new PlayList[1];
            PartyTweet[]    partyTweets    = new PartyTweet[30];
            Vote[]          votes          = new Vote[5];

            //for (int i = 0; i < administrators.Length; i++)
            //{
            //    administrators[i] = new Administrator { UserName = $"Admin{i+1}", Password = $"passme{(i+1) * 11}" };
            //    context.Administrators.Add(administrators[i]);
            //}

            //context.SaveChanges();

            for (int i = 0; i < guests.Length; i++)
            {
                string mail  = $"user{i}@dummy.com";
                var    guest = new Guest {
                    EmailAddress = mail
                };
                context.Guests.Add(guest);
                guests[i] = guest;
            }

            var partyGuests = new List <PartyGuest>();
            int partyCode   = 1;

            for (int i = 0; i < parties.Length; i++)
            {
                parties[i] = new Party {
                    EndTime = DateTime.Now.AddDays(-1), Location = "Dahoam", Name = $"Party_{i}", StartTime = DateTime.Now.AddDays(-2)
                };
                var selectionDigit = i.ToString();
                var pGuests        = guests.Where(g => g.EmailAddress.Contains(selectionDigit)).ToList();
                foreach (var guest in pGuests)
                {
                    var partyGuest = new PartyGuest {
                        PartyCode = partyCode, Guest = guest, Party = parties[i]
                    };
                    partyGuests.Add(partyGuest);
                    partyCode++;
                }
                context.Parties.Add(parties[i]);
            }

            context.PartyGuests.AddRange(partyGuests);

            for (int i = 0; i < partyTweets.Length; i++)
            {
                partyTweets[i] = new PartyTweet {
                    Message = "Hallo! Die Party ist ein Hit!"
                };;
                partyTweets[i].PartyGuest = partyGuests.ElementAt(i);
                context.PartyTweets.Add(partyTweets[i]);
            }

            for (int i = 0; i < tracks.Length; i++)
            {
                tracks[i] = new Track {
                    Interpret = $"Interpret{i + 10}", Title = $"Song{i}", Url = "www.mysongs.ate"
                };
            }

            playLists[0] = new PlayList
            {
                Tracks = tracks,
                Party  = parties[0]
            };
            context.PlayLists.Add(playLists[0]);

            for (int i = 0; i < votes.Length; i++)
            {
                votes[i] = new Vote {
                    Track = tracks[i * 2], Guest = guests[i], PlayList = playLists[0], TimeStamp = DateTime.Now.AddDays(-2).ToLocalTime()
                };
                context.Votes.Add(votes[i]);
            }

            int count = context.SaveChanges();
        }
Esempio n. 12
0
        public ActionResult HandleRegisterGuestBillingForm(RegisterGuestBillingForm registerGuestBillingForm)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.CurrentUmbracoPage());
            }

            PartyGuest partyGuest = (PartyGuest)this.Members.GetCurrentMember();

            if (partyGuest.FirstName != registerGuestBillingForm.FirstName)
            {
                partyGuest.FirstName = registerGuestBillingForm.FirstName;
            }

            if (partyGuest.LastName != registerGuestBillingForm.LastName)
            {
                partyGuest.LastName = registerGuestBillingForm.LastName;
            }

            Address address = new Address(
                registerGuestBillingForm.Address1,
                registerGuestBillingForm.Address2,
                registerGuestBillingForm.TownCity,
                registerGuestBillingForm.Postcode);

            partyGuest.BillingAddress = address;

            if (!string.IsNullOrWhiteSpace(registerGuestBillingForm.Message))
            {
                // post message to party wall
                this.DatabaseContext.Database.Insert(new MessageRow()
                {
                    MemberId = this.Members.GetCurrentMemberId(),
                    Text     = registerGuestBillingForm.Message,
                    Image    = null
                });
            }

            if (registerGuestBillingForm.Amount == 0)
            {
                // update dot mailer to indicate guest has fully registered
                DotMailerService.GuestRegistrationCompleted((Contact)partyGuest);

                return(this.Redirect(partyGuest.PartyUrl));
            }

            DonationRow donationRow = new DonationRow()
            {
                PartyGuid      = registerGuestBillingForm.PartyGuid,
                Amount         = registerGuestBillingForm.Amount,
                GiftAid        = registerGuestBillingForm.AllowGiftAid,
                MemberId       = this.Members.GetCurrentMemberId(),
                FirstName      = registerGuestBillingForm.FirstName,
                LastName       = registerGuestBillingForm.LastName,
                Address1       = registerGuestBillingForm.Address1,
                Address2       = registerGuestBillingForm.Address2,
                TownCity       = registerGuestBillingForm.TownCity,
                Postcode       = registerGuestBillingForm.Postcode,
                PaymentJourney = PaymentJourney.RegisterGuest,
                Success        = false
            };

            // insert new record
            this.DatabaseContext.Database.Insert(donationRow);

            // build new obj containing data for sage pay
            TransactionRegistrationRequest transactionRegistrationRequest = new TransactionRegistrationRequest(donationRow);

            // send to sage pay and get respone
            TransactionRegistrationResponse transactionRegistrationResponse = TransactionRegistration.Send(transactionRegistrationRequest);

            // based on response, we redirect the user to...
            if (transactionRegistrationResponse.Status == TransactionRegistrationStatus.OK)
            {
                // update database
                donationRow.VPSTxId     = transactionRegistrationResponse.VPSTxId;
                donationRow.SecurityKey = transactionRegistrationResponse.SecurityKey;

                this.DatabaseContext.Database.Update(donationRow);

                return(this.Redirect(transactionRegistrationResponse.NextURL));
            }

            this.ViewData["errorMessage"] = transactionRegistrationResponse.StatusDetail;

            return(this.View("RegisterGuest/Failed", this.CurrentPage));
        }
        public override ActionResult Index(RenderModel renderModel)
        {
            RegisterGuest model = (RegisterGuest)renderModel.Content;

            // if VendorTxCode can be found on the querystring, then get party guid from transaction table
            Guid vendorTxCode;

            if (Guid.TryParse(this.Request.QueryString["VendorTxCode"], out vendorTxCode))
            {
                DonationRow donationRow = this.DatabaseContext.Database.Fetch <DonationRow>("SELECT TOP 1 * FROM wonderlandDonation WHERE VendorTxCode = @0", vendorTxCode).SingleOrDefault();

                if (donationRow != null)
                {
                    model.PartyHost   = this.Members.GetPartyHost(donationRow.PartyGuid);
                    model.DonationRow = donationRow;

                    if (donationRow.Success)
                    {
                        return(this.View("RegisterGuest/Complete", model));
                    }
                    else if (donationRow.Cancelled)
                    {
                        return(this.View("RegisterGuest/Cancelled", model));
                    }
                    else
                    {
                        return(this.View("RegisterGuest/Failed", model));
                    }
                }
                else
                {
                    return(this.View("RegisterGuest/UnknownTransaction", model));
                }
            }

            Guid partyGuid;

            if (Guid.TryParse(this.Request.QueryString["partyGuid"], out partyGuid))
            {
                model.PartyHost = this.Members.GetPartyHost(partyGuid);

                if (model.PartyHost != null)
                {
                    if (this.Members.IsLoggedInPartier())
                    {
                        if (this.Members.GetCurrentMember() is PartyGuest)
                        {
                            PartyGuest partyGuest = (PartyGuest)this.Members.GetCurrentMember();

                            return(this.View("RegisterGuest/RegisterGuestBilling", model));
                        }
                        else
                        {
                            return(this.Redirect(Home.GetCurrentHome(model).Url));
                        }
                    }

                    return(View("RegisterGuest/RegisterGuest", model));
                }
            }

            // fallback
            return(this.Redirect(Home.GetCurrentHome(model).Url));
        }
        public FormResponse RegisterGuest([FromUri] Guid partyGuid, [FromBody] FacebookCredentials facebookCredentials)
        {
            FormResponse formResponse = new FormResponse();

            FacebookDetails facebookDetails = this.GetFacebookDetails(facebookCredentials);

            // no helper method on this.Members to register a user with a given memberType, so calling provider directly
            UmbracoMembershipProviderBase membersUmbracoMembershipProvider = (UmbracoMembershipProviderBase)Membership.Providers[Constants.Conventions.Member.UmbracoMemberProviderName];

            MembershipCreateStatus membershipCreateStatus;

            MembershipUser membershipUser = membersUmbracoMembershipProvider.CreateUser(
                PartyGuest.Alias,                                                              // member type alias
                facebookDetails.EmailAddress,                                                  // username
                this.GetPassword(facebookDetails),                                             // password
                facebookDetails.EmailAddress,                                                  // email
                null,                                                                          // forgotten password question
                null,                                                                          // forgotten password answer
                true,                                                                          // is approved
                null,                                                                          // provider user key
                out membershipCreateStatus);

            if (membershipCreateStatus != MembershipCreateStatus.Success)
            {
                switch (membershipCreateStatus)
                {
                case MembershipCreateStatus.DuplicateEmail:
                case MembershipCreateStatus.DuplicateUserName:

                    this.ModelState.AddModelError("RegisterGuestValidation", "Email already registered");

                    formResponse.Errors = this.ModelState.GetErrors();

                    break;
                }

                return(formResponse);
            }

            // cast from MembershipUser rather than use this.Members.GetCurrentMember() helper (which needs a round trip for the login)
            PartyGuest partyGuest = (PartyGuest)membershipUser;

            partyGuest.FacebookRegistration = true;

            partyGuest.FirstName = facebookDetails.FirstName;
            partyGuest.LastName  = facebookDetails.LastName;

            // update database with member and party guid (duplicated data, but never changes)
            this.DatabaseContext.Database.Insert(new MemberPartyRow(partyGuest.Id, partyGuid));

            // (duplicate data) store party guid in cms cache
            partyGuest.PartyGuid = partyGuid;

            // add member to DotMailer
            DotMailerService.GuestRegistrationStarted((Contact)partyGuest);

            // send cookie
            FormsAuthentication.SetAuthCookie(partyGuest.Username, true);

            formResponse.Success = true;

            formResponse.Message = this.Umbraco.TypedContentSingleAtXPath("//" + Wonderland.Logic.Models.Content.RegisterGuest.Alias).Url;

            return(formResponse);
        }
        private void ExportRegistrationsButton_Click(object sender, EventArgs e)
        {
            StringBuilder stringBuilder = new StringBuilder();

            // headings
            stringBuilder.AppendLine("Member Id, Member Type, Email, First Name, Last Name, Heard About Us, Registration Date, Address 1, Address 2, Town, Postcode, T-Shirt Size, Party Guid, Party Title, Party DateTime, Party Address 1, Party Address 2, Party Town, Party Postcode, Join Wonderland Story, Party Background Image, Profile Photo, Fundraising Target, Suggested Donation, Guest Count, Amount Raised, Party Blocked, DotMailer Id, DotMailer Registration Complete, DotMailer Party Page Copmlete");

            foreach (IPartier partier in this.Members.GetAllPartiers())
            {
                if (partier is PartyHost)
                {
                    PartyHost partyHost = (PartyHost)partier;

                    stringBuilder.AppendLine(
                        string.Join(
                            ", ",
                            new object[] {
                        partier.Id,                                                                                             // 1.  Member Id
                        PartyHost.Alias,                                                                                        // 2.  Member Type
                        partier.Email.Replace(',', ' '),                                                                        // 3.  Email
                        partier.FirstName.Replace(',', ' '),                                                                    // 4.  First Name
                        partier.LastName.Replace(',', ' '),                                                                     // 5.  Last Name
                        partyHost.MarketingSource != null ? partyHost.MarketingSource.Replace(',', ' ') : string.Empty,         // 6.  Heard About Us
                        partyHost.CreateDate,                                                                                   // 7.  Registration Date
                        partier.BillingAddress.Address1.Replace(',', ' '),                                                      // 8.  Billing Address 1
                        partier.BillingAddress.Address2.Replace(',', ' '),                                                      // 9.  Billing Address 2
                        partier.BillingAddress.TownCity.Replace(',', ' '),                                                      // 10. Billing TownCity
                        partier.BillingAddress.Postcode.Replace(',', ' '),                                                      // 11. Billing Postcode
                        partyHost.TShirtSize,                                                                                   // 12. T-Shirt Size
                        partier.PartyGuid,                                                                                      // 13. Party Guid
                        partyHost.PartyHeading != null ? partyHost.PartyHeading.Replace(',', ' ') : string.Empty,               // 14. Party Title
                        partyHost.PartyDateTime,                                                                                // 15. Party DateTime
                        partyHost.PartyAddress.Address1.Replace(',', ' '),                                                      // 16. Party Address 1
                        partyHost.PartyAddress.Address2.Replace(',', ' '),                                                      // 17. Party Address 2
                        partyHost.PartyAddress.TownCity.Replace(',', ' '),                                                      // 18. Party TownCity
                        partyHost.PartyAddress.Postcode.Replace(',', ' '),                                                      // 19. Party Postcode
                        partyHost.PartyCopy != null ? partyHost.PartyCopy.Replace(',', ' ') : string.Empty,                     // 20. Join Wonderland Story
                        partyHost.PartyImage != null ? "Y" : "N",                                                               // 21. Party Background Image
                        partier.ProfileImage != null ? "Y" : "N",                                                               // 22. Profile Photo
                        partyHost.FundraisingTarget,                                                                            // 23. Fundraising Target
                        partyHost.SuggestedDonation,                                                                            // 24. Suggested Donation
                        this.Members.GetPartiers(partyHost.PartyGuid).Count(),                                                  // 25. Guest Count
                        partyHost.AmountRaised,                                                                                 // 26. Amount Raised
                        partyHost.Blocked ? "Y" : "N",                                                                          // 27. Party Blocked
                        partier.DotMailerId,                                                                                    // 28. DotMailer Id
                        partier.DotMailerRegistrationComplete ? "Y" : "N",                                                      // 29. DotMailer Registration Complete
                        partyHost.DotMailerPartyPageComplete ? "Y" : "N"                                                        // 30. DotMailer Party Page Complete
                    }
                            )
                        );
                }
                else // must be a guest
                {
                    PartyGuest partyGuest = (PartyGuest)partier;

                    stringBuilder.AppendLine(
                        string.Join(
                            ", ",
                            new object[] {
                        partier.Id,                                                                                     // 1.  Member Id
                        PartyGuest.Alias,                                                                               // 2.  Member Type
                        partier.Email.Replace(',', ' '),                                                                // 3.  Email
                        partier.FirstName.Replace(',', ' '),                                                            // 4.  First Name
                        partier.LastName.Replace(',', ' '),                                                             // 5.  Last Name
                        string.Empty,                                                                                   // 6.  Heard About Us
                        partyGuest.CreateDate,                                                                          // 7.  Registration Date
                        partier.BillingAddress.Address1.Replace(',', ' '),                                              // 8.  Billing Address 1
                        partier.BillingAddress.Address2.Replace(',', ' '),                                              // 9.  Billing Address 2
                        partier.BillingAddress.TownCity.Replace(',', ' '),                                              // 10. Billing TownCity
                        partier.BillingAddress.Postcode.Replace(',', ' '),                                              // 11. Billing Postcode
                        string.Empty,                                                                                   // 12. T-Shirt Size
                        partier.PartyGuid,                                                                              // 13. Party Guid
                        string.Empty,                                                                                   // 14. Party Title
                        string.Empty,                                                                                   // 15. Party DateTime
                        string.Empty,                                                                                   // 16. Party Address 1
                        string.Empty,                                                                                   // 17. Party Address 2
                        string.Empty,                                                                                   // 18. Party TownCity
                        string.Empty,                                                                                   // 19. Party Postcode
                        string.Empty,                                                                                   // 20. Join Wonderland Story
                        string.Empty,                                                                                   // 21. Party Background Image
                        partier.ProfileImage != null ? "Y" : "N",                                                       // 22. Profile Photo
                        string.Empty,                                                                                   // 23. Fundraising Target
                        string.Empty,                                                                                   // 24. Suggested Donation
                        string.Empty,                                                                                   // 25. Guest Count
                        string.Empty,                                                                                   // 26. Amount Raised
                        string.Empty,                                                                                   // 27. Party Blocked
                        partier.DotMailerId,                                                                            // 28. DotMailer Id
                        partier.DotMailerRegistrationComplete ? "Y" : "N",                                              // 29. DotMailer Registration Complete
                        string.Empty                                                                                    // 30. DotMailer Party Page Complete
                    }
                            )
                        );
                }
            }

            // steream out the response
            this.Response.Clear();
            this.Response.AddHeader("content-disposition", "attachment; filename=registrations.csv");
            this.Response.ContentType     = "text/csv";
            this.Response.ContentEncoding = Encoding.UTF8;
            this.Response.Write(stringBuilder.ToString());
            this.Response.End();
        }