예제 #1
0
        public async Task <ActionResult> Nuevo([DataSourceRequest] DataSourceRequest request, CategoriaModel model)
        {
            DataSourceResult result = new[] { model }.ToDataSourceResult(request, ModelState);;

            if (ModelState.IsValid)
            {
                try
                {
                    ICategoriasServicio srv   = Servicios.CategoriasServicio();
                    Categoria           nuevo = srv.Create();
                    model.ActualizarEntidad(nuevo);
                    srv.Insert(nuevo);
                    await srv.ApplyChangesAsync();

                    result = new[] { CategoriaModel.FromEntity(nuevo) }.ToDataSourceResult(request, ModelState);
                }
                catch (CategoriaExisteException cee)
                {
                    log.Error($"Error al añadir {Txt.Categorias.ArtEntidad}. Usuario: {CurrentUserID()}", cee);
                    result.Errors = new[] { string.Format(Txt.ErroresComunes.Modificar + cee.Message, Txt.Categorias.ArtEntidad).Frase() };
                }
                catch (Exception e)
                {
                    log.Error("Error al añadir el categoría " + model.Nombre, e);
                    result.Errors = new[] { string.Format(Txt.ErroresComunes.Aniadir, Txt.Categorias.ArtEntidad).Frase() };
                }
            }
            return(Json(result));
        }