예제 #1
0
        public ApplicationServiceResult <ClienteEntity> Inserir(ApplicationServiceParam <ClienteEntity> param)
        {
            if (param == null)
            {
                throw new ArgumentNullException(nameof(param));
            }

            var entity = param.DataParam;

            ApplicationServiceResult <ClienteEntity> result
                = new ApplicationServiceResult <ClienteEntity>(entity);

            try
            {
                using (var transacao = new TransactionScope())
                {
                    _clienteService.Insert(entity);

                    transacao.Complete();
                }
            }
            catch (Exception)
            {
                //Log in future

                result.AddMessage(Messages.UnexpectedError);

                //Aqui o result.Success está false
            }

            return(result);
        }
        public ApplicationServiceResult<ClienteEntity> Inserir(ApplicationServiceParam<ClienteEntity> param)
        {
            if (param == null) throw new ArgumentNullException(nameof(param));

            var entity = param.DataParam;

            ApplicationServiceResult<ClienteEntity> result
                 = new ApplicationServiceResult<ClienteEntity>(entity);
            try
            {
                using (var transacao = new TransactionScope())
                {
                    

                    _clienteService.Insert(entity);

                    transacao.Complete();
                }
            }
            catch (Exception)
            {
                //Log in future

                result.AddMessage(Messages.UnexpectedError);

                //Aqui o result.Success está false
            }

            return result;
        }
예제 #3
0
        public virtual ApplicationServiceResult <TDTO> Find(Guid keyValues)
        {
            ApplicationServiceResult <TDTO> serviceResult = new ApplicationServiceResult <TDTO>();

            try
            {
                TEntity result = _repository.Get(keyValues);
                if (result != null)
                {
                    serviceResult.Result = result.ProjectedAs <TDTO>();
                }
            }
            catch (Exception error)
            {
                serviceResult.Errors = new string[] { error.Message };
            }
            return(serviceResult);
        }
예제 #4
0
        public virtual ApplicationServiceResult <bool> Delete(TDTO entity)
        {
            ApplicationServiceResult <bool> applicationServiceResult = new ApplicationServiceResult <bool>();

            try
            {
                var materializeEntity = entity.ProjectedAs <TEntity>();
                this._repository.Remove(materializeEntity);
                this._repository.UnitOfWork.Commit();
                applicationServiceResult.Result = true;
            }
            catch (Exception error)
            {
                this._repository.UnitOfWork.RollbackChanges();
                applicationServiceResult.Errors = new string[] { error.Message };
            }
            return(applicationServiceResult);
        }
예제 #5
0
        public virtual ApplicationServiceResult <bool> Delete(Guid id)
        {
            ApplicationServiceResult <bool> applicationServiceResult = new ApplicationServiceResult <bool>();

            try
            {
                var entity = _repository.Get(id);
                this._repository.Remove(entity);
                this._repository.UnitOfWork.Commit();
                applicationServiceResult.Result = true;
            }
            catch (Exception error)
            {
                this._repository.UnitOfWork.RollbackChanges();
                applicationServiceResult.Errors = new string[] { error.Message };
            }
            return(applicationServiceResult);
        }
예제 #6
0
        public virtual ApplicationServiceResult <TDTO> Add(TDTO entity)
        {
            ApplicationServiceResult <TDTO> serviceResult = new ApplicationServiceResult <TDTO>();

            try
            {
                TEntity materializeEntity = entity.ProjectedAs <TEntity>();
                materializeEntity.GenerateNewIdentity();
                _repository.Add(materializeEntity);
                _repository.UnitOfWork.Commit();
                serviceResult.Result = materializeEntity.ProjectedAs <TDTO>(entity);
            }
            catch (Exception error)
            {
                serviceResult.Errors = new string[] { error.Message };
                _repository.UnitOfWork.RollbackChanges();
            }
            return(serviceResult);
        }
예제 #7
0
        public ApplicationServiceResult <IEnumerable <TDTO> > GetAll()
        {
            ApplicationServiceResult <IEnumerable <TDTO> > applicationServiceResult = new ApplicationServiceResult <IEnumerable <TDTO> >();

            try
            {
                var result = this._repository.GetAll();
                if (result != null)
                {
                    applicationServiceResult.Result = result.ProjectedAsCollection <TDTO>();
                }
            }
            catch (Exception error)
            {
                this._repository.UnitOfWork.RollbackChanges();
                applicationServiceResult.Errors = new string[] { error.Message };
            }
            return(applicationServiceResult);
        }
예제 #8
0
        public virtual ApplicationServiceResult <IEnumerable <TDTO> > Search(Expression <Func <TEntity, bool> > query)
        {
            ApplicationServiceResult <IEnumerable <TDTO> > applicationServiceResult = new ApplicationServiceResult <IEnumerable <TDTO> >();

            try
            {
                var result = _repository.GetFiltered(query);
                if (result != null)
                {
                    applicationServiceResult.Result = result.ProjectedAsCollection <TDTO>();
                }
            }
            catch (Exception error)
            {
                this._repository.UnitOfWork.RollbackChanges();
                applicationServiceResult.Errors = new string[] { error.Message };
            }
            return(applicationServiceResult);
        }
예제 #9
0
        public virtual ApplicationServiceResult <bool> Update(TDTO entity)
        {
            ApplicationServiceResult <bool> applicationServiceResult = new ApplicationServiceResult <bool>();

            try
            {
                TEntity tempEntity = entity.ProjectedAs <TEntity>();
                var     dbEntity   = this._repository.Get(tempEntity.Id);
                this._repository.Merge(dbEntity, tempEntity);
                this._repository.UnitOfWork.Commit();
                applicationServiceResult.Result = true;
            }
            catch (Exception error)
            {
                this._repository.UnitOfWork.RollbackChanges();
                applicationServiceResult.Errors = new string[] { error.Message };
            }
            return(applicationServiceResult);
        }
예제 #10
0
        public virtual async Task <ApplicationServiceResult <TDTO> > AddAsync(TDTO entity)
        {
            ApplicationServiceResult <TDTO> applicationServiceResult = new ApplicationServiceResult <TDTO>();

            try
            {
                TEntity materializeEntity = entity.ProjectedAs <TEntity>();
                materializeEntity.GenerateNewIdentity();
                _repository.Add(materializeEntity);
                await _repository.UnitOfWork.CommitAsync();

                entity = materializeEntity.ProjectedAs <TDTO>(entity);
                applicationServiceResult.Result = entity;
            }
            catch (Exception error)
            {
                this._repository.UnitOfWork.RollbackChanges();
                applicationServiceResult.Errors = new string[] { error.Message };
            }
            return(applicationServiceResult);
        }
예제 #11
0
        public virtual async Task <ApplicationServiceResult <IEnumerable <TDTO> > > AddRangeAsync(IEnumerable <TDTO> entities)
        {
            ApplicationServiceResult <IEnumerable <TDTO> > serviceResult = new ApplicationServiceResult <IEnumerable <TDTO> >();

            try
            {
                foreach (TDTO entity in entities)
                {
                    TEntity materializeEntity = entity.ProjectedAs <TEntity>();
                    materializeEntity.GenerateNewIdentity();
                    _repository.Add(materializeEntity);
                    materializeEntity.ProjectedAs <TDTO>(entity);
                }
                await _repository.UnitOfWork.CommitAsync();

                serviceResult.Result = entities;
            }
            catch (Exception error)
            {
                serviceResult.Errors = new string[] { error.Message };
                _repository.UnitOfWork.RollbackChanges();
            }
            return(serviceResult);
        }