/// <summary> /// Elimina una determinada entidad Persona. /// </summary> /// <param name="id"> /// Identificador de la entidad que se va a eliminar. /// </param> /// <returns> /// Es <b>true</b> si la eliminación ha sido correcta; en caso contrario <b>false</b>. /// </returns> public bool Delete(int id) { IPersonaRepository repo = ApplicationLayer.IocContainer.Resolve <IPersonaRepository>(); IEnumerable <Persona> results = repo.GetFilteredElements(u => u.Id == id); Persona persona2Delete = results.First(); if (!persona2Delete.CanBeDeleted()) { return(false); } repo.Remove(persona2Delete); this.Commit(); return(true); }
/// <summary> /// Recupera una entidad Persona mediante su identificador correspondiente. /// </summary> /// <param name="entityBId"> /// Identificador de la entidad que se va a recuperar. /// </param> /// <returns> /// La entidad Persona recuperada o valor nulo si no se encuentra. /// </returns> public PersonaDto GetById(Int32 entityBId) { // Variable de respuesta. PersonaDto entityDto = null; try { IPersonaRepository repo = ApplicationLayer.IocContainer.Resolve <IPersonaRepository>(); // Obtener y comprobar la entidad. //ISpecification<Persona> spec = new DirectSpecification<Persona>(t => t.Id == entityBId); var temp = repo.GetFilteredElements(t => t.Id == entityBId); //string s = string.Format(Inflexion2.Resources.NoDataById, "Persona", entityBId); //Guard.ArgumentIsNotNull( entity, s ); if (temp.Count() > 0) { Persona entity = temp.Single(); // Mapeamos los datos. entityDto = this.PersonaMapper.EntityMapping(entity); } } catch (Exception ex) { throw ex; } finally { // Confirmamos la transacción. this.Commit(); } // Devolvemos el resultado. return(entityDto); }
// ServiceUpdateMethod.tt /// <summary> /// Actualiza una determinada entidad Persona. /// </summary> /// <param name="personaDto"> /// 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(PersonaDto personaDto) { #region preconditions // Comprobar el DTO de entrada. Guard.ArgumentIsNotNull( personaDto, string.Format( FrameworkResource.DataTransferObjectIsNull, "Persona")); // en una actualización no comprobamos los campos mandatory. #endregion try { // Creamos el repositorio de la entidad. IPersonaRepository repo = ApplicationLayer.IocContainer.Resolve <IPersonaRepository>(); // Obtener y comprobar validez de la inserción a modificar. Persona entity2Update = repo.GetFilteredElements(t => t.Id == personaDto.Id).Single(); Guard.ArgumentIsNotNull( entity2Update, string.Format( FrameworkResource.CanNotUpdateInexistenceEntity, "Persona")); // Comprobar duplicidades; // Actualización de la entidad. // Datos mandatory entity2Update.Nombre = personaDto.Nombre; // asignación de Datos no mandatory con ciclo de vida variable, no se incluyen aquellas propiedaes constantes o derivadas entity2Update.BooleanField = personaDto.BooleanField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.DatetimeField = personaDto.DatetimeField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.ByteField = personaDto.ByteField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.GuidField = personaDto.GuidField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.DecimalField = personaDto.DecimalField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.DobleField = personaDto.DobleField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.FloatField = personaDto.FloatField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.IntField = personaDto.IntField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.LongField = personaDto.LongField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.DateTimeOffsetField = personaDto.DateTimeOffsetField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.ShortField = personaDto.ShortField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.TimeSpanField = personaDto.TimeSpanField; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.Int16Field = personaDto.Int16Field; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.Int32Field = personaDto.Int32Field; // property.AutoProperty = True; property.OnlyGetProperty = False entity2Update.Int64Field = personaDto.Int64Field; // 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); }