public bool?CreatePreferenceKey(CreatePreferenceKeyEvent preferenceKey) { if (GetPreferenceKey(preferenceKey.PreferenceKeyUID) != null || GetPreferenceKey(null, preferenceKey.PreferenceKeyName) != null) { return(null); } var currentUtc = DateTime.UtcNow; var createPreferenceKey = new DbPreferenceKey() { PreferenceKeyName = preferenceKey.PreferenceKeyName, PreferenceKeyUID = preferenceKey.PreferenceKeyUID.Value, InsertUTC = currentUtc, UpdateUTC = currentUtc }; var kafkaMessage = new KafkaMessage() { Key = preferenceKey.PreferenceKeyUID.ToString(), Message = new { CreateUserPreferenceKeyEvent = preferenceKey } }; var actions = new List <Action>(); actions.Add(() => transaction.Upsert <DbPreferenceKey>(createPreferenceKey)); actions.Add(() => topics.ToList().ForEach(topic => { kafkaMessage.Topic = topic; transaction.Publish(kafkaMessage); })); return(transaction.Execute(actions)); }
public bool?UpdatePreferenceKey(UpdatePreferenceKeyEvent preferenceKey) { var preference = GetPreferenceKey(preferenceKey.PreferenceKeyUID); if (preference == null) { return(null); } if (GetPreferenceKey(null, preferenceKey.PreferenceKeyName) != null) { throw new Exception("PreferenceKey Name Already Exist"); } var updatePreferenceKey = new DbPreferenceKey() { PreferenceKeyName = preferenceKey.PreferenceKeyName, PreferenceKeyUID = preferenceKey.PreferenceKeyUID.Value, UpdateUTC = DateTime.UtcNow }; var kafkaMessage = new KafkaMessage() { Key = preferenceKey.PreferenceKeyUID.ToString(), Message = new { UpdateUserPreferenceKeyEvent = preferenceKey } }; var actions = new List <Action>(); actions.Add(() => transaction.Upsert <DbPreferenceKey>(updatePreferenceKey)); actions.Add(() => topics.ToList().ForEach(topic => { kafkaMessage.Topic = topic; transaction.Publish(kafkaMessage); })); return(transaction.Execute(actions)); }