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); } }
private string AppliedPartner(DinnerApplicant dinnerApplicant, Guid userId) { if (dinnerApplicant.Partner == null) return null; return dinnerApplicant.Partner.Id == userId ? dinnerApplicant.User.FullName() : dinnerApplicant.Partner.FullName(); }
private string AppliedPartner(DinnerApplicant dinnerApplicant, Guid userId) { if (dinnerApplicant.Partner == null) { return(null); } return(dinnerApplicant.Partner.Id == userId ? dinnerApplicant.User.FullName() : dinnerApplicant.Partner.FullName()); }