EnVisageOnline/Main/Source/EnVisage/Code/ThreadedProcessing/BackgroundProcess.cs

39 lines
1.7 KiB
C#

using EnVisage.Code.Integration;
using EnVisage.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.Hosting;
namespace EnVisage.Code.ThreadedProcessing
{
public class BackgroundProcess
{
public static bool RunJob(Func<RateModel,Guid, CancellationToken, bool> JobName, RateModel model, Guid savedId)
{
HostingEnvironment.QueueBackgroundWorkItem(ct => JobName(model,savedId,ct));
return true;
}
public static bool RunJob(Func<List<PeopleResourceAPIModel>, Guid, CancellationToken, bool> JobName, List<PeopleResourceAPIModel> apiModels, Guid savedId)
{
HostingEnvironment.QueueBackgroundWorkItem(ct => JobName(apiModels, savedId, ct));
return true;
}
public static void RunJob(Func<Dictionary<string, Dictionary<string, string>>,Guid,AccessInf,string, CancellationToken, bool> JobName, Dictionary<string, Dictionary<string, string>> data,Guid parentKey, AccessInf crmDal,string action)
{
HostingEnvironment.QueueBackgroundWorkItem(ct => JobName(data, parentKey, crmDal, action,ct));
}
public static void RunJob(Func<Guid, string, AccessInf, CancellationToken,bool> JobName, Guid projectNumber,string resourceEmail, AccessInf crmDal)
{
HostingEnvironment.QueueBackgroundWorkItem(ct => JobName(projectNumber, resourceEmail, crmDal, ct));
}
public static void RunJob(Func<List<NonProjectTimeModel>, Guid, CancellationToken, bool> JobName, List<NonProjectTimeModel> apiModel, Guid processId)
{
HostingEnvironment.QueueBackgroundWorkItem(ct => JobName(apiModel, processId, ct));
}
}
}