Exemple #1
0
        public bool Invite(Person organiser, Person user, Event ev)
        {
            var message = new MailMessage();
            message.To.Add(user.EmailAddress);
            message.From = new MailAddress("*****@*****.**");
            message.Subject = string.Format("You have been invited to a Geeks Dilemma event by {0}", DisplayName(organiser));
            message.Body = @"Your friend " + DisplayName(organiser) + @" is organising an event and you're invited. " +
                Environment.NewLine +
                Environment.NewLine +
                ev.Description +
                Environment.NewLine +
                Environment.NewLine +
                "To see the details including who else is invitee and to say whether or not you can go, click here:"+
                Environment.NewLine +
                Environment.NewLine +
                "http://localhost/geeks/home/event/" + ev.Id  + "/" + user.Id;
            var smtp = new SmtpClient();
            smtp.Send(message);

            return true;
        }
 private Person CreatePersonDocumentIfNecessary(string currentPersonId)
 {
     var person = Query(new PersonByEmail { Email = Email });
     if (person == null)
     {
         person = new Person
             {
                 Id = Guid.NewGuid().ToString(),
                 EmailAddress = Email,
                 Name = Name,
                 Friends = new List<Friend>
                     {
                         new Friend
                             {
                                 PersonId = currentPersonId,
                                 Rating = 0
                             }
                     }
             };
         Session.Store(person);
     }
     return person;
 }
Exemple #3
0
 public void EventIsOn(Event ev, Person organiser, List<Person> invitees)
 {
     var message = new MailMessage();
     var score = ev.PercentageScore();
     message.To.Add(organiser.EmailAddress);
     foreach (var invitee in invitees)
     {
         message.CC.Add(invitee.EmailAddress);
     }
     message.From = new MailAddress("*****@*****.**");
     message.Subject = string.Format("Your Geek's Dilemma event has a green light with a score of {0}%", score);
     message.Body = @"The following event is looking good with a current score of "+ score  +@"%." +
         Environment.NewLine +
         Environment.NewLine +
         ev.Description +
         Environment.NewLine +
         Environment.NewLine +
         "To look at the details of this event, rate friends or change your attendance, click the following link:" +
         Environment.NewLine +
         Environment.NewLine +
         "http://localhost/geeks/home/event/" + ev.Id;
     var smtp = new SmtpClient();
     smtp.Send(message);
 }
Exemple #4
0
 private Friend GetFriendFromPerson(Person person, string friendPersonId)
 {
     if (person == null)
         return null;
     return person.Friends.SingleOrDefault(f => f.PersonId == friendPersonId);
 }
Exemple #5
0
        private EventModel EventModelFromEvent(Event ev, Person currentPerson = null)
        {
            var organiser = RavenSession.Load<User>(ev.CreatedBy);
            var myInvitation = ev.Invitations.FirstOrDefault(invitation => invitation.PersonId == currentPerson.Id);

            return new EventModel
                {
                    Id = ev.Id,
                    CreatedByUserName = organiser.Username,
                    CreatedBy = organiser.Id,
                    ReadOnly = organiser.Id != GetCurrentUserId(),
                    Date = ev.Date,
                    Time = ev.Time,
                    Description = ev.Description,
                    Latitude = ev.Latitude,
                    Longitude = ev.Longitude,
                    Venue = ev.Venue,
                    Score = ev.PercentageScore(),
                    Zoom = ev.Zoom,
                    MyResponse = myInvitation == null ? InvitationResponse.No : myInvitation.Response,
                    Invitations = (from i in ev.Invitations
                                   let person = RavenSession.Load<Person>(i.PersonId)
                                   let friend = GetFriendFromPerson(currentPerson, i.PersonId)
                                   select new InvitationModel
                                       {
                                           IsCurrentUser = person.Id == currentPerson.Id,
                                           Email = person.EmailAddress,
                                           PersonId = person.Id,
                                           Rating = friend == null ? 0 : friend.Rating,
                                           EmailSent = i.EmailSent,
                                           Response = i.Response,
                                           EventId = ev.Id
                                       }).ToList()
                };
        }
Exemple #6
0
 private EventModel EventModelForNewEvent(Person me)
 {
     return new EventModel
         {
             CreatedBy = me.UserId,
             Invitations = new List<InvitationModel>
                 {
                     new InvitationModel
                         {
                             PersonId = me.Id,
                             Email = me.EmailAddress,
                             EmailSent = true,
                             IsCurrentUser = true,
                             Response = InvitationResponse.Yes
                         }
                 }
         };
 }
        private void ImportContacts(GoogleContact gc, List<ImportModel> contacts)
        {
            var person = Query(new PersonByUserId {UserId = GetCurrentUserId()});

            var existingPeople = Query(new PeopleAlreadyImported
                {
                    Emails = new HashSet<string>(from m in contacts.Distinct()
                                                 select m.EmailAddress.ToLower())
                });

            using (var bulkInsert = Store.BulkInsert())
            {
                foreach (var importModel in contacts)
                {
                    //don't import yourself
                    if (importModel.EmailAddress.ToLower() == User.Identity.Name) continue;

                    //if we already have a person record for this address
                    if (existingPeople.ContainsKey(importModel.EmailAddress.ToLower())) continue;

                    var newPerson = new Person
                    {
                        EmailAddress = importModel.EmailAddress.ToLower(),
                        Name = importModel.Name,
                        Id = Guid.NewGuid().ToString(),
                        Friends = new List<Friend>
                            {
                                new Friend
                                    {
                                        PersonId = person.Id,
                                        Rating = 0
                                    }
                            }
                    };
                    bulkInsert.Store(newPerson);
                    existingPeople.Add(newPerson.EmailAddress, newPerson);
                }

                person.Friends = person.Friends.Union(from i in contacts
                                                      let email = i.EmailAddress.ToLower()
                                                  where !person.Friends.Any(f => f.PersonId == existingPeople[email].Id)
                                                  select new Friend
                                                  {
                                                      PersonId = existingPeople[email].Id
                                                  }).ToList();
            }
            RavenSession.Delete(gc);
        }
Exemple #8
0
 public bool UpdateInvitationResponse(Event ev, Person organiser, Person responder, InvitationResponse response)
 {
     var message = new MailMessage();
     message.To.Add(organiser.EmailAddress);
     message.From = new MailAddress("*****@*****.**");
     message.Subject = string.Format("{0} has responded to your event invitation", DisplayName(responder));
     message.Body = @"Your friend " + DisplayName(responder) + @" has " + (response == InvitationResponse.Yes ? "accepted":"declined") + @" your invitation to the following event:" +
         Environment.NewLine +
         Environment.NewLine +
         ev.Description +
         Environment.NewLine +
         Environment.NewLine +
         "To see how this may have affected the score for this event click the following link:" +
         Environment.NewLine +
         Environment.NewLine +
         "http://localhost/geeks/home/event/" + ev.Id;
     var smtp = new SmtpClient();
     smtp.Send(message);
     return true;
 }
Exemple #9
0
 private static string DisplayName(Person organiser)
 {
     return string.IsNullOrEmpty(organiser.Name)
         ? organiser.EmailAddress : organiser.Name;
 }