public static T ExecuteItem <T>(this IGetProvider <T> message) where T : class, IId, IProviderId, new() { using (var context = DataContext.CreateForMessage(message)) { T entity = context.Set <T>().Where(x => x.Id == message.Id && x.ProviderId == message.ProviderId).SingleOrDefault(); return(entity); } }
public static R ExecuteItem <T, R>(this IGetProvider <T, R> message) where T : class, IId, IProviderId 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.ProviderId == message.ProviderId).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); } }