// [Route("api/v4/customer/KeyValuePair")]
        public IHttpActionResult GetV2(KeyValueParameter getParameters)
        {
            try
            {
                // Get the correct strategy via indexed DI resoloution
                IGetRequestProcess keyValuePair = _strategyProcesses[GetRequestProcessImplementations.KeyValuePairV2];

                getParameters.AccessControl =
                    _clientScopeService.VerifyUserHasAccessToGroupCode(getParameters.AccessControl,
                                                                       Scope.CUSTOMER_RETRIEVE_KVPAIR);
                object output = keyValuePair.Execute(getParameters);

                return(Ok(output));
            }
            catch (Exception exception)
            {
                if (_logParameterValue)
                {
                    _logger.Error($"CustomerGetKeyValuePairv2: ErrorTag: {ErrorTagProvider.ErrorTagDatabase} --  {exception.Message}");

                    _logger.Error(
                        $"Parameters CustomerGetKeyValuePairv2:- Name=Key={getParameters.KeyValue.Key}, Value={getParameters.KeyValue.Value}");
                }

                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exception.Message)));
            }
        }
        public IHttpActionResult Get(KeyValueParameter getParameters)
        {
            try
            {
                // Use indexed DI resoloution
                IGetRequestProcess keyValuePair = _strategyProcesses[GetRequestProcessImplementations.KeyValuePair];

                //KeyValuePairStrategy keyValuePair = new KeyValuePairStrategy(getParameters, _mailingHistoryService,
                //    _mciRequestService, _clientScopeService, _logger, _permissionsService, _membershipService,
                //    _customerDetailsService, _travelSummaryService, _customerMatchService,
                //    _membershipFlagsKeyValueReader
                //    );
                getParameters.AccessControl =
                    _clientScopeService.VerifyUserHasAccessToGroupCode(getParameters.AccessControl,
                                                                       Scope.CUSTOMER_RETRIEVE_KVPAIR);
                object output = keyValuePair.Execute(getParameters);

                return(Ok(output));
            }
            catch (Exception exception)
            {
                if (_logParameterValue)
                {
                    _logger.Error($"MembershipGetKeyValuePair: ErrorTag: {ErrorTagProvider.ErrorTagDatabase} --  {exception.Message}");

                    _logger.Error(
                        $"Parameters PermissionLoad:- Name=Key={getParameters.KeyValue.Key}, Value={getParameters.KeyValue.Value}");
                }

                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exception.Message)));
            }
        }
        public IHttpActionResult Post(NameAndAddressParameter parameter)
        {
            try
            {
                // Use indexed DI resoloution
                IGetRequestProcess nameAndAddress = _strategyProcesses[GetRequestProcessImplementations.NameAndAddress];

                //NameAndAddressStrategy nameAndAddress = new NameAndAddressStrategy(parameter, _mailingHistoryService,
                //    _mciRequestService, _clientScopeService, _logger, _permissionsService, _membershipService,
                //    _customerMatchService, _customerDetailsService, _travelSummaryService);
                parameter.AccessControl =
                    _clientScopeService.VerifyUserHasAccessToGroupCode(parameter.AccessControl,
                                                                       Scope.CUSTOMER_RETRIEVE_NAMEADDR);
                object output = nameAndAddress.Execute(parameter);
                return(Ok(output));
            }
            catch (Exception exception)
            {
                if (_logParameterValue)
                {
                    _logger.Error($"PermissionGet: ErrorTag: {ErrorTagProvider.ErrorTagDatabase} --  {exception.Message}");

                    _logger.Error(
                        $"Parameters PermissionLoad:- Name=FirstName={parameter.NameAndAddress.FirstName}, LastName={parameter.NameAndAddress.Surname}, Dob={parameter.NameAndAddress.Dob}, " +
                        $" Address=AddresLine1={ parameter.NameAndAddress.Address.Address1 ?? ""}, AddressLine2={parameter.NameAndAddress.Address.Address2 ?? ""}, AddressLine3={parameter.NameAndAddress.Address.Address3 ?? ""}, " +
                        $" AddressLine4={parameter.NameAndAddress.Address.Address4 ?? ""}, PostCode={parameter.NameAndAddress.Address.Postcode ?? ""}");
                }
                //return Ok(exception);
                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exception.Message)));
            }
        }
        public IHttpActionResult PostV2(NameAndAddressParameter parameter)
        {
            try
            {
                // Use indexed DI resoloution for V2 strategy
                IGetRequestProcess nameAndAddress = _strategyProcesses[GetRequestProcessImplementations.NameAndAddressV2];

                parameter.AccessControl =
                    _clientScopeService.VerifyUserHasAccessToGroupCode(parameter.AccessControl,
                                                                       Scope.CUSTOMER_RETRIEVE_NAMEADDR);
                object output = nameAndAddress.Execute(parameter);
                return(Ok(output));
            }
            catch (Exception exception)
            {
                if (_logParameterValue)
                {
                    _logger.Error($"NameAndAddress: ErrorTag: {ErrorTagProvider.ErrorTagDatabase} --  {exception.Message}");

                    _logger.Error(
                        $"Parameters NameAndAddress:- Name=FirstName={parameter.NameAndAddress.FirstName}, LastName={parameter.NameAndAddress.Surname}, Dob={parameter.NameAndAddress.Dob}, " +
                        $" Address=AddresLine1={ parameter.NameAndAddress.Address.Address1 ?? ""}, AddressLine2={parameter.NameAndAddress.Address.Address2 ?? ""}, AddressLine3={parameter.NameAndAddress.Address.Address3 ?? ""}, " +
                        $" AddressLine4={parameter.NameAndAddress.Address.Address4 ?? ""}, PostCode={parameter.NameAndAddress.Address.Postcode ?? ""}");
                }
                //return Ok(exception);
                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exception.Message)));
            }
        }
