/// <summary> /// Fetch Membership details for customer /// Refactored logic from MembershipProcess.GetMembershipFromNameAndAddress() /// </summary> /// <param name="nameAndAddressParameter">NameAndAddress to identify customer</param> /// <param name="customerId">Customer Id used in preference to the above if passed</param> /// <returns></returns> public object Process(NameAndAddressParameter nameAndAddressParameter, int?customerId) { if (nameAndAddressParameter.AccessControl.ModuleAccess.Find(x => x.HasAccess && x.Key == GroupCode.MEMB) == null) { NoAccessToMembership message = new NoAccessToMembership(); message.Message = "You dont' have access for Membership data."; return(message); } var membershipOutputData = new MembershipOutput(); try { // Use any Customer Id passed else use NameAddr lookup var pkey = customerId ?? _mciRequestDataAccess.GetPersistantKey(nameAndAddressParameter.NameAndAddress); if (pkey > 0) { _logger.Info("Pkey Found " + pkey); nameAndAddressParameter.ReturnMe.Membership.CustomerId = pkey.Value.ToString(); var membershipDetails = _membershipDataAccess.GetMembershipDetails(pkey.Value.ToString()); membershipOutputData.MembershipData = membershipDetails; if (string.IsNullOrEmpty(membershipOutputData.MembershipData.ActivationId) && string.IsNullOrEmpty(membershipOutputData.MembershipData.EncryptedActivationId)) { IDictionary <string, string> output = _membershipDataAccess.CreateMembership(nameAndAddressParameter?.ReturnMe?.Membership); membershipOutputData.MembershipData.ActivationId = output["ActivationId"]; membershipOutputData.MembershipData = _membershipDataAccess.GetMembershipDetails(membershipOutputData.MembershipData.ActivationId); } } else { return(HttpStatusCode.NotFound); } } catch (Exception ex) { _logger.Error("GetMembershipFromNameAndAddress : ErrorTag: " + ErrorTagProvider.ErrorTagDatabase + " -- " + ex.Message, ex); if (_logParameterValues) { _logger.Error( $"Parameters GetMembershipFromNameAndAddress:- Name=FirstName={nameAndAddressParameter.NameAndAddress.FirstName}, LastName={nameAndAddressParameter.NameAndAddress.Surname}, Dob={nameAndAddressParameter.NameAndAddress.Dob}, " + $"Address=AddresLine1={nameAndAddressParameter.NameAndAddress.Address.Address1}, AddressLine2={nameAndAddressParameter.NameAndAddress.Address.Address2}, AddressLine3={nameAndAddressParameter.NameAndAddress.Address.Address3}, " + $"AddressLine4={nameAndAddressParameter.NameAndAddress.Address.Address4}, PostCode={nameAndAddressParameter.NameAndAddress.Address.Postcode}"); } throw new Exception(ex.Message); } return(membershipOutputData); }
public object ProcessMembershipWithKeyValue() { CustomerFound = true; if (_keyValue.AccessControl.ModuleAccess.Find(x => x.HasAccess && x.Key == GroupCode.MEMB) == null) { NoAccessToMembership message = new NoAccessToMembership(); message.Message = "You dont' have access for Membership data."; return(message); } var cusKeys = new CustomerKeys(); var membershipField = new MembershipFields(); var membershipOutput = new MembershipOutput(); try { var pKey = GetCustomerPersistantKeyFromKeyValue(); if (pKey == 0) { cusKeys.Keys.HasPartialResult = false; cusKeys.Keys.Message = "No persistent key found for this customer"; CustomerFound = false; return(null); } try { membershipOutput.MembershipData = _membershipService.GetMembershipDetails(pKey); } catch (Exception ex) { _logger.Error("ProcessMembership From KeyValue: ErrorTag: " + ErrorTagProvider.ErrorTagDatabase + " -- " + ex.Message, ex); throw new Exception(ex.Message); } } catch (Exception ex) { _logger.Error("ProcessMembership From KeyValue: ErrorTag: " + ErrorTagProvider.ErrorTagDatabase + " -- " + ex.Message, ex); if (_logParameterValue) { _logger.Error($"Parameters MembershipForMembershipKeyValue:- Key={_keyValue.KeyValue.Key}, Value={_keyValue.KeyValue.Value}"); } throw new Exception(ex.Message); } return(membershipOutput); }