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)); }