public static PerCallContext Begin(IPerCallDataProvider provider, string operation, string input) { var ret = new PerCallContext(); //We find the cost for this call decimal cost = provider.GetOperationCost(operation); //We put a row into the DataProviderCall table ret.Call = new DataProviderCall { DataProviderCallId = Guid.NewGuid(), ActivityId = BrokerContext.Current.ActivityId, CallTime = DateTime.Now, Cost = cost, Input = input, DataProviderType = provider.GetType().ToString(), Operation = operation, Success = null, }; ret.DataContext = new ApplicationDataContext(); ret.DataContext.DataProviderCalls.InsertOnSubmit(ret.Call); ret.DataContext.SubmitChanges(); return(ret); }
public static decimal GetOperationCost(this IPerCallDataProvider provider, string operation) { var ret = 0m; var propName = ToOperationCostPropertyName(operation); if (provider.ConfigurationProperties.ContainsKey(propName)) { decimal.TryParse(provider.ConfigurationProperties[propName], out ret); } return(ret); }
public static IPerCallDataProvider CreatePaidDataProvider(CprBroker.Data.DataProviders.DataProvider dbDataProvider) { IPerCallDataProvider dataProvider = Utilities.Reflection.CreateInstance <IPerCallDataProvider>(dbDataProvider.TypeName); if (dataProvider is IPerCallDataProvider) { try { dataProvider.ConfigurationProperties = dbDataProvider.ToPropertiesDictionary(dataProvider.ConfigurationKeys.Select(p => p.Name).ToArray()); } catch (Exception ex) { Local.Admin.LogException(ex); } } return(dataProvider); }
public static void LogAction(this IPerCallDataProvider provider, String operation, string input, Boolean success) { //We find the cost for this call decimal cost = provider.GetOperationCost(operation); //We put a row into the DataProviderCall table using (var dataContext = new ApplicationDataContext()) { var call = new DataProviderCall { DataProviderCallId = System.Guid.NewGuid(), ActivityId = BrokerContext.Current.ActivityId, CallTime = DateTime.Now, Cost = cost, Input = input, DataProviderType = provider.GetType().ToString(), Operation = operation, Success = success, }; dataContext.DataProviderCalls.InsertOnSubmit(call); dataContext.SubmitChanges(); } }
public static PerCallContext BeginCall(this IPerCallDataProvider provider, string operation, string input) { return(PerCallContext.Begin(provider, operation, input)); }
public static DataProviderConfigPropertyInfo[] ToOperationConfigPropertyInfo(this IPerCallDataProvider prov) { return(ToDataProviderConfigPropertyInfo(prov.OperationKeys)); }