Пример #1
0
        public void TestCreateUserPreference_ValidInput_True()
        {
            //Arrange
            CreateUserPreferenceEvent createUser = new CreateUserPreferenceEvent()
            {
                PreferenceKeyUID  = new Guid("2ccfe195-81ec-4aed-ba31-fc7d794cb75f"),
                UserUID           = new Guid("85293f9c-b713-4e95-a5ed-b36beb2c4aa2"),
                PreferenceKeyName = "Key",
                PreferenceJson    = "Json",
                SchemaVersion     = "v1",
                ActionUTC         = DateTime.UtcNow
            };

            transaction.Get <PreferenceKeyDto>(Arg.Any <string>()).Returns(x => { return(new List <PreferenceKeyDto>()
                {
                    new PreferenceKeyDto()
                    {
                        PreferenceKeyID = 10, PreferenceKeyName = "Key", PreferenceKeyUID = createUser.PreferenceKeyUID.Value
                    }
                }); });

            //Act
            bool?result = preferenceService.CreateUserPreference(createUser);

            //Assert
            Assert.True(result);
            transaction.Received(1).Upsert <DbUserPreference>(Arg.Is <DbUserPreference>(x => x.fk_UserUID == createUser.UserUID));
            transaction.Received(1).Publish(Arg.Is <KafkaMessage>(x => x.Key == createUser.UserUID.ToString()));
            transaction.Received(1).Execute(Arg.Any <List <Action> >());
        }
Пример #2
0
        private ActionResult DoUpsert(CreateUserPreferencePayload preferencePayload, bool allowUpdate)
        {
            var isExist = _preferenceService.DoesUserPreferenceExist(preferencePayload.TargetUserUID.Value,
                                                                     preferencePayload.PreferenceKeyUID, preferencePayload.PreferenceKeyName);

            if (allowUpdate && isExist)
            {
                var userPreferenceEvent = new UpdateUserPreferenceEvent
                {
                    PreferenceKeyUID  = preferencePayload.PreferenceKeyUID,
                    PreferenceKeyName = preferencePayload.PreferenceKeyName,
                    PreferenceJson    = preferencePayload.PreferenceJson,
                    UserUID           = preferencePayload.TargetUserUID,
                    SchemaVersion     = preferencePayload.SchemaVersion,
                    ActionUTC         = preferencePayload.ActionUTC.Value
                };
                var updateResult = PerformUpdateUserPreference(userPreferenceEvent);
                return(updateResult);
            }
            else if (isExist == true && allowUpdate == false)
            {
                logger.LogError("UserPreference already exist");
                return(BadRequest("UserPreference already exist"));
            }

            #region Create UserPreference

            if (!isExist)
            {
                var preferenceEvent = new CreateUserPreferenceEvent
                {
                    PreferenceKeyUID  = preferencePayload.PreferenceKeyUID,
                    PreferenceKeyName = preferencePayload.PreferenceKeyName,
                    PreferenceJson    = preferencePayload.PreferenceJson,
                    UserUID           = preferencePayload.TargetUserUID,
                    SchemaVersion     = preferencePayload.SchemaVersion,
                    ActionUTC         = preferencePayload.ActionUTC.Value
                };
                bool?isSuccess = _preferenceService.CreateUserPreference(preferenceEvent);
                if (isSuccess.HasValue && isSuccess.Value)
                {
                    return(Ok());
                }
                else if (isSuccess == null)
                {
                    logger.LogError("PreferenceKey does not Exist");
                    return(BadRequest("PreferenceKey does not Exist"));
                }
            }

            #endregion

            logger.LogError("Unable to save row to database");
            return(BadRequest("Unable to save row to database"));
        }