public bool IsValid(ISiteRequest <ISiteData> request, out ErrorMessage errorMessage) { errorMessage = null; var requestData = request.Payload; if (requestData is UserCredentials) { return(_newUserSessionRequestRequestValidator.IsValid((UserCredentials)requestData, out errorMessage)); } if (requestData is NewUser) { return(_registrationValidator.IsValid((NewUser)requestData, out errorMessage)); } errorMessage = new ErrorMessage(ErrorCode.RequestTypeNotSupported); return(false); }
private bool TryApplyToState <T>(ISiteRequest <T> request, IResponse response) { switch (request.RequestType) { case RequestType.Create: AddToState(response); return(true); case RequestType.Delete: return(TryDeleteFromState(out response)); case RequestType.Update: return(TryUpdateState(out response)); default: return(false); } }
public bool ProcessRequest(ISiteRequest <ISiteData> request, out IResponse response) { ErrorMessage error; if (!_siteRequestValidator.IsValid(request, out error)) { response = new SiteResponse().SetErrorResponse(error); return(false); } if (!_processor.TryProcess(request.RequestType, request.Payload, out response) && response != null) { return(false); } if (request.RequestType == RequestType.Read || request.RequestType == RequestType.ReadAll) { return(TryReadFromState(request.Payload ?? (ISiteData)Activator.CreateInstance(request.PayloadType), out response)); } return(TryApplyToState(request, response)); }