public async Task <ActionResult <ContactViewModel> > EditContact([FromBody] EditContactViewModel model)
        {
            if (!ModelState.IsValid)
            {
                NotifyModelStateErrors();
                return(ModelStateErrorResponseError());
            }

            var editContactCommand = _mapper.Map <EditContactCommand>(model);

            var result = await Mediator.SendCommandAsync(editContactCommand);

            if (result.Success)
            {
                await Mediator.NotifyDomainNotification(
                    DomainNotification.Success($" The contact to {model.ContactName} was edited with success !"));
            }

            var contact = await _contactRepository.GetContactById(model.ContactId);

            var returnModel = _mapper.Map <ContactViewModel>(contact);

            return(ResponsePost(
                       nameof(EditContact),
                       returnModel));
        }
        public async Task <ActionResult <ContactViewModel> > DeleteContact(Guid contactId)
        {
            var contact = await _contactRepository.GetContactById(contactId);

            if (contact == null)
            {
                NotifyError("This contact Id is invalid !");
                return(ModelStateErrorResponseError());
            }

            var deleteContactCommand = _mapper.Map <DeleteContactCommand>(contactId);

            var result = await Mediator.SendCommandAsync(deleteContactCommand);

            if (result.Success)
            {
                await Mediator.NotifyDomainNotification(
                    DomainNotification.Success($" The contact to {contact.ContactName} was excluded with success !"));
            }


            var returnModel = _mapper.Map <ContactViewModel>(contact);

            return(ResponsePost(
                       nameof(DeleteContact),
                       returnModel));
        }
Example #3
0
 private void AddErrorsDomain(DomainNotification domainNotification)
 {
     if (FilledField(domainNotification) && !ThereAreErrors(domainNotification.ErrorMessage))
     {
         _notifications.Add(domainNotification);
     }
 }
 private async Task NotificarErros(AdicionarItemPedidoCommand command)
 {
     foreach (var error in command.Validacoes.Errors)
     {
         var notification = new DomainNotification(command.MessageType, error.ErrorMessage);
         await _mediator.Publish(notification, CancellationToken.None);
     }
 }
        public void AddNotification_IsValidTest()
        {
            var notification = new DomainNotification(_telemetryClient);

            notification.AddNotification("400", "Test Notification", sendTelemetry: true);

            Assert.True(notification.HasNotifications);
        }
        public void DomainNotification_DeveAdicionarChaveEValor()
        {
            var chave = "nome";
            var valor = "Nome deve possuir conteúdo";

            var domainNotification = new DomainNotification(chave, valor);

            domainNotification.Key.Should().Be(chave);
            domainNotification.Value.Should().Be(valor);
        }
        public void AddNotificationMessage_IsValidTest()
        {
            var notification        = new DomainNotification(_telemetryClient);
            var notificationMessage = new List <NotificationMessage>
            {
                new NotificationMessage("400", "Test Notification")
            };

            notification.AddNotifications(notificationMessage, sendTelemetry: true);

            Assert.True(notification.HasNotifications);
        }
Example #8
0
        public void Handler_DeveAdicionarNotificacao()
        {
            var chave               = "nome";
            var valor               = "Nome deve possuir conteúdo";
            var notification        = new DomainNotification(chave, valor);
            var notificationHandler = new DomainNotificationHandler();

            notificationHandler.Handle(notification, CancellationToken.None);

            notificationHandler.TemNotificacao().Should().Be(true);
            notificationHandler.ObterNotificacoes().Should().HaveCount(1);
            var notificacaoLancada = notificationHandler.ObterNotificacoes().First();

            notificacaoLancada.Should().NotBeEmpty();
        }
        public async Task <CommandResponse> Handle(EditContactCommand request, CancellationToken cancellationToken)
        {
            var contact = await _contactRepository.GetByIdAsync(request.ContactId);

            if (contact == null)
            {
                await MediatorHandler.NotifyDomainNotification(DomainNotification.Fail("The Contact is invalid !"));

                return(CommandResponse.Fail());
            }

            var contactType = await _contactTypeRepository.GetByIdAsync(request.ContactTypeId);

            if (contactType == null)
            {
                await MediatorHandler.NotifyDomainNotification(DomainNotification.Fail("The Contact Type is invalid !"));

                return(CommandResponse.Fail());
            }

            contact.ChangeName(request.ContactName);

            contact.ChangeBirthDate(request.ContactBirthDate);

            contact.ChangePhoneNumber(request.ContactPhone);

            contact.ChangeContactType(contactType);

            if (!contact.IsValid())
            {
                foreach (var item in contact.ValidationResult.Errors)
                {
                    await MediatorHandler.NotifyDomainNotification(DomainNotification.Fail(item.ErrorMessage));
                }

                return(CommandResponse.Fail("Contact invalid !"));
            }

            _contactRepository.Update(contact);

            var result = await _contactRepository.CommitAsync();

            return(result.Success
                ? CommandResponse.Ok()
                : CommandResponse.Fail("Fail recording the register in database !"));
        }
