public IHttpActionResult ProductSold(MembershipProductSoldParameterModel membershipProductSold
                                             )
        {
            try
            {
                var mappedModel = _mapper.Map <MembershipDataInput>(membershipProductSold);
                // Map to common MembershipDataInput model instance

                IStrategyWriterPart <MembershipDataInput, int, int, string> membershipProductSoldWriterPart =
                    _membershipWriterParts[StrategyWriterPartImplementations.ProductSoldMembershipWriterPart];

                // Get indexed product sold writer part from DI container
                string message = membershipProductSoldWriterPart.Process(mappedModel);


                return(Ok($"Success: Set {mappedModel.ProductSoldKey} eligible - {message}"));
            }
            catch (Exception exception)
            {
                if (_logParameterValue)
                {
                    _logger.Error(
                        $"ProductSold: ErrorTag: {ErrorTagProvider.ErrorTagDatabase} --  {exception.Message}");

                    _logger.Error(
                        $"Parameters ProductSold:- " +
                        $" ActivationId={membershipProductSold.ActivationId ?? ""}, EncryptedActivationId={membershipProductSold.EncryptedActivationId ?? ""}, " +
                        $" MembershipNo={membershipProductSold.MembershipNo}, EncryptedMembershipNo={membershipProductSold.EncryptedMembershipNo ?? ""}");
                }

                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError,
                                                                   exception.Message)));
            }
        }
        public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
        {
            string body = actionContext.Request.Content.ReadAsStringAsync().Result;
            MembershipProductSoldParameterModel model = new MembershipProductSoldParameterModel();

            model = JsonConvert.DeserializeObject <MembershipProductSoldParameterModel>(body);


            var validator = new MembershipProductSoldParameterModelValidator();
            var result    = validator.Validate(model);

            foreach (var e in result.Errors)
            {
                bindingContext.ModelState.AddModelError(e.PropertyName, e.ErrorMessage);
            }
            bindingContext.Model = model;
            return(true);
        }