Exemplo n.º 1
0
        public async Task <TEntity> Handle(TCommand request, CancellationToken cancellationToken)
        {
            var entity      = PrepareEntity(request);
            var entryResult = await Context.Set <TEntity>().AddAsync(entity);

            await Context.SaveChangesAsync();

            return(entryResult.Entity);
        }
Exemplo n.º 2
0
        public async Task <TResponse> Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate <TResponse> next)
        {
            using (var transaction = _context.BeginTransaction())
            {
                var result = await next();

                await _context.SaveChangesAsync();

                await transaction.CommitAsync();

                return(result);
            }
        }
Exemplo n.º 3
0
        public async Task <Unit> Handle(TCommand request, CancellationToken cancellationToken)
        {
            var entity = Context.Set <TEntity>().FirstOrDefault(x => x.Id == request.Id);

            if (entity == null)
            {
                throw new EntityNotFoundException();
            }

            Context.Set <TEntity>().Remove(entity);
            await Context.SaveChangesAsync();

            return(Unit.Value);
        }
        public async Task <Unit> Handle(TCommand request, CancellationToken cancellationToken)
        {
            var cityIds = request.Ids.Select(x => new TEntity()
            {
                Id = x
            });

            _context.Set <TEntity>().RemoveRange(cityIds);
            var deleted = await _context.SaveChangesAsync();

#if DEBUG
            if (deleted != request.Ids.Count)
            {
                throw new ApplicationException("delete != request.Ids.Count");
            }
#endif
            return(Unit.Value);
        }
Exemplo n.º 5
0
        public async Task <UserInfo> Register(RegisterInfo registerInfo)
        {
            var user = await _context.Users.FirstOrDefaultAsync(x => x.UserSettingInfo.Login == registerInfo.Login);

            if (user != null)
            {
                throw new UserAlreadyExistException();
            }

            PasswordHelper.CreatePasswordHash(registerInfo.Password, out var hash, out var salt);

            var settingInfo = new UserSettingInfo()
            {
                Login        = registerInfo.Login,
                PasswordHash = hash,
                PasswordSalt = salt,
            };

            var newUser = UserInfo.Create(
                registerInfo.FirstName,
                registerInfo.LastName,
                Domain.Enums.Role.User,
                settingInfo);

            using var transaction = _context.BeginTransaction();

            try
            {
                var entity = _context.Users.Add(newUser);
                await _context.SaveChangesAsync();

                await transaction.CommitAsync();

                return(entity.Entity);
            }
            catch (Exception e)
            {
                await transaction.RollbackAsync();

                throw e;
            }
        }
Exemplo n.º 6
0
        public async Task <Domain.Entities.Place> Handle(CommandUpdatePlace request, CancellationToken cancellationToken)
        {
            var mappedEntity  = _mapper.Map <Domain.Entities.Place>(request);
            var originalPlace = _context.Places
                                .Include(x => x.Dishes).ThenInclude(x => x.Image)
                                .Include(x => x.HeaderImages).ThenInclude(x => x.Image)
                                .FirstOrDefault(x => x.Id == request.Id) ?? throw new EntityNotFoundException();

            //ProcessDishes(request, originalPlace);
            //ProcessHeaderImages(request, originalPlace);

            originalPlace.CategoryId =
                mappedEntity.CategoryId != 0 ? mappedEntity.CategoryId : originalPlace.CategoryId;
            originalPlace.Name        = mappedEntity.Name ?? originalPlace.Name;
            originalPlace.PhoneNumber = mappedEntity.PhoneNumber ?? originalPlace.PhoneNumber;

            var updatedEntry = _context.Places.Update(originalPlace);

            await _context.SaveChangesAsync(cancellationToken);

            return(updatedEntry.Entity);
        }