KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've done alot of research, including here on SO, and I can't seem to find clear direction. I currently have an ASP.NET MVC3 application, with a service layer that sits on top of a repository. In my service layer, I have functions such as: public class MyService{ public void CreateDebitRequest(int userId, int cardId, decimal Amount, .... ) { //perform some sort of validation on parameters, save to database } public void CreateCreditRequest(.....) } //perform some sort of validation on parameters, save to database } public void CreateBatchFile() { //construct a file using a semi-complex process which could fail //write the file to the server, which could fail } public PaymentTransaction ChargePaymentCard(int paymentCardId, decimal amount) { //validate customer is eligible for amount, call 3rd party payments api call, //...save to database, other potential failures, etc. } } I've seen people say that parameter validation isn't very exceptional, and so throwing an exception is not very fitting. I also don't love the idea of passing in an out paramater, such as a string, and checking for an empty value. I've considered implementing a ValidationDictionary class, and making it a property of any given service class (it would contain an IsValid boolean, and a List of error messages, and could be checked after any given function call in the service layer to see how things went). I could check the ValidationDictionary status after running any given function: var svc = new MyService(); svc.CreateBatchFile(); if (svc.ValidationDictionary.IsValid) //proceed else //display values from svc.ValidationDictionary.Messages... The thing I don't like about this is that I would have to update it for every service layer function call, to avoid having it retain old values (if I chose not to use it for many or
Tags (comma-separated)
Save Edits
Cancel