public async Task <Guid> Handle(CreateEventCommand request, CancellationToken cancellationToken)
        {
            var validator        = new CreateEventCommandValidator(_eventRepository);
            var validationResult = await validator.ValidateAsync(request);

            if (validationResult.Errors.Count > 0)
            {
                throw new Exceptions.ValidationException(validationResult);
            }

            var @event = _mapper.Map <Event>(request);

            @event = await _eventRepository.AddAsync(@event);

            //Sending email notification to admin address
            var email = new Email()
            {
                To = "*****@*****.**", Body = $"A new event was created: {request}", Subject = "A new event was created"
            };

            try
            {
                await _emailService.SendEmail(email);
            }
            catch (Exception ex)
            {
                //this shouldn't stop the API from doing else so this can be logged
                _logger.LogError($"Mailing about event {@event.EventId} failed due to an error with the mail service: {ex.Message}");
            }

            return(@event.EventId);
        }
        public async Task <Guid> Handle(CreateEventCommand request, CancellationToken cancellationToken)
        {
            var validator        = new CreateEventCommandValidator();
            var validationResult = await validator.ValidateAsync(request);

            if (validationResult.Errors.Count > 0)
            {
                throw new Exceptions.ValidationException(validationResult);
            }

            var @event = _mapper.Map <Event>(request);

            @event = await _eventRepository.AddAsync(@event);

            var email = new Email()
            {
                To      = "*****@*****.**",
                Body    = $"A new event was created: {request}",
                Subject = "A new event was created"
            };

            try
            {
                await _emailService.SendEmail(email);
            }
            catch (Exception ex)
            {
                _logger.LogError($"Mailing about event {@event.EventId} failed due to an error with the mail service: {ex.Message}");
            }

            return(@event.EventId);
        }
Example #3
0
        public async Task <Guid> Handle(CreateEventCommand request, CancellationToken cancellationToken)
        {
            var validator        = new CreateEventCommandValidator(_eventRepository);
            var validationResult = await validator.ValidateAsync(request);

            if (validationResult.Errors.Count > 0)
            {
                throw new ValidationException(validationResult);
            }

            var @event = _mapper.Map <Event>(request);

            @event = await _eventRepository.AddAsync(@event);

            var email = new Email()
            {
                To      = "*****@*****.**", Body = $"A new event was created: {request}",
                Subject = "A new event was created"
            };

            try
            {
                await _emailService.SendEmail(email);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            return(@event.EventId);
        }