public ContactOperationStatus CreateContactFromQueue(int contactId) { var operationStatus = new ContactOperationStatus(); try { operationStatus = _contactRepository.Get(contactId); if (operationStatus.Status) { var contact = operationStatus.Contact; //sync the queued contact operationStatus = _contactSynchroniser.SaveContact(operationStatus.Contact); if (operationStatus.Status) { //then save locally (to update the external contact/address numbers) operationStatus = _contactRepository.Save(operationStatus.Contact); } return operationStatus; } } catch (Exception e) { operationStatus = OperationStatusExceptionHelper<ContactOperationStatus> .CreateFromException("An error has occurred getting the contact", e); } return operationStatus; }
public ContactOperationStatus Save(Contact contact) { var operationStatus = new ContactOperationStatus(); try { if (_database.IsNew(contact)) { contact.ContactId=(int)_database.Insert(contact); operationStatus.ContactCreated = true; } else { _database.Update(contact); } operationStatus.Contact = contact; operationStatus.Status = true; } catch (Exception e) { operationStatus.LogFailedOperation(e); //operationStatus = OperationStatusExceptionHelper<ContactOperationStatus> // .CreateFromException("An error has occurred retrieving the contact from the queue", e); } return operationStatus; }
public ContactOperationStatus Get(int contactId) { var operationStatus = new ContactOperationStatus(); try { operationStatus.Contact = _database.SingleOrDefault<Contact>("SELECT * FROM cpxContact WHERE ContactId=@0",contactId); operationStatus.Status =(operationStatus.Contact!=null); } catch (Exception e) { operationStatus = OperationStatusExceptionHelper<ContactOperationStatus> .CreateFromException("An error has occurred retrieving the contact from the queue", e); } return operationStatus; }
/// <summary> /// get existing contact by username /// </summary> /// <param name="userName"></param> /// <returns></returns> public ContactOperationStatus Get(string userName) { var operationStatus=new ContactOperationStatus(); try { Contact contact = LoadFromProfile(ProfileBase.Create(userName, true)); contact.UserId = GetUserId(); operationStatus.Status = true; operationStatus.Contact = contact; } catch (Exception e) { operationStatus.Status = false; operationStatus.Message = "An error occured while retrieving your contact information."; } return operationStatus; }
private ContactOperationStatus CreateContact(Contact contact) { MembershipCreateStatus createStatus = new MembershipCreateStatus(); MembershipUser newUser = Membership.CreateUser(contact.UserName, contact.Password,contact.Email, "Question", "Answer", true, out createStatus); ContactOperationStatus returnStatus; switch (createStatus) { case MembershipCreateStatus.Success: System.Web.Security.FormsAuthentication.SetAuthCookie(contact.UserName, true); CreateProfile(contact); returnStatus = new ContactOperationStatus { Status = true, Message = "Your account has been successfully created." }; break; case MembershipCreateStatus.DuplicateUserName: returnStatus = new ContactOperationStatus { Status = false, Message = "That username already exists. If you have already registered with us and can't remember your password, please use the Password recovery link to reset your password." }; break; case MembershipCreateStatus.DuplicateEmail: returnStatus = new ContactOperationStatus { Status = false, Message = "A user with that Email address already exists. If you have already registered with us and can't remember your password, please use the Password recovery link to reset your password." }; break; case MembershipCreateStatus.InvalidEmail: returnStatus = new ContactOperationStatus { Status = false, Message = "Please enter a VALID email address." }; break; case MembershipCreateStatus.InvalidAnswer: returnStatus = new ContactOperationStatus { Status = false, Message = "The security answer is not valid" }; break; case MembershipCreateStatus.InvalidPassword: returnStatus = new ContactOperationStatus { Status = false, Message = "The password entered is invalid. Please enter a passoword with at least 7 characters and one non-alphanumeric." }; break; default: returnStatus = new ContactOperationStatus { Status = false, Message = "Unknown Error: Account NOT created." }; break; } return returnStatus; }
public ContactOperationStatus UpdateExternalContactNumber(int contactId, int externalContactNumber) { var operationStatus=new ContactOperationStatus(); try { operationStatus = _contactRepository.Get(contactId); if (operationStatus.Status) { var contact = operationStatus.Contact; contact.ExternalContactNumber = externalContactNumber; operationStatus = _contactRepository.Save(contact); } } catch (Exception e) { operationStatus = OperationStatusExceptionHelper<ContactOperationStatus> .CreateFromException("An error has occurred getting the contact", e); } return operationStatus; }
public ContactOperationStatus GetContact() { var operationStatus=new ContactOperationStatus(); int contactId = 0; try { //if the user logged in? if (_authenticationHandler.IsCurrentUserLoggedIn()) { //if yes, get the ContactId contactId = _authenticationHandler.GetContactId(); //if there is one, get the contact if (contactId>0) operationStatus = _contactRepository.Get(contactId); else { operationStatus.Status = false; } //if no luck with contact repository, try secondary repository, if it is active if (!operationStatus.Status&&_secondaryContactRepository.RepositoryAvailable()) { string userName = _authenticationHandler.GetUserName(); operationStatus = _secondaryContactRepository.Get(userName); if (operationStatus.Status) { operationStatus = _contactRepository.Save(operationStatus.Contact); if (operationStatus.Status) _authenticationHandler.SetContactId(operationStatus.Contact.UserName,operationStatus.Contact.ContactId); } } if (operationStatus.Status) { Contact contact = operationStatus.Contact; contact.CountryDesc = _contactSynchroniser.GetCountry(contact.Country).Name; if (contact.SeparateDeliveryAddress) contact.DeliveryCountryDesc = _contactSynchroniser.GetCountry(contact.DeliveryCountry).Name; //check if the UserId for the contact needs updating string currentUserId = _authenticationHandler.GetUserId(); string currentReferrerdId = _authenticationHandler.GetReferrerId(); if (contact.UserId != currentUserId||contact.ReferrerId!=currentReferrerdId) { contact.UserId = currentUserId; contact.ReferrerId = currentReferrerdId; _contactRepository.Save(contact); } contact.ReferrerId = _authenticationHandler.GetReferrerId(); if (_contactSynchroniser.SynchronisationAvailable() && _contactSynchroniser.CanContactBeSynced(contact)) { operationStatus = _contactSynchroniser.GetContact(contact.ExternalContactNumber); if (operationStatus.Status) { //merge in changes from sync contact.InjectFrom<IgnoreNulls>(operationStatus.Contact); contact.ContactId = contactId; //update the repository with the changes operationStatus = _contactRepository.Save(contact); } } } } else { Contact contact = new Contact(); contact.UserId = _authenticationHandler.GetUserId(); contact.ReferrerId = _authenticationHandler.GetReferrerId(); contact.Status = false; operationStatus.Contact = contact; operationStatus.Status = true; } } catch (Exception e) { operationStatus.LogFailedOperation(e); //operationStatus = OperationStatusExceptionHelper<ContactOperationStatus> // .CreateFromException("An error has occurred getting the contact", e); } return operationStatus; }
private ContactOperationStatus UpdateContact(Contact contact) { var opStatus = new ContactOperationStatus { Status = true }; var careWebServices = new CARECustomerPortalExtensions.CareWebServices.NDataAccessSoapClient(); //first update contact information string sendXML = String.Format("<Parameters>" + "<ContactNumber>{0}</ContactNumber>" + "<Title>{1}</Title>" + "<Forenames>{2}</Forenames>" + "<Surname>{3}</Surname>" + "<Address>{4}</Address>" + "<Town>{5}</Town>" + "<County>{6}</County>" + "<Country>{7}</Country>" + "<DirectNumber>{8}</DirectNumber>" + "<MobileNumber>{9}</MobileNumber>" + "<EmailAddress>{10}</EmailAddress>" + "<UserLogname>fscweb</UserLogname>" + "</Parameters>", contact.ExternalContactNumber, contact.Title, contact.FirstName, contact.LastName, contact.Address1 + "\n" + contact.Address2 + "\n" + contact.Address3, contact.Town, contact.County, contact.Country, contact.Telephone, contact.Mobile, contact.Email); //Load xmldata into XDocument Object XDocument sendingXMLDoc = XDocument.Parse(sendXML); string returnXML = careWebServices.UpdateContact(sendingXMLDoc.ToString()); XDocument receivingXMLDoc = XDocument.Parse(returnXML); try { //TODO: what to do about lack of address number returned? int careContactNumber = Convert.ToInt32(receivingXMLDoc.Element("Result") .Element("ContactNumber").Value); contact.ExternalContactNumber = careContactNumber; opStatus.Contact = contact; opStatus.Message = "The contact has been successfully updated."; } catch (Exception e) { opStatus = OperationStatusExceptionHelper<ContactOperationStatus> .CreateFromException("Error updating contact in CARE: " + e.Message, e); opStatus.Status = false; } //if update of contact information worked //* if (opStatus.Status) //{ //update address information // sendXML = String.Format("<Parameters>" + // "<ContactNumber>{0}</ContactNumber>" + // "<AddressNumber>{1}</AddressNumber>" + // "<Address>{2}</Address>" + // "<Town>{3}</Town>" + // "<County>{4}</County>" + // "<Country>{5}</Country>" + // contact.ExternalContactNumber, contact.ExternalAddressNumber, contact.Address1 + "\n" + contact.Address2 + "\n" + contact.Address3, // contact.Town, contact.County, contact.Country); //Load xmldata into XDocument Object // sendingXMLDoc = XDocument.Parse(sendXML); // //returnXML = careWebServices.UpdateAddress(sendingXMLDoc.ToString()); // receivingXMLDoc = XDocument.Parse(returnXML); //try //{ // int careAddressNumber = Convert.ToInt32(receivingXMLDoc.Element("Result") // .Element("AddressNumber").Value); //} //catch (Exception e) //{ // opStatus = ContactOperationStatus.CreateFromException("Error updating address in CARE: " + e.Message, e); // opStatus.Status = false; //} //} return opStatus; }
private ContactOperationStatus CreateContact(Contact contact) { var opStatus = new ContactOperationStatus { Status = true }; try { var careWebServices = new CARECustomerPortalExtensions.CareWebServices.NDataAccessSoapClient(); //TODO: do we need the registered users table? //TODO: CARE - set up fscweb (FSC Web) in users table //TODO: CARE - set up WCP (Website Customer Portal) in source table string sendXML = String.Format("<Parameters>" + "<Title>{0}</Title>" + "<Forenames>{1}</Forenames>" + "<Surname>{2}</Surname>" + "<Address>{3}</Address>" + "<Town>{4}</Town>" + "<County>{5}</County>" + "<Country>{6}</Country>" + "<Postcode>{7}</Postcode>" + "<DirectNumber>{8}</DirectNumber>" + "<MobileNumber>{9}</MobileNumber>" + "<EmailAddress>{10}</EmailAddress>" + "<UserLogname>fscweb</UserLogname>" + "<Source>WCP</Source>" + "</Parameters>", contact.Title, contact.FirstName, contact.LastName, contact.Address1 + "\n" + contact.Address2 + "\n" + contact.Address3, contact.Town, contact.County, contact.Country, contact.Postcode, contact.Telephone, contact.Mobile, contact.Email ); //Load xmldata into XDocument Object XDocument sendingXMLDoc = XDocument.Parse(sendXML); string returnXML = careWebServices.AddContact(sendingXMLDoc.ToString()); XDocument receivingXMLDoc = XDocument.Parse(returnXML); XElement resultElement = receivingXMLDoc.Element("Result"); if (resultElement.Element("ErrorMessage") != null) { string errorMessage = resultElement.Element("ErrorMessage").Value; opStatus = OperationStatusExceptionHelper<ContactOperationStatus> .CreateFromException("Error storing contact in CARE: " + errorMessage, new CareException()); opStatus.Status = false; } else { int careContactNumber = Convert.ToInt32(receivingXMLDoc.Element("Result") .Element("ContactNumber").Value); int careAddressNumber = Convert.ToInt32(receivingXMLDoc.Element("Result") .Element("AddressNumber").Value); contact.ExternalContactNumber = careContactNumber; contact.ExternalAddressNumber = careAddressNumber; opStatus.Message = "The contact has been successfully created."; opStatus.Contact = contact; } } catch (Exception e) { opStatus = OperationStatusExceptionHelper<ContactOperationStatus> .CreateFromException("Error storing contact in CARE: " + e.Message, e); opStatus.Status = false; } return opStatus; }
public ContactOperationStatus GetContact(int externalContactNumber) { var opStatus = new ContactOperationStatus { Status = true }; Contact contact = new Contact(); string sendXml = String.Format("<Parameters>" + "<ContactNumber>{0}</ContactNumber>" + //"<AddressNumber>{1}</AddressNumber>" + "</Parameters>", externalContactNumber);//, externalAddressNumber //Load xmldata into XDocument Object XDocument sendingXMLDoc = XDocument.Parse(sendXml); CustomerPortalExtensions.CareWebServices.NDataAccessSoapClient careWebServices = new CustomerPortalExtensions.CareWebServices.NDataAccessSoapClient(); string returnXML = careWebServices.SelectContactData(CustomerPortalExtensions.CareWebServices.XMLContactDataSelectionTypes.xcdtContactInformation, sendingXMLDoc.ToString()); XDocument receivingXMLDoc = XDocument.Parse(returnXML); try { contact.ExternalContactNumber = externalContactNumber; XElement contactRow = (receivingXMLDoc.Element("ResultSet").Element("DataRow")); contact.ExternalAddressNumber = Convert.ToInt32(contactRow.Element("AddressNumber").Value); contact.Title = contactRow.Element("Title").Value; contact.FirstName = contactRow.Element("Forenames").Value; contact.LastName = contactRow.Element("Surname").Value; //TODO: need to split address back out into Address1,2,3 etc contact.Address1 = contactRow.Element("Address").Value; contact.Town = contactRow.Element("Town").Value; contact.County = contactRow.Element("County").Value; contact.Postcode = contactRow.Element("Postcode").Value; contact.Country = contactRow.Element("CountryCode").Value; contact.Status = true; opStatus.Contact = contact; } catch (Exception e) { opStatus = OperationStatusExceptionHelper<ContactOperationStatus>. CreateFromException("Error retrieving contact from CARE: " + e.Message, e); opStatus.Status = false; } return opStatus; }