Ejemplo n.º 5
0
        public ProcessRequestContext(GetParameters parameters,
                                     IMailingHistoryService mailingHistoryService,
                                     IMciRequestService mciRequestService,
                                     IClientScopeService clientScopeService,
                                     ILog logger, IPermissionService permissionsService,
                                     IMembershipService membershipService)
        {
            _parameters            = parameters;
            _mailingHistoryService = mailingHistoryService;
            _mciRequestService     = mciRequestService;
            _clientScopeService    = clientScopeService;
            _logger             = logger;
            _permissionsService = permissionsService;
            _membershipService  = membershipService;

            Assembly assembly = Assembly.GetExecutingAssembly();
            var      types    = assembly.GetTypes();

            var processType = types.Where(x => x.GetInterface("IGetRequestProcess") != null).ToList();
            var callingObj  =
                processType.SingleOrDefault(x => x.Name.ToLower() == $"{parameters.ProcessStrategy}Strategy".ToLower());

            if (callingObj == null)
            {
                _logger.Error(
                    "NameAndAddressStrategy: " + "ErrorTag: " + ErrorTagProvider.ErrorTag + " -- " + $"'{typeof(IGetRequestProcess).Assembly.FullName.ToLower()}" +
                    "Strategy\' is not implemented");
                throw new ArgumentException($"'{typeof(IGetRequestProcess).Assembly.FullName.ToLower()}" +
                                            "Strategy\' is not implemented");
            }


            GetRequestProcess =
                (IGetRequestProcess)
                Activator.CreateInstance(callingObj, _parameters, _mailingHistoryService, _mciRequestService,
                                         _clientScopeService, _logger, _permissionsService, _membershipService);
        }
        public IHttpActionResult Post(PermissionsCustomerLoad permissions)
        {
            try
            {
                var mappedPermissions = Mapper.Map <WebApiServices.Models.Gdpr.PermissionsCustomerLoadModel>(permissions);
                var processPermission =
                    new ProcessPermission(null, _permissionsService, _mciRequestService, _logger, null);
                var message = processPermission.AddOrUpdateCustomerPermission(mappedPermissions);

                //Post show return summary instead of message if the load is successfully
                if (string.Compare(DatabaseMessage.PermissionsCreated, message,
                                   StringComparison.CurrentCultureIgnoreCase) == 0)
                {
                    if ((!string.IsNullOrWhiteSpace(permissions.CustomerNameAndAddress.FirstName)) &&
                        (!string.IsNullOrWhiteSpace(permissions.CustomerNameAndAddress.Surname)) &&
                        (permissions.CustomerNameAndAddress.Address != null))
                    {
                        NameAndAddressParameter parameter = new NameAndAddressParameter()
                        {
                            NameAndAddress = permissions.CustomerNameAndAddress, ResponseRequestedItems = new List <string>()
                            {
                                ReturnMeTypeConstant.Permissions.ToString()
                            }
                        };

                        parameter.ReturnMe = new ReturnMe()
                        {
                            Permissions = new ReturnMePermissions
                            {
                                Required            = true,
                                Journey             = permissions.JourneyType,
                                ResponseParameter   = GdprResponseType.Summary.ToString(),
                                PermissionParameter = "All",
                                MatchType           = Saga.Gmd.WebApiServices.Common.MatchType.POSTCODE_AND_NAME.ToString()
                            }
                        };
                        parameter.NameAndAddress.MatchType = Saga.Gmd.WebApiServices.Common.MatchType.POSTCODE_AND_NAME
                                                             .ToString();

                        // Use indexed DI resoloution to get the required strategy
                        IGetRequestProcess nameAndAddress = _strategyProcesses[GetRequestProcessImplementations.NameAndAddress];

                        //NameAndAddressStrategy nameAndAddress = new NameAndAddressStrategy(parameter,
                        //    _mailingHistoryService, _mciRequestService, _clientScopeService, _logger, _permissionsService,
                        //    _membershipService, _customerMatchService, _customerDetailsService, _travelSummaryService);
                        parameter.AccessControl =
                            _clientScopeService.VerifyUserHasAccessToGroupCode(parameter.AccessControl,
                                                                               Scope.CUSTOMER_PERMISSIONS_RETRIEVE_NAMEADDR);
                        object output = nameAndAddress.Execute(parameter);
                        return(Ok(output));
                    }
                    else
                    {
                        KeyValueParameter parameter = new KeyValueParameter()
                        {
                            ResponseRequestedItems = new List <string>()
                            {
                                ReturnMeTypeConstant.Permissions.ToString()
                            },
                            KeyValue = new KeyValue()
                            {
                                Key = "CPCK", Value = permissions.PermissionsId.ToString()
                            }
                        };

                        parameter.ReturnMe = new ReturnMeForKeyValuePair()
                        {
                            Permissions = new ReturnMePermissions
                            {
                                Required            = true,
                                Journey             = permissions.JourneyType,
                                ResponseParameter   = GdprResponseType.Summary.ToString(),
                                PermissionParameter = "All"
                            }
                        };

                        // Use indexed DI resoloution  to get the required strategy
                        IGetRequestProcess strategy = _strategyProcesses[GetRequestProcessImplementations.PermissionsKeyValuePair];

                        //PermissionsKeyValuePairStrategy strategy = new PermissionsKeyValuePairStrategy(parameter, _mailingHistoryService,
                        //    _mciRequestService, _clientScopeService,
                        //    _logger, _permissionsService,
                        //    _membershipService, _customerDetailsService,
                        //    _travelSummaryService, _customerMatchService);
                        object output = strategy.Execute(parameter);
                        return(Ok(output));
                    }
                }
                return(Ok(message));
            }
            catch (Exception exception)
            {
                if (_logParameterValue)
                {
                    _logger.Error($"PermissionGetNameAndAddress: ErrorTag: {ErrorTagProvider.ErrorTagDatabase} --  {exception.Message}");

                    _logger.Error(
                        $"Parameters PermissionLoad:- Name=FirstName={permissions.CustomerNameAndAddress.FirstName}, LastName={permissions.CustomerNameAndAddress.Surname}, Dob={permissions.CustomerNameAndAddress.Dob}, " +
                        $" Address=AddresLine1={ permissions.CustomerNameAndAddress.Address.Address1 ?? ""}, AddressLine2={permissions.CustomerNameAndAddress.Address.Address2 ?? ""}, AddressLine3={permissions.CustomerNameAndAddress.Address.Address3 ?? ""}, " +
                        $" AddressLine4={permissions.CustomerNameAndAddress.Address.Address4 ?? ""}, PostCode={permissions.CustomerNameAndAddress.Address.Postcode ?? ""}");
                }
                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exception.Message)));
            }
        }