AnonymousContact IAnonymousUsersCommand.CreateContact(AnonymousUser user, ContactDetails contactDetails) { // Look for an existing contact. var contact = _repository.GetContact(user, contactDetails); if (contact != null) { return(contact); } // Create a new contact. user.Prepare(); user.Validate(); contact = new AnonymousContact { EmailAddress = contactDetails.EmailAddress, FirstName = contactDetails.FirstName, LastName = contactDetails.LastName }; contact.Prepare(); contact.Validate(); _repository.CreateContact(user, contact); return(contact); }
/// <summary> /// Get current contact info /// </summary> /// <returns></returns> public static ContactCookieModel GetCurrentContact() { var currentContact = StateManager.GetCookie <ContactCookieModel>(EzCMSContants.CurrentContactInformation); /* * This is the first time user come to site and has no cookie. We will * - Create new cookie * - Create an anonymous contact for user */ if (currentContact == null) { //Create new anonymous contact var annonymousContactRepository = HostContainer.GetInstance <IRepository <AnonymousContact> >(); var annonymousContact = new AnonymousContact { CookieKey = PasswordUtilities.GenerateUniqueKey(), IpAddress = HttpContext.Current.GetUserAgentInformationFromRequest().IpAddress }; annonymousContactRepository.Insert(annonymousContact); //Setup contact currentContact = new ContactCookieModel { AnonymousContactId = annonymousContact.Id, CookieKey = annonymousContact.CookieKey, IpAddress = annonymousContact.IpAddress }; //Set current contact to cookie StateManager.SetCookie(EzCMSContants.CurrentContactInformation, currentContact, DateTime.UtcNow.AddYears(1)); } return(currentContact); }
private JobAdQuestionsModel GetJobAdQuestionsModel(Guid jobAdId, Guid applicationId) { var member = CurrentMember; var jobAd = _memberJobAdViewsQuery.GetJobAdView(jobAdId); if (jobAd == null) { return(null); } var application = _memberApplicationsQuery.GetInternalApplication(applicationId); if (application == null) { return(null); } // Get the user who is doing the applying. AnonymousContact anonymousContact = null; if (member == null) { if (CurrentAnonymousUser != null) { anonymousContact = GetAnonymousContact(applicationId); if (anonymousContact == null) { return(null); } } } else { if (member.Id != application.ApplicantId) { return(null); } } if (member == null && anonymousContact == null) { return(null); } return(new JobAdQuestionsModel { JobAd = jobAd, Application = application, Member = member, AnonymousContact = anonymousContact, }); }
public ContactCookieModel(AnonymousContact anonymousContact) : this() { Email = anonymousContact.Email; FirstName = anonymousContact.FirstName; LastName = anonymousContact.LastName; Phone = anonymousContact.Phone; Address = anonymousContact.Address; ContactId = anonymousContact.ContactId; AnonymousContactId = anonymousContact.Id; CookieKey = anonymousContact.CookieKey; IpAddress = anonymousContact.IpAddress; }
public static AnonymousContactEntity Map(this AnonymousContact contact, Guid userId) { return(new AnonymousContactEntity { userId = userId, ContactDetailEntity = new ContactDetailEntity { id = contact.Id, email = contact.EmailAddress, firstName = contact.FirstName, lastName = contact.LastName } }); }
void IAnonymousRepository.CreateContact(IAnonymousUser user, AnonymousContact contact) { using (var dc = CreateContext()) { // Ensure there is a user. var userEntity = GetAnonymousUserEntity(dc, user.Id); if (userEntity == null) { dc.AnonymousUserEntities.InsertOnSubmit(user.Map()); } dc.AnonymousContactEntities.InsertOnSubmit(contact.Map(user.Id)); dc.SubmitChanges(); } }
Guid IInternalApplicationsCommand.Submit(AnonymousContact contact, IJobAd jobAd, Guid fileReferenceId) { // Check that the job hasn't already been applied for. if (_jobAdApplicationSubmissionsQuery.HasSubmittedApplication(contact.Id, jobAd.Id)) { throw new AlreadyAppliedException(); } // Create the application. var application = new InternalApplication { PositionId = jobAd.Id, ApplicantId = contact.Id, ResumeFileId = fileReferenceId, }; // Submit it. _jobAdApplicationSubmissionsCommand.CreateApplication(jobAd, application); _jobAdApplicationSubmissionsCommand.SubmitApplication(jobAd, application); return(application.Id); }
public static string GetDefaultCoverLetter(this JobAdView jobAd, AnonymousContact contact) { return(GetDefaultCoverLetter(jobAd.Title, jobAd.Integration.ExternalReferenceId, contact.FullName, contact.EmailAddress, null)); }
internal ResponseModel Delete(AnonymousContact anonymousContactt) { return(_anonymousContactRepository.Delete(anonymousContactt)); }
internal ResponseModel Insert(AnonymousContact anonymousContactt) { return(_anonymousContactRepository.Insert(anonymousContactt)); }
/// <summary> /// Save contact info /// </summary> /// <param name="model"></param> public static void SetCurrentContact(ContactCookieModel model) { var annonymousContactRepository = HostContainer.GetInstance <IRepository <AnonymousContact> >(); var anonymousContact = annonymousContactRepository.FetchFirst(c => c.CookieKey.Equals(model.CookieKey)); /* * If we cannot find the anonymous contact of user, maybe because the data is removed, user log to different account or user remove cookie. We will * - Create an anonymous contact for user */ if (anonymousContact == null) { anonymousContact = new AnonymousContact { ContactId = model.ContactId, CookieKey = model.CookieKey, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, Phone = model.Phone, Address = model.Address, IpAddress = HttpContext.Current.GetUserAgentInformationFromRequest().IpAddress }; annonymousContactRepository.Insert(anonymousContact); model = new ContactCookieModel(anonymousContact); } else { if (model.ContactId.HasValue) { /* * If the contact ID in database has no model, then maybe user just have an account so we will link the anonymous contact to current contact */ if (!anonymousContact.ContactId.HasValue) { anonymousContact.ContactId = model.ContactId; anonymousContact.Email = model.Email; anonymousContact.FirstName = model.FirstName; anonymousContact.LastName = model.LastName; anonymousContact.Phone = model.Phone; anonymousContact.IpAddress = model.IpAddress; anonymousContact.Address = model.Address; annonymousContactRepository.Update(anonymousContact); model = new ContactCookieModel(anonymousContact); } else { /* * If the contact ID in database has model but different with current contact id, then user may change the account. So we will * - Create new anonymous for current user */ if (model.ContactId.Value != anonymousContact.ContactId.Value) { anonymousContact = new AnonymousContact { ContactId = model.ContactId, CookieKey = PasswordUtilities.GenerateUniqueKey(), Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, Phone = model.Phone, Address = model.Address, IpAddress = HttpContext.Current.GetUserAgentInformationFromRequest().IpAddress }; annonymousContactRepository.Insert(anonymousContact); model = new ContactCookieModel(anonymousContact); } else { /* * If the contact ID in database has model and equal with current contact id, then we will check if there are any contact information updates or not. * - If yes, then update anonymous contact information */ if (!anonymousContact.FirstName.AreEqual(model.FirstName) || !anonymousContact.LastName.AreEqual(model.LastName) || !anonymousContact.Email.AreEqual(model.Email) || !anonymousContact.Phone.AreEqual(model.Phone) || !anonymousContact.IpAddress.AreEqual(model.IpAddress) || !anonymousContact.Address.AreEqual(model.Address)) { anonymousContact.FirstName = model.FirstName; anonymousContact.LastName = model.LastName; anonymousContact.Email = model.Email; anonymousContact.Phone = model.Phone; anonymousContact.IpAddress = model.IpAddress; anonymousContact.Address = model.Address; annonymousContactRepository.Update(anonymousContact); model = new ContactCookieModel(anonymousContact); } } } } else { if (!string.IsNullOrEmpty(anonymousContact.FirstName) && !string.IsNullOrEmpty(anonymousContact.LastName) && (!string.IsNullOrEmpty(anonymousContact.Email) || !string.IsNullOrEmpty(anonymousContact.Phone))) { var contactService = HostContainer.GetInstance <IContactService>(); var contact = contactService.CreateContactIfNotExists(new Contact { FirstName = anonymousContact.FirstName, LastName = anonymousContact.LastName, Email = anonymousContact.Email, PreferredPhoneNumber = anonymousContact.Phone, AddressLine1 = anonymousContact.Address, }); anonymousContact.ContactId = contact.Id; model = new ContactCookieModel(anonymousContact); } } } StateManager.SetCookie(EzCMSContants.CurrentContactInformation, model, DateTime.UtcNow.AddYears(1)); }
protected void AssertJobG8Request(AnonymousContact contact, JobAd jobAd, InternalApplication application, FileReference fileReference) { AssertJobG8Request(contact, jobAd, application, fileReference.FileName, GetResumeValue(fileReference)); }