public async Task <ICollection <CipherDetails> > GetManyByTypeAndUserIdAsync(Enums.CipherType type, Guid userId) { using (var connection = new SqlConnection(ConnectionString)) { var results = await connection.QueryAsync <CipherDetails>( $"[{Schema}].[CipherDetails_ReadByTypeUserId]", new { Type = type, UserId = userId }, commandType : CommandType.StoredProcedure); return(results.ToList()); } }
public async Task <ICollection <CipherDetails> > GetManyByTypeAndUserIdAsync(Enums.CipherType type, Guid userId) { using (var connection = new SqlConnection(ConnectionString)) { var results = await connection.QueryAsync <CipherDetails>( $"[{Schema}].[CipherDetails_ReadByTypeUserId]", new { Type = type, UserId = userId }, commandType : CommandType.StoredProcedure); // Return distinct Id results. If at least one of the grouped results allows edit, that we return it. return(results .GroupBy(c => c.Id) .Select(g => g.OrderByDescending(og => og.Edit).First()) .ToList()); } }