public IHttpActionResult UpdateMemberSetting(UpdateMemberSettingRequest request)
        {
            var response = new UpdateMemberSettingResponse();

            try
            {
                var isValidRequest = false;

                var memberId = request.GetMemberId();
                var member = MembershipAdapter.GetMember(memberId);

                if (member.Exists())
                {
                    if (Enum.IsDefined(typeof(SettingTypes), request.SettingTypeId))
                    {
                        isValidRequest = true;
                    }
                    else
                    {
                        request.AddError("Setting Type", "Setting type is undefined");
                    }
                }

                if (isValidRequest)
                {
                    var settingTypeId = (SettingTypes)request.SettingTypeId;
                    var memberSetting = MembershipAdapter.GetMemberSetting(member.Id, settingTypeId);

                    memberSetting.Value = request.Value;

                    if (memberSetting.Exists())
                    {
                        memberSetting = MembershipAdapter.UpdateMemberSetting(memberSetting);
                    }
                    else
                    {
                        memberSetting.MemberId = member.Id;
                        memberSetting.SettingTypeId = settingTypeId;
                        memberSetting = MembershipAdapter.CreateMemberSetting(memberSetting);
                    }

                    response.IsSuccessful = true;
                    response.StatusMessage = "Update member settings succeeded";
                }
                else
                {
                    response.IsSuccessful = false;
                    response.StatusMessage = "Update member setting  was unsuccessful";
                    response.Errors.AddRange(request.GetErrors());
                }
            }
            catch (Exception ex)
            {
                this.Log<UpdateMemberSettingRequest>(LogCategories.Error, request, ex.Message);

                response.IsSuccessful = false;
                response.StatusMessage = this.StatusMessageForExpection;
                response.Errors.Add(ex.Message);
            }

            return Ok(response);
        }
        public void UpdateMemberSetting()
        {
            var memberId = this.RequestUserInput<string>("Enter member ID: ", string.Empty);
            var settingType = this.RequestSettingType("Enter setting type ID: ", null);
            var value = this.RequestUserInput<bool>("Enter value: ", true);

            var settingTypeId = 0;

            if (settingType.HasValue)
            {
                settingTypeId = (int)settingType.Value;
            }

            var request = new UpdateMemberSettingRequest
            {
                MemberId = memberId,
                SettingTypeId = settingTypeId,
                Value = value
            };

            var response = proxy.UpdateMemberSetting(request);

            this.OutputResponse(response);
        }