refactoring

This commit is contained in:
Paul Schneider 2018-08-01 06:12:42 +02:00
commit e1b1347284
20 changed files with 153 additions and 132 deletions

View file

@ -14,8 +14,8 @@ namespace Yavsc.Services
{
public ApplicationDbContext DbContext { get; private set; }
private ILogger logger;
public static Dictionary<string,Func<ApplicationDbContext,long,INominativeQuery>> Billing =
new Dictionary<string,Func<ApplicationDbContext,long,INominativeQuery>> ();
public static Dictionary<string,Func<ApplicationDbContext,long,IDecidableQuery>> Billing =
new Dictionary<string,Func<ApplicationDbContext,long,IDecidableQuery>> ();
public static List<PropertyInfo> UserSettings = new List<PropertyInfo>();
public static Dictionary<string,string> GlobalBillingMap =
@ -31,12 +31,12 @@ namespace Yavsc.Services
DbContext = dbContext;
}
public Task<INominativeQuery> GetBillAsync(string billingCode, long queryId)
public Task<IDecidableQuery> GetBillAsync(string billingCode, long queryId)
{
return Task.FromResult(GetBillable(DbContext,billingCode,queryId));
}
public static INominativeQuery GetBillable(ApplicationDbContext context, string billingCode, long queryId ) => Billing[billingCode](context, queryId);
public static IDecidableQuery GetBillable(ApplicationDbContext context, string billingCode, long queryId ) => Billing[billingCode](context, queryId);
public async Task<ISpecializationSettings> GetPerformerSettingsAsync(string activityCode, string userId)
{
return await (await GetPerformersSettingsAsync(activityCode)).SingleOrDefaultAsync(s=> s.UserId == userId);

View file

@ -81,7 +81,7 @@ mais n'implemente pas l'interface IQueryable<ISpecializationSettings>
}
}
RegisterBilling<HairCutQuery>(BillingCodes.Brush, new Func<ApplicationDbContext,long,INominativeQuery>
RegisterBilling<HairCutQuery>(BillingCodes.Brush, new Func<ApplicationDbContext,long,IDecidableQuery>
( ( db, id) =>
{
var query = db.HairCutQueries.Include(q=>q.Prestation).Include(q=>q.Regularisation).Single(q=>q.Id == id) ;
@ -89,9 +89,9 @@ mais n'implemente pas l'interface IQueryable<ISpecializationSettings>
return query;
})) ;
RegisterBilling<HairMultiCutQuery>(BillingCodes.MBrush,new Func<ApplicationDbContext,long,INominativeQuery>
RegisterBilling<HairMultiCutQuery>(BillingCodes.MBrush,new Func<ApplicationDbContext,long,IDecidableQuery>
( (db, id) => db.HairMultiCutQueries.Include(q=>q.Regularisation).Single(q=>q.Id == id)));
RegisterBilling<RdvQuery>(BillingCodes.Rdv, new Func<ApplicationDbContext,long,INominativeQuery>
RegisterBilling<RdvQuery>(BillingCodes.Rdv, new Func<ApplicationDbContext,long,IDecidableQuery>
( (db, id) => db.RdvQueries.Include(q=>q.Regularisation).Single(q=>q.Id == id)));
}
public static System.Reflection.Assembly OnYavscResourceResolve(object sender, ResolveEventArgs ev)
@ -99,7 +99,7 @@ mais n'implemente pas l'interface IQueryable<ISpecializationSettings>
return AppDomain.CurrentDomain.GetAssemblies()[0];
}
public static void RegisterBilling<T>(string code, Func<ApplicationDbContext,long,INominativeQuery> getter) where T : IBillable
public static void RegisterBilling<T>(string code, Func<ApplicationDbContext,long,IDecidableQuery> getter) where T : IBillable
{
BillingService.Billing.Add(code,getter) ;
BillingService.GlobalBillingMap.Add(typeof(T).Name,code);