/// <summary>Apaga o log de cálculo de distâncias de um amigo.</summary> public static void ClearLog(DadosAmigos dados, int idAmigo) { // apaga log IQueryable <long> cache = dados.Caches.Where(entry => entry.IdAmigo == idAmigo || entry.IdDestino == idAmigo).Select(entry => entry.IdCache); IQueryable <Log> log = dados.Logs.Where(entry => cache.Contains(entry.IdCache)); log.ForEach(entry => dados.DeleteObject(entry)); }
/// <summary>Apaga o cache de cálculo de distâncias de um amigo.</summary> public static void ClearCache(DadosAmigos dados, int idAmigo) { // apaga log Shared.ClearLog(dados, idAmigo); // apaga cache IQueryable <Cache> cache = dados.Caches.Where(entry => entry.IdAmigo == idAmigo || entry.IdDestino == idAmigo); cache.ForEach(entry => dados.DeleteObject(entry)); }
/// <summary>Apaga um amigo.</summary> public void Delete([FromBody] string token, [FromUri] int idAmigo) { // verifica token de acesso Shared.VerificarToken(token); // inicializa contexto de dados DadosAmigos dados = new DadosAmigos(); // apaga cache Shared.ClearCache(dados, idAmigo); // apaga amigos IQueryable <Amigo> amigos = dados.Amigos.Where(entry => entry.IdAmigo == idAmigo); amigos.ForEach(entry => dados.DeleteObject(entry)); //armazena alterações dados.SaveChanges(); }