Ejemplo n.º 1
0
        public async Task <ResultDto <ICollection <Domain.Contact.Contact> > > GetAllAsync()
        {
            //SQLLite does not support this sort on query (decimal not native)
            //System.NotSupportedException: SQLite cannot order by expressions of type 'decimal'.
            var contacts = (await _contactRepository.GetAllAsync()).OrderBy(c => c.Sequence).ToList();
            var result   = new ResultDto <ICollection <Domain.Contact.Contact> >();

            if (!contacts.Any())
            {
                result.AddError(ErrorCodeDto.GeneralNotFound);
                return(result);
            }

            result.AddData(contacts);
            return(result);
        }
Ejemplo n.º 2
0
        public async Task <ResultDto <Domain.Contact.Contact> > UpdateAsync(CreateUpdateContactDto dto, CancellationToken cancellationToken)
        {
            var validationResult = await _createUpdateContactDtoValidator.ValidateAsync(dto, cancellationToken);

            var result = new ResultDto <Domain.Contact.Contact>(validationResult);

            if (!validationResult.IsValid)
            {
                _logger.LogWarning("Contact update validation failed: {message}", validationResult.ToString());
                return(result);
            }

            var contact = await _contactRepository.UpdateByIdFrom(dto.ContactId.GetValueOrDefault(), dto);

            await _contactRepository.UnitOfWork.SaveChangesAsync(true, cancellationToken);

            result.AddData(contact);
            return(result);
        }
Ejemplo n.º 3
0
        public async Task <ResultDto <bool> > DeleteAsync(int contactId, CancellationToken cancellationToken)
        {
            var validationResult = await _deleteContactValidator.ValidateAsync(contactId, cancellationToken);

            var result = new ResultDto <bool>(validationResult);

            if (!validationResult.IsValid)
            {
                _logger.LogWarning("Contact deletion failed: {message}", validationResult.ToString());
                return(result);
            }

            await _contactRepository.RemoveById(contactId);

            await _contactRepository.UnitOfWork.SaveChangesAsync();

            result.AddData(true);
            return(result);
        }