示例#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"));
        }
示例#2
0
        public ActionResult CreateTargetUserPreference([FromBody] CreateUserPreferencePayload preferencePayload,
                                                       bool allowUpdate = false)
        {
            try
            {
                if (!preferencePayload.TargetUserUID.HasValue)
                {
                    logger.LogError("Target UserUID has not been provided");
                    return(BadRequest("Target UserUID has not been provided"));
                }

                return(DoUpsert(preferencePayload, allowUpdate));
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message + ex.StackTrace);
                return(StatusCode(500));
            }
        }