public static T ExecuteItem <T>(this IGetProviderGroup <T> message) where T : class, IId, IProviderGroupId, new() { using (var context = DataContext.CreateForMessage(message)) { T entity = context.Set <T>().Where(x => x.Id == message.Id && x.ProviderGroupId == message.ProviderGroupId).SingleOrDefault(); return(entity); } }
public static R ExecuteItem <T, R>(this IGetProviderGroup <T, R> message) where T : class, IId, IProviderGroupId where R : class, new() { using (var context = DataContext.CreateForMessage(message)) { // Step 1. Get the entity T entity = context.Set <T>().Where(x => x.Id == message.Id && x.ProviderGroupId == message.ProviderGroupId).SingleOrDefault(); // Step 2. Return null if not found if (entity == null) { return(null); } // Step 3. Create result R result = new R(); // Step 4. Set values result.InjectFrom <CommonValueInjection>(entity); return(result); } }