Пример #1
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"));
        }