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")); }
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)); } }