예제 #1
0
        //EntityADto GetById(Int32 entityAId, UserContextDto userContextDto);
        public EntityBDto GetById(Int32 entityBId)
        {
            // Variable de respuesta.
            EntityBDto entityDto = null;

            try
            {
                IEntityBRepository repo = this.unityContainer.Resolve <IEntityBRepository>();

                // Obtener y comprobar la entidad.
                //ISpecification<EntityB> spec = new DirectSpecification<EntityB>(t => t.Id == entityBId);
                EntityB entity = repo.GetFilteredElements(t => t.Id == entityBId).Single();
                string  s      = string.Format(Inflexion2.Resources.Framework.NoDataById, "Entity B", entityBId);
                if (s == null)
                {
                    s = "";
                }
                Guard.ArgumentIsNotNull(entity, s);

                // Mapeamos los datos.
                entityDto = this.EntityBMapper.EntityMapping(entity);

                // Confirmamos la transacción.
                this.Commit();
            }
            catch (Exception ex)
            {
                // Escribimos en el Log.
                logger.Error(ex.Message, ex);
                throw ex;
            }

            // Devolvemos el resultado.
            return(entityDto);
        }
예제 #2
0
        //bool Update(EntityADto entity1Dto, UserContextDto userContextDto);
        public bool Update(EntityBDto entityBDto)
        {
            #region preconditions
            // Comprobar el DTO de entrada.
            Guard.ArgumentIsNotNull(
                entityBDto,
                string.Format(
                    Inflexion2.Resources.Framework.DataTransferObjectIsNull,
                    "Entity B"));
            // comprobamos los campos mandatory ¿EN UNA ACTUALIZACIÓN TAMBIEN?
            Guard.ArgumentNotNullOrEmpty(
                entityBDto.Name,
                string.Format(
                    Inflexion2.Resources.Framework.PropertyRequired,
                    "Entity B"));
            #endregion

            try
            {
                IEntityBRepository repo = this.unityContainer.Resolve <IEntityBRepository>();

                // Obtener y comprobar la entidad.
                //ISpecification<EntityB> spec = new DirectSpecification<EntityB>(t => t.Id == entityBDto.Id);
                EntityB entity2Update = repo.GetFilteredElements(t => t.Id == entityBDto.Id).Single();
                Guard.ArgumentIsNotNull(
                    entity2Update,
                    string.Format(
                        Inflexion2.Resources.Framework.CanNotUpdateInexistenceEntity,
                        "Entity B"));
                // Mapeamos los datos, teniendo encuenta que el id lo hemos recuperado y comprobado
                // ademas comprobamos que valores han sido modificados
                if (entity2Update.Name != entityBDto.Name)
                {
                    entity2Update.Name = entityBDto.Name;
                    // opcion a trazar las modificaciones
                }
                // igualmente hemos de mapear las entidades emparentadas.
                if (!entity2Update.CanBeSaved())
                {
                    return(false);
                }
                repo.Modify(entity2Update);

                // Confirmamos la transacción.
                this.Commit();
            }
            catch (Exception ex)
            {
                // Escribimos en el Log.
                //logger.Error(ex.Message, ex);
                throw ex;
            }

            // Devolvemos el resultado.
            return(true);
        }
예제 #3
0
        //bool Delete(Int32 Entity1Id, UserContextDto userContextDto);// invocacion con identificación de usuario
        public bool Delete(Int32 EntityBId)
        {
            #region Preconditions

            // Comprobar el DTO de entrada.
            if (EntityBId == default(int))
            {
                return(false);
            }
            #endregion

            IEntityBRepository    repo    = this.unityContainer.Resolve <IEntityBRepository>();
            IEnumerable <EntityB> results = repo.GetFilteredElements(u => u.Id == EntityBId);
            EntityB entityB2Delete        = results.First();

            if (!entityB2Delete.CanBeDeleted())
            {
                return(false);
            }
            repo.Remove(entityB2Delete);
            this.Commit();

            return(true);
        }