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); }
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); }
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); }