示例#1
0
        public override bool Validar()
        {
            ValidationResult result = new CursoValidator().Validate(CursoActual);

            if (!result.IsValid)
            {
                string notificacion = string.Join(Environment.NewLine, result.Errors);
                MessageBox.Show(notificacion);
                return(false);
            }
            return(true);
        }
        public PadraoResult <Curso> CadastrarCurso(Curso curso)
        {
            var validator = new CursoValidator();
            var valida    = validator.Valida(curso);
            var result    = new PadraoResult <Curso>();

            if (!valida.IsValid)
            {
                result.Error   = true;
                result.Message = valida.Erros;
                result.Status  = HttpStatusCode.BadRequest;
                return(result);
            }

            try
            {
                using (db)
                {
                    foreach (var item in db.Cursos)
                    {
                        if (item.Nome == curso.Nome)
                        {
                            result.Error = true;
                            result.Message.Add($"O nome {curso.Nome} já esta cadastrado");
                            result.Status = HttpStatusCode.BadRequest;
                            return(result);
                        }
                    }

                    db.Cursos.Add(curso);
                    db.SaveChanges();
                    result.Error  = false;
                    result.Status = HttpStatusCode.OK;
                    result.Data   = db.Cursos.ToList();
                    return(result);
                }
            }
            catch (Exception e)
            {
                result.Error = true;
                result.Message.Add(e.Message);
                return(result);
            }
        }
示例#3
0
        /// <summary>
        /// Inicia uma nova instância da classe <see cref="GestUAB.Modules.CursoModule"/> class.
        /// </summary>
        public CursoModule()
            : base("/cursos")
        {
            this.Get["/"] = _ =>
            {
                return View["index", CursoManager.GetAll()];
            };

            this.Get["/{Id}"] = x =>
            {
                Guid id = Guid.Parse(x.Id);
                var m = CursoManager.Get(id);
                if (m == null)
                {
                    return new NotFoundResponse();
                }

                return View["show", m];
            };

            this.Get["/new"] = x =>
            {
                return View["new", new Curso()];
            };

            this.Post["/new"] = x =>
            {
                var curso = this.Bind<Curso>();
                var result = new CursoValidator().Validate(curso);
                if (!result.IsValid)
                {
                    return Response.AsJson(result.Errors)
                        .WithStatusCode(HttpStatusCode.BadRequest)
                            .WithHeader("X-Status-Reason", "A validação falhou.".ToHtmlEncode());
                }
                curso.Setor = SetorManager.Get(Guid.Parse(Request.Form["Setor"]));
                CursoManager.Insert(curso);
                return Response.AsJson("Redirecionando para a página do curso", HttpStatusCode.Created)
                .WithHeader("Location", string.Format("/cursos/{0}", curso.Id));
            };

            this.Get["/edit/{Id}"] = x =>
            {
                Guid id = Guid.Parse(x.Id);
                var curso = CursoManager.Get(id);
                if (curso == null)
                {
                    return new NotFoundResponse();
                }

                return View["edit", curso];
            };

            this.Put["/edit/{Id}"] = x =>
            {
                var curso = this.Bind<Curso>();
                var result = new CursoValidator().Validate(curso, ruleSet: "Update");
                if (!result.IsValid)
                {
                    return Response.AsJson(result.Errors, HttpStatusCode.BadRequest)
                        .WithHeader("X-Status-Reason", "A validação falhou.".ToHtmlEncode());
                }

                if (CursoManager.Update(curso))
                {
                    return Response.AsJson("Redirecionando para a página do curso", HttpStatusCode.Accepted)
                        .WithHeader("Location", string.Format("/cursos/{0}", curso.Id));
                }

                return Response.AsJson("Ocorreu um erro ao atualizar o curso.")
                .WithHeader("X-Status-Reason", "Ocorreu um erro ao atualizar o curso.");
            };

            this.Delete["/delete/{Id}"] = x =>
            {
                Guid id = Guid.Parse(x.Id);
                if (CursoManager.Delete(id))
                {
                    return Response.AsJson("Redirecionando para a página a lista de cursos.\t", HttpStatusCode.NoContent)
                        .WithHeader("Location", string.Format("/cursos"));
                }

                return Response.AsJson("Ocorreu um erro ao excluir o curso.")
                .WithHeader("X-Status-Reason", "Ocorreu um erro ao excluir o curso.");
            };
        }