// ServiceUpdateMethod.tt /// <summary> /// Actualiza una determinada entidad Categoria. /// </summary> /// <param name="categoriaDto"> /// DTO que contiene la información de la entidad que se va a actualizar. /// </param> /// <returns> /// Es <b>true</b> si la actualización ha sido correcta; en caso contrario <b>false</b>. /// </returns> public bool Update(CategoriaDto categoriaDto) { #region preconditions // Comprobar el DTO de entrada. Guard.ArgumentIsNotNull( categoriaDto, string.Format( FrameworkResource.DataTransferObjectIsNull, "Categoria")); // en una actualización no comprobamos los campos mandatory. #endregion try { // Creamos el repositorio de la entidad. ICategoriaRepository repo = ApplicationLayer.IocContainer.Resolve <ICategoriaRepository>(); // Obtener y comprobar validez de la inserción a modificar. Categoria entity2Update = repo.GetFilteredElements(t => t.Id == categoriaDto.Id).Single(); Guard.ArgumentIsNotNull( entity2Update, string.Format( FrameworkResource.CanNotUpdateInexistenceEntity, "Categoria")); // Comprobar duplicidades; // Actualización de la entidad. // Datos mandatory // asignación de Datos no mandatory con ciclo de vida variable, no se incluyen aquellas propiedaes constantes o derivadas entity2Update.Name = categoriaDto.Name; // property.AutoProperty = True; property.OnlyGetProperty = False // igualmente hemos de mapear las entidades emparentadas. if (!entity2Update.CanBeSaved()) { return(false); } repo.Modify(entity2Update); // Confirmamos la transacción. this.Commit(); } catch (Exception ex) { throw ex; } // Devolvemos el resultado. return(true); }