Example #1
0
        public Cuenta AddChild(string numero, Moneda moneda, BalanceTypeEnum balance, string nombre, ICuentaFormatProvider formatProvider)
        {
            if (!formatProvider.IsValid(numero))
            {
                throw new NumeroCuentaNoValidaException(numero, nameof(numero));
            }

            numero = formatProvider.RemoveFormat(numero);

            if (formatProvider.GetLevelOf(numero) != (formatProvider.GetLevelOf(Id) + 1))
            {
                throw new NumeroCuentaNoHijaException(numero, Id);
            }

            var cuenta = new Cuenta(numero, Id, Tipo, moneda, balance)
            {
                Nombre = nombre,
                Level  = this.Level + 1
            };

            Children.Add(cuenta);
            HasChildren = true;

            return(cuenta);
        }
Example #2
0
        private string CheckNumero(string numero, string paramName)
        {
            if (!formatProvider.IsValid(numero))
            {
                throw new NumeroCuentaNoValidaException(numero, paramName);
            }

            return(formatProvider.RemoveFormat(numero));
        }
Example #3
0
        public async Task <PagedResultDto <CuentaDto> > GetListAsync(CuentaSearchInput input)
        {
            if (input.Sorting.IsNullOrWhiteSpace())
            {
                input.Sorting = nameof(Cuenta.Id);
            }

            var searchTerm = _cuentaFormatProvider.RemoveFormat(input.Filter);

            var repository = await cuentasRepository.GetQueryableAsync();

            var result = await repository.WhereIf(!string.IsNullOrWhiteSpace(input.Filter),
                                                  cuenta => cuenta.Id.Contains(searchTerm) ||
                                                  cuenta.Nombre.Contains(searchTerm))
                         .OrderBy(input.Sorting)
                         .Skip(input.SkipCount)
                         .Take(input.MaxResultCount)
                         .ToListAsync();

            return(new PagedResultDto <CuentaDto>(result.Count, ObjectMapper.Map <List <Cuenta>, List <CuentaDto> >(result)));
        }