public static UserSetting Find(int id) { var cached = ModelCache.Get("User", id); if (cached != null) { return((UserSetting)cached); } var item = UserSetting.Find(id); ModelCache.Store("User", item.id, item); return(UserSetting.Find(id)); }
public MySettingsController() { Get("/api/v1/me/setting/get", _ => { var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "key" }), }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } var settingKey = GetRequestStr("key"); if (!AllowedValues.GetAllowed().ContainsKey(settingKey)) { new HttpError(HttpStatusCode.UnprocessableEntity, "This setting key is not allowed"); } var me = UserRepository.Find(CurrentRequest.UserId); var setting = UserSetting.Find(me, settingKey); setting ??= UserSettingRepository.SetSetting(me, settingKey, ""); return(HttpResponse.Item("setting", new UserSettingTransformer().Transform(setting))); }); Get("/api/v1/me/settings/get", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var settings = UserSettingRepository.Get(me); return(HttpResponse.Item("settings", new UserSettingTransformer().Many(settings))); }); Patch("/api/v1/me/setting/set", _ => { var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "key", "value" }), }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } var settingKey = GetRequestStr("key"); if (!AllowedValues.GetAllowed().ContainsKey(settingKey)) { return(HttpResponse.Error( new HttpError(HttpStatusCode.UnprocessableEntity, "This setting key is not allowed") )); } var settingValue = GetRequestStr("value"); if ( AllowedValues.GetAllowed()[settingKey] != null && !AllowedValues.GetAllowed()[settingKey].Contains(settingValue) ) { return(HttpResponse.Error(new HttpError(HttpStatusCode.Forbidden, "This setting value is not allowed"))); } var me = UserRepository.Find(CurrentRequest.UserId); var setting = UserSettingRepository.SetSetting( me, settingKey, GetRequestStr("value") ); return(HttpResponse.Item("setting", new UserSettingTransformer().Transform(setting))); }); }
public static UserSetting Find(Model.User.User user, string key) { return(UserSetting.Find(user, key)); }