public AccountController( UserManager <IdentityUser> userManager, SignInManager <IdentityUser> signInManager, RoleManager <IdentityRole> roleManager, IConfiguration configuration, IDbService DbService, IMailSender mailSender, ApplicationCacheManager cacheManager ) { _mailSender = mailSender; _DbService = DbService; _roleManager = roleManager; _userManager = userManager; _signInManager = signInManager; _configuration = configuration; _cacheManager = cacheManager; }
public async Task ExecuteJobAsync(IJobExecutionContext context, IServiceProvider serviceProvider, List <AssignJobParameterItem> jobParameterItems, List <AssignJobSubscriberItem> jobSubscriberItems) { var customerJobIdPrm = jobParameterItems?.Where(x => x.ParamKey == ConstantHelper.SchedulerJobHelper.CustomerJobIdKey).FirstOrDefault(); Int32.TryParse(customerJobIdPrm.ParamValue, out int customerJobId); ICustomerJobHistoryRepository customerJobHistoryRepository = serviceProvider.GetRequiredService <ICustomerJobHistoryRepository>(); await customerJobHistoryRepository.AddHistory(new AddHistoryRequest() { CustomerJobId = customerJobId, ProcessStatus = SelfHosting.Common.JobScheduler.ProcessStatusTypes.Executing, ProcessTime = DateTimeOffset.Now }); try { if (jobSubscriberItems?.Count < 1) { throw new ArgumentException("JobSubscriberItems required !"); } #region Send Email var masterObjIdPrm = jobParameterItems?.Where(x => x.ParamKey == ConstantHelper.SchedulerJobHelper.MasterObjectIdKey).FirstOrDefault(); var masterObjTypePrm = jobParameterItems?.Where(x => x.ParamKey == ConstantHelper.SchedulerJobHelper.MasterObjectTypeKey).FirstOrDefault(); var templateContent = jobParameterItems?.Where(x => x.ParamKey == ConstantHelper.SchedulerJobHelper.TemplateKey).FirstOrDefault()?.ParamValue; var subjectData = jobParameterItems?.Where(x => x.ParamKey == ConstantHelper.SchedulerJobHelper.SubjectKey).FirstOrDefault()?.ParamValue; AppCacheNoSqlRepository appCacheNoSqlRepository = serviceProvider.GetRequiredService <AppCacheNoSqlRepository>(); var cacheManager = new ApplicationCacheManager(appCacheNoSqlRepository, ConstantHelper.JobCache.JobCachePrefix); cacheManager.AddOrUpdateItem(ConstantHelper.JobCache.GetMasterObjectUrl(masterObjTypePrm.ParamValue), "http://localhost:51500/PMSApi/issue"); var url = cacheManager.GetValue <string>(ConstantHelper.JobCache.GetMasterObjectUrl(masterObjTypePrm.ParamValue)); //TODO?Master object servislerini getir var apiUrl = "http://localhost:51500/PMSApi/issue"; var endPoint = "getbyid"; var client = new RestClient(apiUrl); var request = new RestRequest(endPoint, Method.GET); request.AddHeader("parameters", "{'id':" + masterObjIdPrm.ParamValue + "}"); var tcs = new TaskCompletionSource <IRestResponse>(); ///Client'ım endpointini tetikliyoruz. client.ExecuteAsync(request, response => { tcs.SetResult(response); }); var restResponse = await tcs.Task; var template = Handlebars.Compile(templateContent); var dataContent = tcs.Task.Result.Content; var dataFromRemote = JObject.Parse(dataContent); var resultJson = dataFromRemote.SelectToken("Result").ToString(); var remoteDataExp = JsonConvert.DeserializeObject <ExpandoObject>(resultJson); var data = new { Model = remoteDataExp }; var body = template(data); #region Subject Compile try { var subjectTemplate = Handlebars.Compile(subjectData); subjectData = subjectTemplate(new { }); } catch (Exception ex) { } #endregion var scheduleName = context.Scheduler.SchedulerName; var jobName = context.JobDetail.Key.Name; var jobGroup = context.JobDetail.Key.Group; var trgName = context.Trigger.Key.Name; var trgGroup = context.Trigger.Key.Group; var sendDataItem = new SendDataItem() { JobGroup = jobGroup, JobName = jobName, ScheduleName = scheduleName, TriggerGroup = trgGroup, TriggerName = trgName, Type = 1, //TODO:Static - Email/Sms CreatedDate = DateTimeOffset.Now, Active = 1 }; var subject = subjectData; var bodyContent = body; var recipients = new List <string>(); foreach (var item in jobSubscriberItems.Where(x => x.SubscriberType == (byte)JobSubscriberType.Assigned)) { recipients.Add(item.Subscriber); } sendDataItem.Cc = jobSubscriberItems.Where(x => x.SubscriberType == (byte)JobSubscriberType.Related).Select(x => x.Subscriber).Aggregate((x, y) => x + ";" + y); SendDataBy(serviceProvider, sendDataItem, subject, bodyContent, recipients); #endregion } catch (Exception ex) { BusinessLogger.Log(ConstantHelper.JobLog, "ExecuteJobAsync", exception: ex, extraParams: new Dictionary <string, object>() { { "JobParameterItems", jobParameterItems }, { "JobName", this.Name }, { "JobGuid", this.Guid } }); } await customerJobHistoryRepository.AddHistory(new AddHistoryRequest() { CustomerJobId = 1, ProcessStatus = SelfHosting.Common.JobScheduler.ProcessStatusTypes.Executed, ProcessTime = DateTimeOffset.Now }); }
public void ReadWriteIntoCache(IConfigurationRoot configuration) { ICacheManager <string, UserForCaching> cache = new ApplicationCacheManager <UserForCaching>(); RunTest(cache); }