public async Task <IEnumerable <AutoPost> > CreatePostsFromVin(string vin, int?modelYear = null) { IEnumerable <VinDecodeResult> vinDecodeResults = await _vinDecodeService.DecodeVin(vin, modelYear); Dictionary <int, VinDecodeResult> results = GetResultsDictionary(vinDecodeResults); AutoPost autoPost = await ConvertToAutoPost(vin, results); results.TryGetValue(143, out VinDecodeResult? errorCodeResult); results.TryGetValue(144, out VinDecodeResult? possibleVinConfigurationsResult); Dictionary <string, IEnumerable <VinDecodeResult> > additionalVinInformation = await _vinDecodeService.GetAdditionalVinInformation(vin, possibleVinConfigurationsResult?.Value); IEnumerable <Task <AutoPost> > additionalVinInformationTasks = additionalVinInformation.Select(x => ConvertToAutoPost(x.Key, x.Value)); AutoPost[] otherPosts = await Task.WhenAll(additionalVinInformationTasks); IEnumerable <string> errors = Enumerable.Empty <string>(); if (errorCodeResult != null && errorCodeResult.Value != "0" && results.TryGetValue(191, out VinDecodeResult? vinErrorTextResult)) { errors = vinErrorTextResult.Value?.Split(';').Select(x => x.Trim()) ?? Enumerable.Empty <string>(); if (results.TryGetValue(156, out VinDecodeResult? vinAdditionalErrorTextResult)) { errors = errors.Concat(vinAdditionalErrorTextResult.Value?.Split(';').Select(x => x.Trim()) ?? Enumerable.Empty <string>()); } } return(otherPosts); }
public void Execute(IJobExecutionContext context) { //待批试卷 _logger.Info("ExamPaperJob:正在工作......"); AutoPost ap = new AutoPost(); ap.checkExam((int)AutoNotice.待批试卷); }
public void Execute(IJobExecutionContext context) { //学生报名 _logger.Info("StudentSignUpJob:正在工作......"); AutoPost ap = new AutoPost(); ap.checkExam((int)AutoNotice.学生报名); }
public void Execute(IJobExecutionContext context) { _logger.Info("WorkJob正在工作..."); //待批该作业 AutoPost ap = new AutoPost(); ap.checkExam((int)AutoNotice.待批改作业); }
public void Execute(IJobExecutionContext context) { //资源审核 _logger.Info("ResourceExamineJob:正在工作......"); AutoPost ap = new AutoPost(); ap.checkExam((int)AutoNotice.资源审核); }
public void Execute(IJobExecutionContext context) //hyd { _logger.Info("UnSubmitWorkJob正在工作..."); //系统消息通知 AutoPost ap = new AutoPost(); ap.checkExam((int)AutoNotice.系统消息); }
private void PostTopic() { while (dtTable.Rows.Count > 0) { if (isAbort == false) { if (isLock == false) { if (dtTable.Rows.Count > 0) { try { isLock = true; string strErr = ""; long id = long.Parse(dtTable.Rows[0]["ID"].ToString()); dtTable.Rows.RemoveAt(0); WebLink weblink = WebLink.Get(id); isLock = false; StatusObj statusObj = new StatusObj(); if (weblink != null) { strErr = "Up to " + weblink.Url + " [ " + weblink.Topic + " ] " + "...................."; DataRow dtRow = dtLogEntries.NewRow(); dtRow["ID"] = id; dtRow["LogEntries"] = strErr; dtRow["DateTime"] = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); dtLogEntries.Rows.Add(dtRow); try { WebBrowser webBrowser = (WebBrowser)panelControl1.Controls[id.ToString()]; AutoPost post = new AutoPost(webBrowser, weblink, "", Content, ""); statusObj = post.UpTopic(); strErr = strErr + statusObj.Message; try { webBrowser.Dispose(); } catch { } try { panelControl1.Controls.Remove(webBrowser); } catch { } } catch { strErr = strErr + " Error."; } dtRow["LogEntries"] = strErr; dtRow["LinkUp"] = statusObj.Value; dtRow["Status"] = statusObj.Status; } } catch { isLock = false; } } } } } }
public static string GenerateTitle(AutoPost autoPost) { return(string.Join(' ', new List <string?> { autoPost.Year?.ToString(), autoPost.Make?.MakeName, autoPost.Model?.ModelName, autoPost.Series?.ToUpper(), autoPost.Trim?.ToUpper() }.Where(x => !string.IsNullOrEmpty(x)))); }
public async Task <IActionResult> Create(AutoPost post) { Model?model = null; Make? make = null; if (post.ModelId.HasValue) { model = await _autoPostService.GetModel(post.ModelId.Value); } if (post.MakeId.HasValue) { make = await _autoPostService.GetMake(post.MakeId.Value); } post.SystemTitle = AutoPostService.GenerateTitle(post); return(await base.Create(post)); }
private void PostTopic() { while (dtTable.Rows.Count > 0) { if (isAbort == false) { if (isLock == false) { if (dtTable.Rows.Count > 0) { try { isLock = true; string strErr = ""; long id = long.Parse(dtTable.Rows[0]["ID"].ToString()); dtTable.Rows.RemoveAt(0); hashTable.Add(id, false); WebLink weblink = WebLink.Get(id); isLock = false; StatusObj statusObj = new StatusObj(); if (weblink != null) { DataRow dtRow = dtLogEntries.NewRow(); dtRow["ID"] = id; dtRow["DateTime"] = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); dtLogEntries.Rows.Add(dtRow); if (_Type == NumCode.POS) { strErr = "Post to " + weblink.Url + " ...................."; dtRow["LogEntries"] = strErr; try { WebBrowser webBrowser = (WebBrowser)panelControl1.Controls[id.ToString()]; AutoPost post = new AutoPost(webBrowser, multiforum, weblink, Subject, Content, Tag); statusObj = post.PostTopic(); strErr = strErr + statusObj.Message; } catch { strErr = strErr + "Error."; } } else { strErr = "Up to " + weblink.Url + " [ " + weblink.Topic + " ] " + "...................."; dtRow["LogEntries"] = strErr; try { WebBrowser webBrowser = (WebBrowser)panelControl1.Controls[id.ToString()]; AutoPost post = new AutoPost(webBrowser, multiforum, weblink, Subject, Content, Tag); statusObj = post.UpTopic(); strErr = strErr + statusObj.Message; } catch { strErr = strErr + "Error."; } } dtRow["LogEntries"] = strErr; dtRow["LinkUp"] = statusObj.Value; dtRow["Status"] = statusObj.Status; if (statusObj.Status == "Successful") { haveSuccessful = true; } hashTable[id] = true; } } catch { isLock = false; } } } } } try { if (Thread.CurrentThread.IsAlive) { Thread.CurrentThread.Abort(); } } catch { } }
private async Task CreateTestData(IServiceScope scope) { IAutoPostService autoService = scope.ServiceProvider.GetRequiredService <IAutoPostService>(); IPostService postService = scope.ServiceProvider.GetRequiredService <IPostService>(); MyDbContext myDbContext = scope.ServiceProvider.GetRequiredService <MyDbContext>(); HashSet <string> existingVins = myDbContext.AutoPosts.Where(x => !string.IsNullOrEmpty(x.Vin)).Select(x => x.Vin !).AsNoTracking().ToHashSet(); List <string> vins = new List <string> { "YV149MTS6G2409804", "JTJYWRBZ6G2009198", "SALWG2VF5GA642581", "YV126MEB3F1186381", "YV1902TH6F2304610", "JA4JZ4AX9FZ001840", "WMWZP3C56FT298666", "KNAFZ4A81F5290432", "WA1CMCFE3FD080332", "3VW2M1AJ5EM308034", "WMWSX1C50ET623235", "WDDHH8JB5EA799727", "JTHBE5D25E5999999", "JTHBE5D21E5009987", "WAUWFBFL0E0015575", "JM3TB3BV1D0402771", "JM1BL1UF2D1843458", "JTHCF5C2XD2036051", "1C4BJWKGXDL508578", "WBA3A5C5XDF255852", "WAUBGCFC1DN070779", "3VWFP7AT0CM615492", "JM1BL1V74C1654199", "SALSF2D48CA745019", "5UXWX5C51CC727594", "WBSDX9C50CE632859", "WBAKC8C57CCC34760", "WAUFEAFMXCA868546", "JN8AS5MT9BW568025", "JN1AR5EF2BM240198", "JA32Y6HV1BU003147", "JTHFF2C26B2515141", "1J4N72GU9BD117409", "SAJWA2GEXBMV00832", "1GC4CZC80BF120492", "WBSKG9C57BE369243", "YV4852CZ0A1550673", "3N1AB6AP4A1705397", "WMWMS3C45ATY08384", "WDDGF5EB5AR097221", "5NMSK3BB0A0011955", "KMHCN4BC5AU476036", "19XFA1E39AE028694", "1FTPX1EV0A0017433", "1G1YR2DW4A50008EX", "WB1024400AZR12312", "KL2TX56E49B323948", "JA3AY68V09U612302", "2LMDU68L29BJ11359", "KMHGC46E394061991", "KL1TJ53779B616366", "WBXPC934X9WJ30129", "WUADA64F19N900439", "5J8TB18219A802665", "2G2WP552681193952", "KL2TJ51608B202365", "KMHEU41DX8A516824", "1Z7HT38K87S100173", "KMHJM12B070013219", "1ZVFT80N475211367", "1FTPX14587KA80202", "1FDSE35S57DB34927", "3D2WS26D07G777824", "3D6WS26D67G828192", "WB10397017ZP61849", "2HNYD28377H522352", "WVWCU93C86P085276", "KL2TD69656B612870", "WMWRF33456TG14703", "WDBTK56F36T072574", "1LNFM83V060018247", "SALMH13446A220123", "KNALD221565103572", "2HKYF286060012701", "1HGCM56766A041742", "WBAVD13596KX00407", "6G2VX12U95L553833", "WMWRC33444T050912", "1J4GL48K246250341", "1HD1BMY1X4Y010673", "JH4CL96974CD14071", "5GZCZ23D13S847842", "KNDUP131936358464", "KNDUP131336425950", "1HD1JAB313Y039358", "4F4YR12U72TM08759", "JHLRD78512C024509", "1HD1PDC392Y952267", "2B4GT54L62R753223", "JF1SF63501H759113", "SALTY12471A702896", "1FAFP40491FS62183", "YV1VW255XYFU88185", "WBAEJ1341YA382128", "2HHMB4660YH904692", "1LNFM81W7XY601946", "1GCGC33R3XF100201", "JT8BF28G1W5630798", "JH4KA9653WC800195", "WDBGA51E4TA328716", "1LNLM82W9TY705110", "KNDJA723XT5517217", "2GCEK19R3T1146294", "WBABK7320TET60222", "JA3AP47H3SY018398", "SALHF1349SA654345", "JH4DC4340SS001220", "4T1SK12E7PU300490", "JM2UF2138N0251579", "1B7FG23Y0N0012403", "1HGEE4860L0017233", "1HD4CAM33LY118860", "1FTEF25M0L0016339", "3VWBB91G0K0016657", "JT2MX83E2K0030681", "2G3AM51NXK2312943", "2G3AM51N0K2395928", "WDBEA26E6KB002021", "1LNCM9744KY646690", "1FTCR10T4KUC34284", "1FTCR10A9KUC55386", "2G3AM513XJ2364151", "1G3AJ513xJG314327", "1LNBM9741JY839714", "1FTCR14T6JPB25476", "1FTBR10A7JUD45386", "JB3BA24K0JU001772", "WVWCA0157HK036627", "JT2EL31D8H0101727", "2G3AJ51W1H9422815", "1G3AJ5131HD398220", "JN1HU1110HT263333", "1JTBG64S0H0014395", "1FTBR10C3HUB08213", "JH4KA2640HC004148", "1G3AM19X8GG308517", "1G3AJ19X1GG341898", "1G3AJ19W6GG420717", "1N6HD16Y1GC442608", "2B4FK51G8GR605541", "1G3AJ19E0FG390717", "1G3AM19E8FG344687", "1JCBS7440F0013895", "1FACP22X2FK213033", "1FMEU15HXFLA29734", "1G3AM19E4ED315574", "1G3AJ19E7EG320727", "JN1HK04S0E0010739", "WDBDA24A4EA027134", "WDBD022A7EA060323", "1FABP0521ET102126", "1JCNE16N6CT044957", "1HD1AJK23CY024920", "WVWDG21K9BW201730", "WDBAA33A8BB093914", }; Model model = myDbContext.Models.Include(x => x.Make).FirstOrDefault(); int? makeId = model.MakeId; foreach (string vin in vins) { if (existingVins.Contains(vin)) { continue; } AutoPost autoPost = await autoService.CreatePostFromVin(vin); DateTime now = DateTime.UtcNow; autoPost.AutoCondition ??= (AutoCondition)GetRandomEnumValue(typeof(AutoCondition)) !; autoPost.AutoType ??= (AutoType)GetRandomEnumValue(typeof(AutoType)) !; autoPost.Doors ??= 4; autoPost.DriveType ??= (DriveType)GetRandomEnumValue(typeof(DriveType)) !; autoPost.FuelType ??= (FuelType)GetRandomEnumValue(typeof(FuelType)) !; autoPost.IsPublic = true; autoPost.Make ??= model.Make; autoPost.MakeId ??= makeId; autoPost.Model ??= model; autoPost.ModelId ??= model.ModelId; autoPost.ModifiedDate = now; autoPost.CreatedDate = now; autoPost.Color ??= "Black"; autoPost.CreatedByUserId = 1; autoPost.TitleStatus ??= (TitleStatus)GetRandomEnumValue(typeof(TitleStatus)) !; autoPost.TransmissionType ??= (TransmissionType)GetRandomEnumValue(typeof(TransmissionType)) !; autoPost.Description = "Test"; autoPost.Price = 10; autoPost.SystemTitle ??= AutoPostService.GenerateTitle(autoPost); autoPost.UserTitle = autoPost.SystemTitle; autoPost.Language = "English"; autoPost.IsPublic = true; autoPost.Mileage = 10000; await postService.Create(autoPost); } }
private async Task <AutoPost> ConvertToAutoPost(string vin, Dictionary <int, VinDecodeResult> results) { results.TryGetValue(9, out VinDecodeResult? cylinderResult); results.TryGetValue(14, out VinDecodeResult? doorsResult); results.TryGetValue(24, out VinDecodeResult? primaryFuelTypeResult); results.TryGetValue(66, out VinDecodeResult? secondaryFuelTypeResult); results.TryGetValue(29, out VinDecodeResult? modelYearResult); results.TryGetValue(34, out VinDecodeResult? seriesResult); results.TryGetValue(38, out VinDecodeResult? trimResult); results.TryGetValue(18, out VinDecodeResult? engineModelResult); results.TryGetValue(15, out VinDecodeResult? driveTypeResult); results.TryGetValue(37, out VinDecodeResult? transmissionStyleResult); results.TryGetValue(5, out VinDecodeResult? bodyClassResult); results.TryGetValue(39, out VinDecodeResult? vehicleTypeResult); results.TryGetValue(13, out VinDecodeResult? displacementInLitersResult); results.TryGetValue(11, out VinDecodeResult? displacementInCcResult); results.TryGetValue(71, out VinDecodeResult? horsePowerResult); string?trim = trimResult?.Value?.ToUpper(); string?series = seriesResult?.Value?.ToUpper(); string?engineModel = engineModelResult?.Value; int.TryParse(cylinderResult?.Value, out int cylinders); int.TryParse(modelYearResult?.Value, out int modelYearFromVin); int.TryParse(doorsResult?.Value, out int doors); double.TryParse(displacementInLitersResult?.Value, out double displacementInLiters); double.TryParse(displacementInCcResult?.Value, out double displacementInCc); double.TryParse(horsePowerResult?.Value, out double horsepower); displacementInLiters = Math.Round(displacementInLiters, 1); displacementInCc = Math.Round(displacementInCc, 1); horsepower = Math.Round(horsepower, 1); Make? make = null; Model?model = null; if (results.TryGetValue(28, out VinDecodeResult? modelResult) && int.TryParse(modelResult.ValueId, out int modelId)) { model = await _myDbContext.Models.Include(x => x.Make).FirstOrDefaultAsync(x => x.VpicId == modelId); make = model?.Make; } else if (results.TryGetValue(26, out VinDecodeResult? makeResult) && int.TryParse(makeResult.ValueId, out int makeId)) { make = await _myDbContext.Makes.FirstOrDefaultAsync(x => x.VpicId == makeId); } AutoPost autoPost = new AutoPost { Doors = doors, DriveType = AutoMappingHelpers.GetDriveType(driveTypeResult?.Value), AutoType = AutoMappingHelpers.GetAutoType(vehicleTypeResult?.Value, bodyClassResult?.Value), Cylinders = cylinders, EngineModel = engineModel, FuelType = AutoMappingHelpers.GetFuelType(primaryFuelTypeResult?.Value, secondaryFuelTypeResult?.Value), Trim = trim, Make = make, MakeId = make?.MakeId, Model = model, ModelId = model?.ModelId, Series = series, Vin = vin.ToUpper(), Year = modelYearFromVin, TransmissionType = AutoMappingHelpers.GetTransmissionType(transmissionStyleResult?.Value), Horsepower = horsepower, DisplacementInLiters = displacementInLiters, DisplacementInCc = displacementInCc }; autoPost.SystemTitle = GenerateTitle(autoPost); return(autoPost); }