asp.net mvc - What to return from service to ASP MVC web app? -



asp.net mvc - What to return from service to ASP MVC web app? -

right have asp mvc web application along models project, service project, utilities project, , few datastores projects function repository 1 or more domain models. i'm pretty happy separation of each layer i'm stuck on homecoming service layer web app.

for example, when user seek register, registerviewmodel received controller. individual pieces (email, password, etc.) send service layer build fellow member domain object guid, status, createdate, etc., send repository storage , homecoming fellow member object web app redirect /member/{guid}.

but how should service layer inform web app if email exists? in more complex situation may have check existence/validity of multiple domain objects , business rules have homecoming multiple errors in 1 go. in addition, don't want exception bubble web layer service layer traps exceptions need notify web layer how.

even if find way homecoming that, web layer burdened process , provide user various feedback. controller code bulky , error prune. there best practice on service result presentation? should eliminate separate service layer , have code within controller? thoughts welcomed.

i wrote operation model library purpose, allows write code this:

public operationresult register(registerinput input) { var errors = new errorbuilder(); if (errors.notvalid(input) // invoke dataannotations validation || errors.not(this.repo.finduserbyemail(input.email) == null, "email '{0}' exists.", () => input.email)) homecoming errors; // stuff homecoming httpstatuscode.ok; }

...and in controller error messages copied modelstate:

[httppost] public actionresult register(registerinput input) { var result = this.service.register(input); if (result.iserror) homecoming view().witherrors(result); // stuff }

check out source code of mvcaccount project written using pattern.

asp.net-mvc service-layer three-tier

Comments

Popular posts from this blog

How do I check if an insert was successful with MySQLdb in Python? -

delphi - blogger via idHTTP : error 400 bad request -

postgresql - ERROR: operator is not unique: unknown + unknown -