/// <summary> /// Inicia uma nova instância da classe <see cref="GestUAB.Modules.ColaboradorModule"/> class. /// </summary> public ColaboradorModule() : base("/colaboradores") { this.Get["/"] = _ => { var all = ColaboradorManager.GetAll(); return View["index", all]; }; this.Get["/{Id}"] = x => { Guid id = Guid.Parse(x.Id); var m = ColaboradorManager.Get(id); if (m == null) { return new NotFoundResponse(); } return View["show", m]; }; this.Get["/new"] = x => { return View["new", new Colaborador()]; }; this.Post["/new"] = x => { var colaborador = this.Bind<Colaborador>(); var result = new ColaboradorValidator().Validate(colaborador); if (!result.IsValid) { return Response.AsJson(result.Errors) .WithStatusCode(HttpStatusCode.BadRequest) .WithHeader("X-Status-Reason", "A validação falhou.".ToHtmlEncode()); } ColaboradorManager.Insert(colaborador); return Response.AsJson("Redirecionando para a página do colaborador", HttpStatusCode.Created) .WithHeader("Location", string.Format("/colaboradores/{0}", colaborador.Id)); }; this.Get["/edit/{Id}"] = x => { Guid id = Guid.Parse(x.Id); var colaborador = ColaboradorManager.Get(id); if (colaborador == null) { return new NotFoundResponse(); } return View["edit", colaborador]; }; this.Put["/edit/{Id}"] = x => { var colaborador = this.Bind<Colaborador>(); var result = new ColaboradorValidator().Validate(colaborador, ruleSet: "Update"); if (!result.IsValid) { return Response.AsJson(result.Errors, HttpStatusCode.BadRequest) .WithHeader("X-Status-Reason", "A validação falhou.".ToHtmlEncode()); } if (ColaboradorManager.Update(colaborador)) { return Response.AsJson("Redirecionando para a página do colaborador", HttpStatusCode.Accepted) .WithHeader("Location", string.Format("/colaboradores/{0}", colaborador.Id)); } return Response.AsJson("Ocorreu um erro ao atualizar o colaborador.") .WithHeader("X-Status-Reason", "Ocorreu um erro ao atualizar o colaborador."); }; this.Delete["/delete/{Id}"] = x => { Guid id = Guid.Parse(x.Id); if (ColaboradorManager.Delete(id)) { return Response.AsJson("Redirecionando para a página a lista de colaboradores.\t", HttpStatusCode.NoContent) .WithHeader("Location", string.Format("/colaboradores")); } return Response.AsJson("Ocorreu um erro ao excluir o colaborador.") .WithHeader("X-Status-Reason", "Ocorreu um erro ao excluir o colaborador."); }; }
public void SetupMocks() { _colaboradorValidator = new ColaboradorValidator(); }