public Guid Add(AddMessageTemplate model) { var validationResult = _messageTemplateQueries.GetValidationResult(model); if (!validationResult.IsValid) { throw new RegoValidationException(validationResult); } using (var scope = CustomTransactionScope.GetTransactionScope()) { var messageTemplate = Mapper.Map <MessageTemplate>(model); messageTemplate.Brand = _messagingRepository.Brands.Single(x => x.Id == model.BrandId); messageTemplate.Language = _messagingRepository.Languages.Single(x => x.Code == model.LanguageCode); messageTemplate.Created = DateTimeOffset.Now.ToBrandOffset(messageTemplate.Brand.TimezoneId); messageTemplate.CreatedBy = _actorInfoProvider.Actor.UserName; _messagingRepository.MessageTemplates.Add(messageTemplate); _messagingRepository.SaveChanges(); _eventBus.Publish(new MessageTemplateAddedEvent(Mapper.Map <Interface.Data.MessageTemplate>(messageTemplate)) { EventCreated = DateTimeOffset.Now.ToBrandOffset(messageTemplate.Brand.TimezoneId), }); scope.Complete(); return(messageTemplate.Id); } }
private void PopulateRepositoriesWhichNeedANewlyCreatedPaymentLevel( PaymentLevel paymentLevel, Guid paymentLevelId, string paymentLevelCode) { //Populate Payment repository _paymentRepository.PaymentLevels.Add(paymentLevel); _paymentRepository.SaveChanges(); //Populate Messaging repository _messagingRepository.PaymentLevels.Add(new Core.Messaging.Data.PaymentLevel() { Id = paymentLevelId, Name = "PaymentLevel-Messaging-" + paymentLevelCode }); _messagingRepository.SaveChanges(); }
public UpdateRecipientsResponse UpdateRecipients(UpdateRecipientsRequest request) { var validationResult = _massMessageQueries.GetValidationResult(request); if (!validationResult.IsValid) { throw new RegoValidationException(validationResult); } using (var scope = CustomTransactionScope.GetTransactionScope()) { if (!request.Id.HasValue) { DeleteUnsentMassMessages(); } MassMessage massMessage; if (request.Id.HasValue) { massMessage = _messagingRepository.MassMessages .Include(x => x.Recipients.Select(y => y.Language)) .Single(x => x.Id == request.Id); } else { massMessage = new MassMessage { Id = Guid.NewGuid(), AdminId = _actorInfoProvider.Actor.Id }; _messagingRepository.MassMessages.Add(massMessage); } massMessage.IpAddress = request.IpAddress; if (request.UpdateRecipientsType == UpdateRecipientsType.SelectSingle) { massMessage.Recipients.Add(_messagingRepository.Players .Include(x => x.Language) .Single(x => x.Id == request.PlayerId)); } else if (request.UpdateRecipientsType == UpdateRecipientsType.UnselectSingle) { massMessage.Recipients.Remove(massMessage.Recipients.Single(x => x.Id == request.PlayerId)); } else if (request.UpdateRecipientsType == UpdateRecipientsType.RecipientsListUnselectAll) { massMessage.Recipients.Clear(); } else { var playerIds = _massMessageQueries.CreateMassMessagePlayerQuery(request.SearchPlayersRequest) .Select(x => x.Id); if (request.UpdateRecipientsType == UpdateRecipientsType.SearchResultSelectAll) { var players = _messagingRepository.Players .Include(x => x.Language) .Where(x => playerIds.Contains(x.Id)); foreach (var player in players) { massMessage.Recipients.Add(player); } } else { var recipients = massMessage.Recipients.Where(x => playerIds.Contains(x.Id)).ToArray(); foreach (var recipient in recipients) { massMessage.Recipients.Remove(recipient); } } } _messagingRepository.SaveChanges(); scope.Complete(); IEnumerable <Interface.Data.Language> languages = null; if (massMessage.Recipients.Any()) { var languageEntities = massMessage.Recipients.GroupBy(x => x.LanguageCode).Select(x => x.First().Language); languages = Mapper.Map <List <Interface.Data.Language> >(languageEntities); } return(new UpdateRecipientsResponse { Id = massMessage.Id, HasRecipients = massMessage.Recipients.Any(), Languages = languages }); } }
public void Consume(LanguageCreated message) { _repository.Languages.Add(new Language { Code = message.Code, Name = message.Name }); _repository.SaveChanges(); }