/// <summary> /// Обработка события завершения парсинга /// </summary> /// <param name="obj"></param> private void Worker_OnParsingCompleted(SiteWorker obj) { bImport.Enabled = true; bExport.Enabled = true; bAll.Enabled = true; bCancel.Enabled = false; Log(@"Парсинг товаров завершён"); }
private Action <SiteProfile> actionSaveProfile; // callback action public CurlPlayVModel(SiteProfile siteProfile, Action <SiteProfile> actionSaveProfile) { Profile = siteProfile; Progress = new ProgressInfo(0, false); WindowProgress = 0; IsNotRunning = true; IsRandomDelay = Profile.DelayMax > Profile.DelayMin; DelaySetting = IsRandomDelay ? $"{Profile.DelayMin} - {Profile.DelayMax}" : Profile.DelayMin.ToString(); ResponseList = new ObservableCollection <CurlResponse>(); siteWorker = new SiteWorker(OnStateUpdated, OnSiteResponse); this.actionSaveProfile = actionSaveProfile; }
public async Task <OperationDataResult <DeviceUser> > Edit(int id) { var core = await _coreHelper.GetCore(); await using var db = core.DbContextHelper.GetDbContext(); //var siteDto = await core.SiteRead(id); DeviceUser deviceUser = null; Site site = await db.Sites.SingleOrDefaultAsync(x => x.MicrotingUid == id); if (site == null) { return(null); } SiteWorker siteWorker = db.SiteWorkers.Where(x => x.SiteId == site.Id).ToList().First(); Worker worker = await db.Workers.SingleAsync(x => x.Id == siteWorker.WorkerId); List <Unit> units = db.Units.Where(x => x.SiteId == site.Id).ToList(); if (units.Any() && worker != null) { Unit unit = units.First(); Language language = db.Languages.Single(x => x.Id == site.LanguageId); deviceUser = new DeviceUser() { CustomerNo = unit.CustomerNo, FirstName = worker.FirstName, Language = language.Name, LanguageCode = language.LanguageCode, LanguageId = site.LanguageId, LastName = worker.LastName, OtpCode = unit.OtpCode, SiteId = site.Id, SiteName = site.Name, SiteUid = site.MicrotingUid, UnitId = unit.Id, UnitUid = unit.MicrotingUid }; //return new SiteDto((int)site.MicrotingUid, site.Name, worker.FirstName, worker.LastName, (int)unit.CustomerNo, unit.OtpCode ?? 0, (int)unit.MicrotingUid, worker.MicrotingUid); } return(deviceUser != null ? new OperationDataResult <DeviceUser>(true, deviceUser) : new OperationDataResult <DeviceUser>(false, _localizationService.GetStringWithFormat("DeviceUserParamCouldNotBeEdited", id))); }
public async Task <OperationDataResult <List <DeviceUser> > > Index() { var core = await _coreHelper.GetCore(); await using MicrotingDbContext db = core.DbContextHelper.GetDbContext(); List <DeviceUser> deviceUsers = new List <DeviceUser>(); List <Site> matches = await db.Sites.Where(x => x.WorkflowState != Constants.WorkflowStates.Removed).ToListAsync().ConfigureAwait(false); foreach (Site aSite in matches) { Unit unit = null; Worker worker = null; int? unitCustomerNo = null; int? unitOptCode = null; int? unitMicrotingUid = null; int? workerMicrotingUid = null; string workerFirstName = null; string workerLastName = null; try { unit = await db.Units.FirstAsync(x => x.SiteId == aSite.Id); unitCustomerNo = unit.CustomerNo; unitOptCode = unit.OtpCode ?? 0; unitMicrotingUid = (int)unit.MicrotingUid; } catch { } try { SiteWorker siteWorker = await db.SiteWorkers.FirstAsync(x => x.SiteId == aSite.Id); worker = await db.Workers.SingleAsync(x => x.Id == siteWorker.WorkerId); workerMicrotingUid = worker.MicrotingUid; workerFirstName = worker.FirstName; workerLastName = worker.LastName; } catch { } if (aSite.LanguageId == 0) { aSite.LanguageId = db.Languages.Single(x => x.Name == "Danish").Id; await aSite.Update(db); } Language language = db.Languages.Single(x => x.Id == aSite.LanguageId); DeviceUser deviceUser = new DeviceUser() { CustomerNo = unitCustomerNo, FirstName = workerFirstName, LastName = workerLastName, LanguageId = aSite.LanguageId, OtpCode = unitOptCode, SiteId = aSite.Id, SiteUid = aSite.MicrotingUid, SiteName = aSite.Name, UnitId = unitMicrotingUid, WorkerUid = workerMicrotingUid, Language = language.Name, LanguageCode = language.LanguageCode, }; deviceUsers.Add(deviceUser); } // var siteDto = await core.SiteReadAll(false); return(new OperationDataResult <List <DeviceUser> >(true, deviceUsers)); }