public Recipe GetRecipe(string token, Guid recipeGuid) { Guid userGuid = Guid.Parse(JwtCookieManager.GetUserGuid(token)); if (_recipeCache.ContainsKey(userGuid) && _recipeCache[userGuid].ContainsKey(recipeGuid)) { string file = _recipeCache[userGuid][recipeGuid]; return(JsonConvert.DeserializeObject <Recipe>(File.ReadAllText(file))); } return(_backingProvider.GetRecipe(token, recipeGuid)); }
public Content GetContent(string token, Guid contentGuid) { Guid userGuid = Guid.Parse(JwtCookieManager.GetUserGuid(token)); if (_contentCache.ContainsKey(userGuid) && _contentCache[userGuid].ContainsKey(contentGuid)) { string file = _contentCache[userGuid][contentGuid]; return(JsonConvert.DeserializeObject <Content>(File.ReadAllText(file))); } return(_backingProvider.GetContent(token, contentGuid)); }
private bool SaveWeenie(string token, Weenie weenie) { if (_weenieCache == null) { throw new ApplicationException("Sandboxing is not configured correctly. See error logs for details."); } string userGuidString = JwtCookieManager.GetUserGuid(token); Guid userGuid = Guid.Parse(userGuidString); string weenieFolder = Path.Combine(_cacheDirectory, "weenies", userGuid.ToString()); if (!Directory.Exists(weenieFolder)) { Directory.CreateDirectory(weenieFolder); } WeenieChange wc = null; string weenieFile = Path.Combine(weenieFolder, $"{weenie.WeenieClassId}.json"); if (File.Exists(weenieFile)) { // replace the weenie wc = JsonConvert.DeserializeObject <WeenieChange>(File.ReadAllText(weenieFile)); wc.Weenie = weenie; wc.Submitted = false; } else { wc = new WeenieChange(); wc.UserGuid = JwtCookieManager.GetUserGuid(token); wc.Weenie = weenie; wc.UserName = JwtCookieManager.GetUserDisplayName(token); wc.SubmissionTime = DateTime.Now; } string content = JsonConvert.SerializeObject(wc); File.WriteAllText(weenieFile, content); if (!_weenieCache.ContainsKey(userGuid)) { _weenieCache.TryAdd(userGuid, new Dictionary <uint, string>()); } if (!_weenieCache[userGuid].ContainsKey(weenie.WeenieClassId)) { _weenieCache[userGuid].Add(weenie.WeenieClassId, weenieFile); } return(true); }
public WeenieChange GetMySandboxedChange(string token, uint weenieClassId) { string userGuidString = JwtCookieManager.GetUserGuid(token); Guid userGuid = Guid.Parse(userGuidString); if (_weenieCache.ContainsKey(userGuid) && _weenieCache[userGuid].ContainsKey(weenieClassId)) { string fileName = _weenieCache[userGuid][weenieClassId]; WeenieChange wc = JsonConvert.DeserializeObject <WeenieChange>(File.ReadAllText(fileName)); return(wc); } return(null); }
public Weenie GetWeenie(string token, uint weenieClassId) { if (token != null) { string userGuidString = JwtCookieManager.GetUserGuid(token); Guid userGuid = Guid.Parse(userGuidString); if (_weenieCache != null && _weenieCache.ContainsKey(userGuid) && _weenieCache[userGuid].ContainsKey(weenieClassId)) { string file = _weenieCache[userGuid][weenieClassId]; WeenieChange wc = JsonConvert.DeserializeObject <WeenieChange>(File.ReadAllText(file)); return(wc.Weenie); } } return(_backingProvider.GetWeenie(token, weenieClassId)); }
public List <WeenieChange> GetMyWeenieChanges(string token) { string userGuidString = JwtCookieManager.GetUserGuid(token); Guid userGuid = Guid.Parse(userGuidString); List <WeenieChange> mine = new List <WeenieChange>(); if (_weenieCache.ContainsKey(userGuid)) { var c = _weenieCache[userGuid]; foreach (var file in c.Values) { var wc = JsonConvert.DeserializeObject <WeenieChange>(File.ReadAllText(file)); if (wc != null) { mine.Add(wc); } } } return(mine); }
public ApiAccountModel GetAccount(string token, string accountGuid) { RestRequest request; if (string.IsNullOrWhiteSpace(accountGuid)) { accountGuid = JwtCookieManager.GetUserGuid(token); } if (JwtCookieManager.GetUserGuid(token).ToLower() == accountGuid.ToLower()) { // bypass the admin api if we're asking for our own account request = BuildRequest("/Account/GetMyAccount", Method.GET, token); } else { request = BuildRequest("/Account/Get", Method.GET, token); request.AddQueryParameter("accountGuid", accountGuid); } var response = _client.Execute(request); if (response.StatusCode == HttpStatusCode.OK) { return(JsonConvert.DeserializeObject <ApiAccountModel>(response.Content)); } if (response.StatusCode == HttpStatusCode.Unauthorized) { throw new ApplicationException("Destination server disallowed your request."); } if (response.StatusCode == HttpStatusCode.NotFound) { return(null); } throw new ApplicationException($"Unexpected response {response.StatusCode} from server. Content: {response.Content}."); }