Esempio n. 1
0
 public void Handle(ApplyForDinnerCommand command)
 {
     using (new UnitOfWork())
     {
         var dinner = _dinnerRepository.Load(command.DinnerId);
         var user   = _userRepository.Load(command.UserId);
         if (dinner == null || user == null)
         {
             return;
         }
         if (_dinnerApplicantRepository.Find().SingleOrDefault(x => (x.User == user || x.Partner == user) && x.Dinner == dinner) != null)
         {
             return;
         }
         var application = new DinnerApplicant(user, dinner);
         if (!string.IsNullOrEmpty(command.PartnerEmail))
         {
             application.VerificationCode = Guid.NewGuid();
             application.Partner          = _userRepository.Find().Single(x => x.Email == command.PartnerEmail);
             var email = new Email
             {
                 Address      = application.Partner.Email,
                 Priority     = 1,
                 TemplateName = "ConfirmInvitation",
                 Payload      = Json.Encode(new
                 {
                     VerificationUrl = command.ConfirmUrl + "?token=" + application.VerificationCode
                 })
             };
             _emailRepository.Save(email);
         }
         dinner.Applicants.Add(application);
         user.AppliedDinners.Add(application);
     }
 }
Esempio n. 2
0
 private string AppliedPartner(DinnerApplicant dinnerApplicant, Guid userId)
 {
     if (dinnerApplicant.Partner == null)
         return null;
     return dinnerApplicant.Partner.Id == userId
         ? dinnerApplicant.User.FullName()
         : dinnerApplicant.Partner.FullName();
 }
Esempio n. 3
0
 private string AppliedPartner(DinnerApplicant dinnerApplicant, Guid userId)
 {
     if (dinnerApplicant.Partner == null)
     {
         return(null);
     }
     return(dinnerApplicant.Partner.Id == userId
         ? dinnerApplicant.User.FullName()
         : dinnerApplicant.Partner.FullName());
 }