Example #1
0
        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));
        }
Example #2
0
        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));
        }