public async virtual Task <ActionResult> PostParent([FromRoute][Required] string accountId, [FromRoute][Required] string gpid, [FromBody][Required] SettingsOnly body) { var pData = ProcessDataHelpers.InitiateProcessData((Permissions)RouteData.Values["access"], Resource.Parent, accountId, gpid, null, null, null); var result = await pManager.CreateSettingAsync(pData, body); return(StatusCode(result.Item1, result.Item2)); }
public async virtual Task <ActionResult> PatchGrandchild([FromRoute][Required] string accountId, [FromRoute][Required] string gpid, [FromRoute][Required] string pid, [FromRoute][Required] string cid, [FromRoute][Required] string gcid, [FromBody][Required] SettingsOnly body) { var pData = ProcessDataHelpers.InitiateProcessData((Permissions)RouteData.Values["access"], Resource.Grandchild, accountId, gpid, pid, cid, gcid); var result = await gcManager.UpdateSettingAsync(pData, body); return(StatusCode(result)); }
public async Task <int> UpdateAsync(ProcessData pData, SettingsOnly settings, bool byName = false) { var DbConnection = new NpgsqlConnection(connectionString); using (DbConnection) { try { DbConnection.Open(); string sql = ""; string value = MutateString.ConvertToJsonbString(settings.Values); switch (pData.Resource) { case Resource.Account: sql = $"SELECT dbo.account_update({pData.AccountId},'{settings.Name}');"; break; case Resource.Grandparent: sql = $"SELECT dbo.setting_gp_update({pData.Gpid},'{settings.Name ?? "null"}',{value ?? "null"});"; break; case Resource.Parent: sql = $"SELECT dbo.setting_p_update({pData.Pid},'{settings.Name ?? "null"}',{value ?? "null"});"; break; case Resource.Child: sql = $"SELECT dbo.setting_c_update({pData.Cid},'{settings.Name ?? "null"}',{value ?? "null"});"; break; case Resource.Grandchild: sql = $"SELECT dbo.setting_gc_update({pData.Gcid},'{settings.Name ?? "null"}',{value ?? "null"});"; break; default: throw new InvalidResourceTypeException(); } var result = await DbConnection.QueryAsync <int>(sql); DbConnection.Close(); return(result.FirstOrDefault()); } catch (Exception) { DbConnection.Close(); throw; } } }
public async Task <(int, object)> CreateSettingAsync(ProcessData pData, SettingsOnly payload) { long createdRecordId = await _db.CreateAsync(pData, payload); // Assume this retuened zero because a data issue prevented it from being successful. if (createdRecordId <= 0) { return(400, new FailureResponse("na", "Failed to create resource!")); } // Remove cached items this change will affect. _cache.Remove($"{pData.Resource.ToString()}List_{pData.AccountId}"); Log.Debug($"{pData.Resource.ToString()} setting {createdRecordId} created for account {pData.AccountId}."); return(201, new CreatedResponse(createdRecordId, "")); }
public async Task <int> UpdateSettingAsync(ProcessData pData, SettingsOnly payload) { long updatedRecordId = await _db.UpdateAsync(pData, payload); if (updatedRecordId <= 0) { return(404); } // Remove cached items this change will affect. _cache.Remove($"{pData.Resource.ToString()}List_{pData.AccountId}"); _cache.Remove($"{pData.Resource.ToString()}_{pData.Gpid}"); Log.Debug($"Updated {pData.Resource.ToString()} setting {pData.Gpid} in account {pData.AccountId}."); return(204); }