コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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);
        }