public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext) { string body = actionContext.Request.Content.ReadAsStringAsync().Result; MembershipCancellationParameterModel model = new MembershipCancellationParameterModel(); model = JsonConvert.DeserializeObject <MembershipCancellationParameterModel>(body); // Get current membership to calidate existing status .. _membershipDataAccess = (IMembershipDataAccess) (actionContext.ControllerContext.Configuration.DependencyResolver as AutofacWebApiDependencyResolver) .GetService(typeof(IMembershipDataAccess)); MembershipDetails membershipDetails = _membershipDataAccess.GetMembershipDetails <long, MembershipDetails>(model.MembershipNo ?? default(long)); // Call new Generic DA method if (membershipDetails.MembershipNo.HasValue) { model.OriginalStatus = membershipDetails.MembershipStatus; } // GITCS-9 - cancellation reason model.ValidMembershipCancellationReasons = _membershipDataAccess.GetMembershipOptions("MEMBERSHIP_CANCEL_REASON").Where(mo => mo.CodeList == "MEMBERSHIP_CANCEL_REASON"); var validator = new MembershipCancellationParameterModelValidator(); var result = validator.Validate(model); foreach (var e in result.Errors) { bindingContext.ModelState.AddModelError(e.PropertyName, e.ErrorMessage); } bindingContext.Model = model; return(true); }
public IHttpActionResult CancelMembership(MembershipCancellationParameterModel membershipCancellationParameter) { try { // Use Injected mapper ... var mappedModel = _mapper.Map <MembershipCancellationParameterModel, MembershipDataInput>(membershipCancellationParameter); List <MembershipOutput> result = new List <MembershipOutput>(); // Get indexed Cancellation writer part from DI container IStrategyWriterPart <MembershipDataInput, int, int, MembershipDetails> writerCancelationPart = _membershipDetailsWriterParts[StrategyWriterPartImplementations.CancellMembershipWriterPart]; result.Add( new MembershipOutput() { MembershipData = writerCancelationPart.Process(mappedModel) } ); return(Ok(result)); } catch (Exception exception) { if (_logParameterValue) { _logger.Error( $"MembershipCancellation: ErrorTag: {ErrorTagProvider.ErrorTagDatabase} -- {exception.Message}"); _logger.Error( $"Parameters MembershipLoad:- MembershipNo={membershipCancellationParameter.MembershipNo}, EncryptedMembershipNo={membershipCancellationParameter.EncryptedMembershipNo}" ); } return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exception.Message))); } }