示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
        // 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);
        }