Example #10
0
        public async Task <CommandResponse> Handle(CreateReservationCommand request, CancellationToken cancellationToken)
        {
            if (!request.ContactId.HasValue)
            {
                return(CommandResponse.Fail("Contact Invalid"));
            }

            var contact = await _contactRepository.GetByIdAsync(request.ContactId.Value);

            if (contact == null)
            {
                var contactCreated = CreateContact(request);
                if (contactCreated == null)
                {
                    return(CommandResponse.Fail("Contact Invalid"));
                }
                contact = contactCreated;
            }

            var reservation = new Reservation(
                id: request.ReservationId,
                message: request.Message,
                contact: contact,
                ranking: 1,
                favorited: false
                );

            if (!reservation.IsValid())
            {
                foreach (var item in reservation.ValidationResult.Errors)
                {
                    DomainNotification.Fail(item.ErrorMessage);
                }

                return(CommandResponse.Fail("Reservation invalid !"));
            }


            await _reservationRepository.AddAsync(reservation);

            var result = await _reservationRepository.CommitAsync();

            return(result.Success
                ? CommandResponse.Ok()
                : CommandResponse.Fail("Fail recording the register in database !"));
        }
Example #11
0
        public DomainNotification MapToDomainNotification()
        {
            var domainNotification = new DomainNotification(Id.ToString(),
                                                            Codigo,
                                                            Descricao);

            foreach (var solution in Solucoes)
            {
                domainNotification.AddSolution(solution.Id,
                                               solution.Description,
                                               solution.IDMessage,
                                               solution.UserID,
                                               solution.DateMessage,
                                               solution.Likes);
            }

            return(domainNotification);
        }
        public async void AddDomainNotificationError_Ok()
        {
            var faker = new Faker();

            var message = faker.Lorem.Sentence();

            var handler = new DomainNotificationHandler();

            var domainNotification = DomainNotification.Fail(message);

            await handler.Handle(domainNotification, new CancellationToken());

            var notifications = handler.GetNotificationsError();

            Assert.True(handler.HasNotificationsError());

            Assert.True(notifications.Count == 1);
        }
Example #13
0
        private Usuario CriarUsuario(UsuarioRegistrarViewModel usuarioRegistrarViewModel)
        {
            var nomeCompleto = new Nome(usuarioRegistrarViewModel.Nome);
            var banco        = _bancoRepositorio.ObterPorId(usuarioRegistrarViewModel.BancoId);

            if (banco == null)
            {
                DomainNotification.CriarNotificacao("BancoNaoEncontrado", "Não foi possível localizar o banco informado.");
                return(null);
            }

            var saldo = new Saldo(usuarioRegistrarViewModel.SaldoInicial);
            var conta = new Conta(banco, saldo);

            var usuario = new Usuario(nomeCompleto, conta);

            return(usuario);
        }
        public async void GetNotificationsError_Ok()
        {
            var faker = new Faker();

            var message = faker.Lorem.Sentence();

            var handler = new DomainNotificationHandler();

            var domainNotification = DomainNotification.Fail(message);

            await handler.Handle(domainNotification, new CancellationToken());

            var notifications = handler.GetNotificationsError();

            var result = notifications.Select(x => x.Value);


            Assert.Contains(message, result);
        }