public RecordsSource(Notificator notificator) { if (notificator == null) throw new ArgumentNullException("notificator"); _notificator = notificator; }
public DbCommandExecutor(Notificator notificator) { if (notificator == null) throw new ArgumentNullException("notificator"); _notificator = notificator; }
public RecordsSource(IIlaroAdmin admin, Notificator notificator) { if (admin == null) throw new ArgumentNullException(nameof(admin)); if (notificator == null) throw new ArgumentNullException(nameof(notificator)); _admin = admin; _notificator = notificator; }
public FileValidator(Notificator notificator, IConfiguration configuration) { if (notificator == null) throw new ArgumentNullException(nameof(notificator)); if (configuration == null) throw new ArgumentNullException(nameof(configuration)); _notificator = notificator; _configuration = configuration; }
public EntityValidator(Notificator notificator, IValidatingFiles fileValidator) { if (notificator == null) throw new ArgumentNullException(nameof(notificator)); if (fileValidator == null) throw new ArgumentNullException(nameof(fileValidator)); _notificator = notificator; _fileValidator = fileValidator; }
public RecordsUpdater( Notificator notificator, IExecutingDbCommand executor, IFetchingRecords source) { if (notificator == null) throw new ArgumentNullException("notificator"); if (executor == null) throw new ArgumentNullException("executor"); if (source == null) throw new ArgumentNullException("source"); _notificator = notificator; _executor = executor; _source = source; }
public void Notificator_PushesNotificationsDirectlyToStream() => new TestScheduler().With(scheduler => { bool success = false; var sut = new Notificator(); (sut as INotificationListener).Notifications .Where(x => x.Message == "123") .Subscribe(_ => success = true); sut.PublishInfo("123"); scheduler.AdvanceBy(1); Assert.True(success); });
public RecordsDeleter( Notificator notificator, IExecutingDbCommand executor, IFetchingRecordsHierarchy hierarchySource) { if (notificator == null) throw new ArgumentNullException("notificator"); if (executor == null) throw new ArgumentNullException("executor"); if (hierarchySource == null) throw new ArgumentNullException("hierarchySource"); _notificator = notificator; _executor = executor; _hierarchySource = hierarchySource; }
private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(doctorFNameBox.Text)) { Notificator.ShowError("Ви не вказали ім'я лікаря"); return; } if (string.IsNullOrWhiteSpace(doctorLNameBox.Text)) { Notificator.ShowError("Ви не вказали прізвище лікаря"); return; } if (string.IsNullOrWhiteSpace(doctorMNameBox.Text)) { Notificator.ShowError("Ви не вказали по-батькові лікаря"); return; } if (string.IsNullOrWhiteSpace(doctorPositionBox.Text)) { Notificator.ShowError("Ви не вказали посаду лікаря"); return; } if (string.IsNullOrWhiteSpace(hospitalNameBox.Text)) { Notificator.ShowError("Ви не вказали назву лікувального закладу"); return; } if (string.IsNullOrWhiteSpace(adressBox.Text)) { Notificator.ShowError("Ви не вказали адресу лікувального закладу"); return; } using (DAL.DiabetContext dc = new DAL.DiabetContext()) { Models.ProgramSettings ps = dc.Settings.First(); ps.DoctorFirstName = doctorFNameBox.Text.Trim(); ps.DoctorLastName = doctorLNameBox.Text.Trim(); ps.DoctorMiddleName = doctorMNameBox.Text.Trim(); ps.DoctorPosition = doctorPositionBox.Text.Trim(); ps.HospitalFullName = hospitalNameBox.Text.Trim(); ps.HospitalAdress = adressBox.Text.Trim(); dc.SaveChanges(); Notificator.ShowInfo("Дані успішно збережені!"); } }
public override Food Add(Food entity, params string[] ruleSets) { if (UnitOfWork.Foods.Search(f => f.Name == entity.Name).Any()) { Notify(NotificationType.ERROR, "Name", "Already exists a food with this name."); return(null); } var food = base.Add(entity, ruleSets); if (Notificator.HasErrors()) { return(null); } return(Get(food.Id)); }
public void ShouldPushMessagesToBufferAndNotify_WhenSubscribed() { var message = Create <object>(); var isNotified1 = false; var isNotified2 = false; var sut = new Notificator(); sut.Received += () => isNotified1 = true; sut.Received += () => isNotified2 = true; sut.NotifyReceived(message); Assert.Single(sut.ReceivedMessagesBuffer); Assert.Contains(message, sut.ReceivedMessagesBuffer); Assert.True(isNotified1); Assert.True(isNotified2); }
/// <summary> /// Get called whenever an OnHighlightClick is fired. If it is possible it will attack an enemy unit. /// </summary> /// <param Name="evt"></param> public void BattlePreparation(OnHighlightClick evt) { if (evt.highlight != null) { HighlightObject highlightObj = evt.highlight; if (highlight.IsHighlightOn && !movement.NeedsMoving && highlightObj.highlightTypeActive == HighlightTypes.highlight_attack) { UnitGameObject attackingUnit = highlight.UnitSelected; UnitGameObject defendingUnit = highlightObj.Tile.unitGameObject; if (!attackingUnit.UnitGame.HasAttacked) { if (!attackingUnit.UnitGame.HasMoved || (attackingUnit.UnitGame.HasMoved && attackingUnit.UnitGame.CanAttackAfterMove)) { if (TileHelper.IsTileWithinRange(attackingUnit.transform.position, defendingUnit.transform.position, attackingUnit.UnitGame.AttackRange)) { attackingUnit.UnitGame.HasAttacked = true; attackingUnit.UnitGame.HasMoved = true; attackingUnit.UnitGame.PlaySound(UnitSoundType.Attack); highlight.ClearHighlights(); // Check if units are faces the wrong way FacingDirectionUnits(attackingUnit, defendingUnit); // Dispatch the animation fight event. But set the needsanimating to true. OnAnimFight fight = new OnAnimFight(); fight.attacker = attackingUnit; fight.defender = defendingUnit; fight.needsAnimating = true; EventHandler.dispatch(fight); } else { Notificator.Notify("Move to this unit to attack!", 1f); } } } } } }
private void deleteCommuneButton_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { using (DiabetContext dc = new DiabetContext()) { int selectedRow = communesTable.CurrentCell.RowIndex; Commune selectedCommune = communesTable.Rows[selectedRow].DataBoundItem as Commune; if (TryDeleteCommune(selectedCommune)) { communesTable.Rows.RemoveAt(selectedRow); communesListIsChange = true; } else { Notificator.ShowError("Неможливо видалити громаду, так як в БД існують пацієнти записані на цю громаду"); } } }
/// <summary> /// Заполняет поле <see cref="exportToOracle"/> данными кортежа. /// </summary> private void ConvertTupleToDataTable() { #if DEBUG Notificator.Write("ExportNsiItemModel XMLBody: " + TupleElementValue("XMLstring")); #endif // Получаем строковое представление XML от ГИС ЖКХ. var XMLBody = TupleElementValue("XMLstring"); // Создаём объект класса-маршрутизатора, который по входящему параметру номеру справочника возвращает // специализированный класс-обработчик XML документа. XML.BuilderCreator builder = new XML.BuilderCreator(ResultData, XMLBody); // Получаем конкретный объект который из XML будет возвращать DataTable. var dataTableCreator = builder.GetBuilder(); // Результат обработки XML файла заносим в поле класса-модели. exportToOracle = dataTableCreator.BuildDataTable(); }
private void ProcessVoice(Message message) { Task.Run(async() => { var fileName = Path.ChangeExtension(Path.GetTempFileName(), ".mp4"); var fs = File.Create(fileName); try { Notificator.VoiceHandled(message); var file = await _client.GetFileAsync(message.Voice.FileId); await _client.DownloadFileAsync(file.FilePath, fs); fs.Close(); var mediaInfo = FFmpeg.GetMediaInfo(fileName).Result; IStream audioStream = mediaInfo.AudioStreams.FirstOrDefault() ?.SetCodec(AudioCodec.pcm_s16le) ?.SetChannels(1) ?.SetSampleRate(16000); var outputPath = @"C:\test\.test.wav"; //Path.ChangeExtension(Path.GetTempFileName(), ".wav"); await FFmpeg.Conversions.New().AddStream(audioStream).SetOutput(outputPath).Start(); //var text = await _voiceСonverter.ConvertAsync(fs.Name); //Notificator.VoiceConverted(message, text.Length); //await _client.SendTextMessageAsync(message.Chat.Id, PhrasesHelper.RandomVoice + $"\n{text}.", replyToMessageId: message.MessageId); } catch (Exception exc) { Notificator.Error(exc.Message); await _client.SendTextMessageAsync(message.Chat.Id, message.GetFromFirstName() + _settings.Messages.ErrorUploadMessage, replyToMessageId: message.MessageId); } finally { File.Delete(fs.Name); } }); }
public void TurnIncrease() { dayTurnCounter++; LevelManager lm = GameObjectReferences.GetGlobalScriptsGameObject().GetComponent <LevelManager>(); int turnsNeeded = lm.CurrentLevel.dayNightTurns[CurrentDayState]; bool ended = dayTurnCounter > turnsNeeded; if (ended) { int newNumber = (int)CurrentDayState + 1; int highest = 0; foreach (DayStates day in (DayStates[])Enum.GetValues(typeof(DayStates))) { int n = (int)day; if (n > highest) { highest = n; } if (newNumber > highest) { CurrentDayState = DayStates.Morning; dayTurnCounter = 1; } else if (n == newNumber) { CurrentDayState = day; dayTurnCounter = 1; } } StartTime = Time.time; Notificator.Notify(CurrentDayState.ToString() + " has arrived", 1.5f); } else { int turnsRemaining = (turnsNeeded - dayTurnCounter) + 1; Notificator.Notify(turnsRemaining + " turns remaining before new daystate!", 1.1f); } SetFowOfWar(); }
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddLogging(log => { log.ClearProviders(); log.SetMinimumLevel(LogLevel.Trace); log.AddNLog(hostContext.Configuration); }); services.AddEventDataAccessor(); services.AddRedisDataAccess(hostContext.Configuration); Notificator notificator = new Notificator(Environment.GetEnvironmentVariable("TOAST_API_KEY")); var logger = NLog.LogManager.GetCurrentClassLogger(); notificator.Logger = logger; services.AddSingleton(notificator); services.AddSingleton <EventSubscribeWorker>(); services.AddHostedService <Worker>(); });
public void NotificationHostViewModel_RemovesNotificationFromList_AfterCloseRequested() => new TestScheduler().With(scheduler => { var notificator = new Notificator(); var sut = new NotificationHostViewModel(notificator); sut.Activator.Activate(); notificator.PublishInfo("Hi"); // Pass throttle scheduler.AdvanceBy(TimeSpan.FromMilliseconds(100).Ticks + 1); var notification = sut.Notifications.First(); notification.Close.Execute(Unit.Default).Subscribe(); scheduler.AdvanceBy(4); Assert.Equal(0, sut.Notifications.Count); });
public async Task ShouldWorkInHighConcurrencyScenario( [Frozen] Notificator notificator, NotificatorConnection sut) { var notifyTask = Task.WhenAll(Enumerable.Range(0, 1000).Select(_ => Task.Run(async() => { await Wait(RandomNumberGenerator.GetInt32(100, 150)); notificator.NotifyReceived("message"); }))); var processingTask = Task.Run(async() => { for (var i = 0; i < 1000; i++) { Assert.Equal("message", await sut.ReceiveAsync(Cts.Token)); } }); await Task.WhenAll(notifyTask, processingTask); }
/// <summary> /// Возвращает данные о задаче в рамках выполнения запроса к сервисам ГИС ЖКХ. /// А именно: /// <see cref="DataPack.Path"/>, /// <see cref="DataPack.AddOrgPpaGuid"/>, /// <see cref="DataPack.AddSignature"/>, /// <see cref="DataPack.TemplatePath"/>, /// <see cref="DataPack.Action"/>, /// <see cref="DataPack.TemplateResponsePath"/>, /// <see cref="DataPack.ActionResponce"/>, /// <see cref="DataPack.MethodVersion"/>. /// </summary> protected void ProvideTaskInfo() { // Создаем параметры модели. OriginTaskParameters originTaskParameters = new OriginTaskParameters { taskId = taskDataPack.TaskId, connectSettings = string.Empty, operationsSelect = OriginTaskParameters.selectOperation.ProvideTaskInfo }; // Скармливаем конструктору. OriginTaskModel originTaskModel = new OriginTaskModel(originTaskParameters); // Выполняем выборку данных. originTaskModel.Select(); // Заполняем параметры задачи полученными из БД данными. taskDataPack.Path = originTaskModel.ResultData.Rows[0].Field <string>("PATH"); taskDataPack.TemplatePath = originTaskModel.ResultData.Rows[0].Field <string>("REQUEST_PATH"); taskDataPack.Action = originTaskModel.ResultData.Rows[0].Field <string>("REQUEST_ACTION"); taskDataPack.TemplateResponsePath = originTaskModel.ResultData.Rows[0].Field <string>("RESPONSE_PATH"); taskDataPack.ActionResponce = originTaskModel.ResultData.Rows[0].Field <string>("RESPONSE_ACTION"); taskDataPack.MethodVersion = originTaskModel.ResultData.Rows[0].Field <string>("VERSION"); taskDataPack.OrgPPAGUID = originTaskModel.ResultData.Rows[0].Field <string>("ORG_PPAGUID"); taskDataPack.AddOrgPpaGuid = Convert.ToBoolean(originTaskModel.ResultData.Rows[0].Field <System.Int16>("ADD_ORG_PPA_GUID")); taskDataPack.AddSignature = Convert.ToBoolean(originTaskModel.ResultData.Rows[0].Field <System.Int16>("ADD_SIGNATURE")); #if DEBUG Notificator.Write("PATH: " + taskDataPack.Path + " " + "REQUEST_PATH: " + taskDataPack.TemplatePath + " " + "REQUEST_ACTION: " + taskDataPack.Action + " " + "RESPONSE_PATH: " + taskDataPack.TemplateResponsePath + " " + "RESPONSE_ACTION: " + taskDataPack.ActionResponce + " " + "VERSION: " + taskDataPack.MethodVersion + " " + "ORG_PPAGUID: " + taskDataPack.OrgPPAGUID + " " + "ADD_ORG_PPA_GUID: " + taskDataPack.AddOrgPpaGuid.ToString() + " " + "ADD_SIGNATURE: " + taskDataPack.AddSignature.ToString() ); #endif }
static void Main() { try { MainFormWaiter.BeginWaiting("Програма завантажуєтся ..."); MainForm mf = new MainForm(); MainFormWaiter.EndWaiting(); Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); mf.Activate(); Application.Run(mf); } catch (Exception ex) { Notificator.ShowError(string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); } finally { MainFormWaiter.EndWaiting(); } }
void Update() { if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home)) { Application.Quit(); } #if UNITY_IPHONE //确保这手清除操作在设置消息数量的下一帧执行 if (Notificator.IOSClearFlag != 0) { if (Notificator.IOSClearFlag == 5) { Notificator.CleanIOSNotificationStep(); } else { Notificator.IOSClearFlag++; } } #endif }
public EntityService( Notificator notificator, IFetchingRecords source, ICreatingRecords creator, IUpdatingRecords updater, IDeletingRecords deleter, IComparingRecords comparer, IDescribingChanges changeDescriber, IHandlingFiles filesHandler, IValidatingEntities validator) { if (notificator == null) throw new ArgumentNullException("notificator"); if (source == null) throw new ArgumentNullException("source"); if (creator == null) throw new ArgumentNullException("creator"); if (updater == null) throw new ArgumentNullException("updater"); if (deleter == null) throw new ArgumentNullException("deleter"); if (comparer == null) throw new ArgumentNullException("comparer"); if (changeDescriber == null) throw new ArgumentNullException("changeDescriber"); if (filesHandler == null) throw new ArgumentNullException("filesHandler"); if (validator == null) throw new ArgumentNullException("validator"); _notificator = notificator; _source = source; _creator = creator; _updater = updater; _deleter = deleter; _comparer = comparer; _changeDescriber = changeDescriber; _filesHandler = filesHandler; _validator = validator; }
public RecordsDeleter( Notificator notificator, IExecutingDbCommand executor, IFetchingRecordsHierarchy hierarchySource) { if (notificator == null) { throw new ArgumentNullException("notificator"); } if (executor == null) { throw new ArgumentNullException("executor"); } if (hierarchySource == null) { throw new ArgumentNullException("hierarchySource"); } _notificator = notificator; _executor = executor; _hierarchySource = hierarchySource; }
public User UpdatePassword(Guid id, string oldPassword, string newPassword) { var user = UnitOfWork.Users.Get(id); if (Notificator.HasErrors()) { return(null); } var hasher = new PasswordHasher <User>(); var verify = hasher.VerifyHashedPassword(user, user.Password, oldPassword); if (PasswordVerificationResult.Failed == verify) { Notify(NotificationType.ERROR, string.Empty, "Old password is invalid."); return(null); } user.Password = hasher.HashPassword(user, newPassword); return(base.Update(user, "default")); }
public EntitiesController( Notificator notificator, IFetchingRecords entitiesSource, IConfiguration configuration) { if (notificator == null) { throw new ArgumentNullException("notificator"); } if (entitiesSource == null) { throw new ArgumentException("entitiesSource"); } if (configuration == null) { throw new ArgumentException("configuration"); } _notificator = notificator; _entitiesSource = entitiesSource; _configuration = configuration; }
private void deleteMedicamentMovementLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { int selectedRow = medicamentMovementTable.SelectedCells[0].RowIndex; MedicamentMovement remMedMovElem = medicamentMovementTable.Rows[selectedRow].DataBoundItem as MedicamentMovement; if (remMedMovElem.Medicament != null) { if (Notificator.ShowActionConfirmation("Ви впевнені, що хочете цей запис?") != System.Windows.Forms.DialogResult.Yes) { return; } } // Если мы удаляем из списка новосозданых элементов - помечам его отрицательным ID (чтобы найти) if (remMedMovElem.Id == 0) { remMedMovElem.Id = -1; addMedMovList.Remove(remMedMovElem); } else { editMedMovList.Remove(remMedMovElem); remMedMovList.Add(remMedMovElem); } medicamentMovementTable.Rows.RemoveAt(selectedRow); medicamentMovementList.Remove(remMedMovElem); filteredMedicamentMovementList.Remove(remMedMovElem); if (remMedMovElem.MovementOperationDate.Year == (int)medicamentsReportYearBox.SelectedValue) { applyYearFilterToMovements(); } else { medicamentMovementTable.Refresh(); } }
public RecordsUpdater( Notificator notificator, IExecutingDbCommand executor, IFetchingRecords source) { if (notificator == null) { throw new ArgumentNullException("notificator"); } if (executor == null) { throw new ArgumentNullException("executor"); } if (source == null) { throw new ArgumentNullException("source"); } _notificator = notificator; _executor = executor; _source = source; }
public GroupController( IIlaroAdmin admin, Notificator notificator, IRecordsService recordsService) { if (admin == null) { throw new ArgumentNullException(nameof(admin)); } if (notificator == null) { throw new ArgumentNullException(nameof(notificator)); } if (recordsService == null) { throw new ArgumentNullException(nameof(recordsService)); } _admin = admin; _notificator = notificator; _recordsService = recordsService; }
/// <summary> /// Cofiguring info about e-Mail. /// </summary> private void GetInfoAboutEmail() { string eMail = string.Empty; CustomersDAL cDAL = new CustomersDAL(); WriteLineWithSpecColor("Do you have e-Mail?"); if (GetSimpleUserAnswer()) { WriteLineWithSpecColor(@"You may subscribe on our notifications such as: pick order, successfully pay for the order and deliver order, but we need your email address. What your email address?"); eMail = Console.ReadLine(); while (!IsValidEmail(eMail)) { _botMoodState++; WriteLineWithSpecColor("Wrong e-Mail format"); eMail = Console.ReadLine(); } _customer.Email = eMail; cDAL.ReWriteEmail(_customer.FirstName, _customer.Surname, _customer.Email); _notificator = SendEmail; } else { if (cDAL.IsMailFilled(_customer.FirstName, _customer.Surname, out eMail) && eMail != string.Empty) { WriteLineWithSpecColor($"Oh we found your email in DB. That means you were here before. We will use this e-Mail: {eMail}"); _notificator = SendEmail; } else { WriteLineWithSpecColor("Unfortunately you can't receive notifications."); } } _customer.Email = eMail; }
public void NotifyEvent(string dest, string event_key) { dest = dest.ToLower(); Notificator selectedNot = null; if (dest.Equals("osiris")) { selectedNot = osirisNotificator; } if (dest.Equals("isis")) { selectedNot = isisNotificator; } if (selectedNot != null) { if (!triggeredEvents[event_key]) { selectedNot.gameObject.SetActive(true); selectedNot.Notify(events[event_key]); triggeredEvents[event_key] = true; } } }
private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(histRecMsg.Text)) { Notificator.ShowError("Введіть текст запису"); return; } PatientHistoryRecord newPatHistRec = new PatientHistoryRecord(); newPatHistRec.Description = histRecMsg.Text; newPatHistRec.RecordDate = histRecDate.Value; patientHistoryRecordsList.Add(newPatHistRec); addPatHistList.Add(newPatHistRec); if (dbRecord.Id > 0) { newPatHistRec.PatientId = dbRecord.Id; } dataGridView1.Refresh(); }
public override void Remove(Guid id) { var food = Get(id); if (Notificator.HasErrors()) { return; } if (UnitOfWork.Ingredients.Search(i => i.FoodId == food.Id).Any()) { Notify(NotificationType.ERROR, string.Empty, "It is not possible to delete foods that belong to recipes."); return; } using var transaction = UnitOfWork.BeginTransaction(); try { if (food.NutritionFacts != null) { UnitOfWork.NutritionFactsNutrients.Remove(food.NutritionFacts.NutritionFactsNutrients); UnitOfWork.NutritionFacts.Remove(food.NutritionFacts); } UnitOfWork.Foods.Remove(food); UnitOfWork.SaveChanges(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); Logger.LogError(e.Message); Notify(NotificationType.ERROR, string.Empty, $"There was an error removing '{nameof(Food)}'."); } }
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { Analyze selectedItem = analizesTable.Rows[analizesTable.SelectedCells[0].RowIndex].DataBoundItem as Analyze; if (TryDelete(selectedItem)) { analizesList.Remove(selectedItem); analizesTable.Refresh(); new Task(() => { using (DiabetContext dc = new DiabetContext()) { dc.Meters.Attach(selectedItem.AnalizeMeter); dc.Entry <Analyze>(selectedItem).State = EntityState.Deleted; dc.SaveChanges(); } }).Start(); } else { Notificator.ShowError("Неможливо видалити аналіз так як на нього є посилання в записах пацієнтів"); } }
/// <summary> /// Поставляет данные задачи из базы Oracle в <see cref="taskOracleData"/> /// </summary> protected override void ProvideTaskOracleData() { Contract.Requires(Regex.IsMatch(TaskDataPack.ServiceId, @"^\d+$")); Contract.Requires(Regex.IsMatch(TaskDataPack.MethodId, @"^\d+$")); Contract.Requires(Regex.IsMatch(TaskDataPack.TaskId, @"^\d+$")); Contract.Requires(Regex.IsMatch(TaskDataPack.LastStartDate, @"^(\d+\.){2}\d+\s(\d+\:){2}\d+.+$")); /// Заполняются параметры модели из <see cref="OriginTask.TaskDataPack"/>. Oracle.ExportNsiListParameters exportNsiListParameters = new Oracle.ExportNsiListParameters { task_id = TaskDataPack.TaskId, connectSettings = "" }; // Создаётся экземпляр класса ExportNsiListModel и в него передаются параметры. Oracle.ExportNsiListModel exportNsiListModel = new Oracle.ExportNsiListModel(exportNsiListParameters); exportNsiListModel.Select(); // Поле класса заполняется данными из Oracle. taskOracleData = exportNsiListModel.ResultData; #if DEBUG Notificator.Write("ExportNsiListTask, параметры задачи: " + exportNsiListModel.ResultData.Rows[0][0].ToString() + " " + exportNsiListModel.ResultData.Rows[0][1].ToString()); #endif }
private void ExecuteSubtask(object item) { try { // Извлекаем кадр - подзадачу. DataTable oracleData = GetSubtaskData(item.ToString()); // Просим фабрику сгенерить нам нужный объект var creator = new SubtaskCreator(TaskDataPack); // Создаем подзадачу на запрос в ГИС. var subtask = creator.GetSubtask(); // Скармливаем данные подзадачи subtask.OracleData = oracleData; // Формируем набор данных для выполнения запроса в ГИС. subtask.InitGisDataPack(item.ToString()); // Выполняем запрос к сервису ГИС ЖКХ. subtask.PerformGisRequest(); // Формируем набор данных для получения результатов запроса в ГИС ЖКХ. subtask.InitGisResultDataPack(); // Получаем результат работы сервиса ГИС ЖКХ. subtask.PerformGisRequestForResults(); // Записываем результаты работы сервиса в Oracle. subtask.WriteGisResultsToOracle(); } catch (Exception ex) { Notificator.Write("Ошибка. Task_id = " + TaskDataPack.TaskId + ", REQUESTER_MESSAGE_GUID = " + item.ToString() + ". OriginTask. ExecuteSubtask(). Сообщение об ошибке: " + ex.Message + "Stack Trace: " + ex.StackTrace, EventLogEntryType.Error); } }
public async Task ShouldUnsubscribeAfterNotification( [Frozen] Notificator notificator, NotificatorConnection sut) { int GetSubscriptionCount() { return((typeof(Notificator) .GetField(nameof(Notificator.Received), BindingFlags.Instance | BindingFlags.NonPublic)? .GetValue(notificator) as Action)?.GetInvocationList()?.Length ?? 0); } Assert.Equal(0, GetSubscriptionCount()); var result = sut.ReceiveAsync(Cts.Token); await Wait(); Assert.Equal(1, GetSubscriptionCount()); notificator.NotifyReceived(Create <object>()); await result; Assert.Equal(0, GetSubscriptionCount()); }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { string templateFilePath = System.IO.Path.Combine(PathFinder.GetProgramPath(), "template", "template_yearneed.xls"); if (!System.IO.File.Exists(templateFilePath)) { Notificator.ShowError("Файл шаблону відсутній! Формування звіту неможливе!"); return; } Excel.Application xlApp = new Excel.Application(); if (xlApp == null) { Notificator.ShowError("Помилка при завантаженні екземпляру Excel"); return; } backgroundWorker1.ReportProgress(2); xlApp.DisplayAlerts = false; Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(templateFilePath); if (xlWorkbook == null) { xlApp.Quit(); xlApp = null; Notificator.ShowError("Помилка при завантаженні файлу-шаблону"); return; } backgroundWorker1.ReportProgress(4); Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkbook.Worksheets[1]; if (xlWorkSheet == null) { xlWorkbook.Close(0); xlApp.Quit(); xlApp = null; Notificator.ShowError("Помилка при завантаженні файлу-шаблону"); return; } backgroundWorker1.ReportProgress(6); List <MedicamentAssignation> originalAssignation = new List <MedicamentAssignation>(); using (DiabetContext dc = new DiabetContext()) { originalAssignation = dc.MedicamentAssigantions .Include(t => t.AssignMedicament) .Include(t => t.AssignMedicament.AgentDozages) .Include(t => t.AssignMedicament.AgentDozages.Select(m => m.Agent)) .Include(t => t.AssignMedicament.AgentDozages.Select(m => m.DozageMeter)) .Include(t => t.Patient) .Include(t => t.Patient.PatientCommune) .Include(t => t.AssignMedicament.FullName) .Include(t => t.AssignMedicament.MedicamentType) .ToList(); } backgroundWorker1.ReportProgress(8); // Заменяем медикаменты, который требуется изменить List <YearMedicamentNeed> medicamentsToReplace = medicamentsList.Where(t => t.OldMedNameValue != null).ToList(); if (medicamentsToReplace.Count > 0) { foreach (var item in originalAssignation) { foreach (var item2 in medicamentsToReplace) { if (item.AssignMedicament.Equals(item2.OldMedNameValue)) { item.AssignMedicament = item2.MedName; } } } } backgroundWorker1.ReportProgress(10); List <ExcelYearMedicamentNeedItem> medicamentsRightList = originalAssignation .GroupBy(t => new { t.Patient.PatientCommune, t.AssignMedicament }) .Select(t => new ExcelYearMedicamentNeedItem { Commune = t.Key.PatientCommune, Medicament = t.Key.AssignMedicament, NumOfTablets = t.Sum(m => m.YearDozage) }).ToList(); backgroundWorker1.ReportProgress(12); var medicamentsGroupedByCommuneList = medicamentsRightList .GroupBy(t => t.Commune) .Select(t => new { Commune = t.Key, Medicament = t.Select(m => new ExcelYearMedicamentNeedItem { Commune = t.Key, Medicament = m.Medicament, NumOfTablets = m.NumOfTablets }).ToList() }).ToList(); backgroundWorker1.ReportProgress(14); int communeGroupsCount = medicamentsGroupedByCommuneList.Count(); int currentWritePosition = EXCEL_START_ROW; string numColumnLetter = "A"; string nameColumnLetter = "B"; string tabletsNumLetter = "C"; string packageNumColumnLetter = "D"; string priceColumnLetter = "E"; string sumColumnLetter = "F"; try { xlWorkSheet.get_Range("A2").Value = "РІЧНА ПОТРЕБА В МЕДИКАМЕНТАХ НА " + reportYear + " РІК"; Dictionary <Medicament, MedicamentTotalsForExcel> medicamentTotals = new Dictionary <Medicament, MedicamentTotalsForExcel>(); int progressRest = 90 - Convert.ToInt32(progressBar1.Value); double progressStepForCommune = (progressRest * 1.0) / communeGroupsCount; for (int i = 0; i < communeGroupsCount; i++, currentWritePosition++) { if (workWasCanceled) { throw new Exception("Формування звіту було відмінене користувачем!"); } // Выводи данные (название) громады xlWorkSheet.get_Range(numColumnLetter + currentWritePosition, sumColumnLetter + currentWritePosition).Merge(); xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).Font.Bold = true; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).Value = medicamentsGroupedByCommuneList[i].Commune.ToString(); // Выводим список используемых медикаментов пациентами-жителями громады int medicamentsCount = medicamentsGroupedByCommuneList[i].Medicament.Count(); currentWritePosition++; for (int j = 0; j < medicamentsCount; j++, currentWritePosition++) { if (workWasCanceled) { throw new Exception("Формування звіту було відмінене користувачем!"); } xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).Value = (j + 1).ToString(); xlWorkSheet.get_Range(nameColumnLetter + currentWritePosition).Value = medicamentsGroupedByCommuneList[i].Medicament[j].Medicament.ToString(); xlWorkSheet.get_Range(tabletsNumLetter + currentWritePosition).Value = medicamentsGroupedByCommuneList[i].Medicament[j].NumOfTablets.ToString(); xlWorkSheet.get_Range(packageNumColumnLetter + currentWritePosition).Value = medicamentsGroupedByCommuneList[i].Medicament[j].numOfPackages.ToString(); xlWorkSheet.get_Range(priceColumnLetter + currentWritePosition).Value = medicamentsGroupedByCommuneList[i].Medicament[j].Medicament.Price.ToString(); xlWorkSheet.get_Range(sumColumnLetter + currentWritePosition).Value = "=" + packageNumColumnLetter + currentWritePosition + "*" + priceColumnLetter + currentWritePosition; // Записываем адреса ячеек с суммами по медикаментам if (!medicamentTotals.ContainsKey(medicamentsGroupedByCommuneList[i].Medicament[j].Medicament)) { medicamentTotals.Add(medicamentsGroupedByCommuneList[i].Medicament[j].Medicament, new MedicamentTotalsForExcel()); } medicamentTotals[medicamentsGroupedByCommuneList[i].Medicament[j].Medicament] .MedicamentTabletCells.Add(tabletsNumLetter + currentWritePosition); medicamentTotals[medicamentsGroupedByCommuneList[i].Medicament[j].Medicament] .MedicamentPackageCells.Add(packageNumColumnLetter + currentWritePosition); medicamentTotals[medicamentsGroupedByCommuneList[i].Medicament[j].Medicament] .Price = medicamentsGroupedByCommuneList[i].Medicament[j].Medicament.Price; } StringBuilder sb = new StringBuilder(); sb.Append("="); for (int k = medicamentsCount; k > 0; k--) { sb.Append((sumColumnLetter + (currentWritePosition - k)) + "+"); } xlWorkSheet.get_Range(nameColumnLetter + currentWritePosition).Value = "ВСЬОГО"; xlWorkSheet.get_Range(nameColumnLetter + currentWritePosition).Font.Bold = true; xlWorkSheet.get_Range(sumColumnLetter + currentWritePosition).Value = sb.ToString().Substring(0, sb.ToString().Count() - 1); xlWorkSheet.get_Range(sumColumnLetter + currentWritePosition).Font.Bold = true; int progressChange = Convert.ToInt32(progressRest + progressStepForCommune); backgroundWorker1.ReportProgress(progressChange); } // Выводим итоги currentWritePosition++; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition, sumColumnLetter + currentWritePosition).Merge(); xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).Font.Bold = true; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).Value = "ЗАГАЛЬНА ПОТРЕБА"; currentWritePosition++; foreach (Medicament key in medicamentTotals.Keys) { if (workWasCanceled) { throw new Exception("Формування звіту було відмінене користувачем!"); } xlWorkSheet.get_Range(nameColumnLetter + currentWritePosition).Value = key.ToString(); xlWorkSheet.get_Range(nameColumnLetter + currentWritePosition).Font.Bold = true; xlWorkSheet.get_Range(tabletsNumLetter + currentWritePosition).Value = medicamentTotals[key].GetTabletsSumFormula(); xlWorkSheet.get_Range(tabletsNumLetter + currentWritePosition).Font.Bold = true; xlWorkSheet.get_Range(packageNumColumnLetter + currentWritePosition).Value = medicamentTotals[key].GetPackagesSumFormula(); xlWorkSheet.get_Range(packageNumColumnLetter + currentWritePosition).Font.Bold = true; xlWorkSheet.get_Range(priceColumnLetter + currentWritePosition).Value = medicamentTotals[key].Price; xlWorkSheet.get_Range(priceColumnLetter + currentWritePosition).Font.Bold = true; xlWorkSheet.get_Range(sumColumnLetter + currentWritePosition).Value = "=" + (priceColumnLetter + currentWritePosition) + "*" + (packageNumColumnLetter + currentWritePosition); xlWorkSheet.get_Range(sumColumnLetter + currentWritePosition).Font.Bold = true; currentWritePosition++; } // Рисуем внешние границы таблицы отчета xlWorkSheet.get_Range(numColumnLetter + EXCEL_START_ROW, sumColumnLetter + currentWritePosition) .Borders[Excel.XlBordersIndex.xlEdgeBottom].Weight = xlWorkSheet.get_Range(numColumnLetter + EXCEL_START_ROW, sumColumnLetter + currentWritePosition) .Borders[Excel.XlBordersIndex.xlEdgeTop].Weight = xlWorkSheet.get_Range(numColumnLetter + EXCEL_START_ROW, sumColumnLetter + currentWritePosition) .Borders[Excel.XlBordersIndex.xlEdgeLeft].Weight = xlWorkSheet.get_Range(numColumnLetter + EXCEL_START_ROW, sumColumnLetter + currentWritePosition) .Borders[Excel.XlBordersIndex.xlEdgeRight].Weight = 3d; // Рисуем внутренние границы таблицы отчёта xlWorkSheet.get_Range(numColumnLetter + EXCEL_START_ROW, sumColumnLetter + currentWritePosition) .Borders[Excel.XlBordersIndex.xlInsideHorizontal].Weight = xlWorkSheet.get_Range(numColumnLetter + EXCEL_START_ROW, sumColumnLetter + currentWritePosition) .Borders[Excel.XlBordersIndex.xlInsideVertical].Weight = 2d; // Подписываемся под отчётом currentWritePosition += 2; string doctorPosition = string.Empty; string doctorFirstName = string.Empty; string doctorLastName = string.Empty; string doctorMiddleName = string.Empty; using (DiabetContext dc = new DiabetContext()) { doctorPosition = dc.Settings.First().DoctorPosition; doctorFirstName = dc.Settings.First().DoctorFirstName; doctorLastName = dc.Settings.First().DoctorLastName; doctorMiddleName = dc.Settings.First().DoctorMiddleName; } // Составитель xlWorkSheet.get_Range(numColumnLetter + currentWritePosition, nameColumnLetter + currentWritePosition).Merge(); xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).Value = "Склав:"; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).Font.Bold = true; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft; currentWritePosition++; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition, nameColumnLetter + currentWritePosition).Merge(); xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).Value = doctorPosition; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).Font.Bold = true; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft; xlWorkSheet.get_Range(priceColumnLetter + currentWritePosition, sumColumnLetter + currentWritePosition).Merge(); xlWorkSheet.get_Range(priceColumnLetter + currentWritePosition).Value = string.Format("{1}.{2}. {0}", doctorLastName, doctorFirstName.Substring(0, 1), doctorMiddleName.Substring(0, 1)); xlWorkSheet.get_Range(priceColumnLetter + currentWritePosition).Font.Bold = true; xlWorkSheet.get_Range(priceColumnLetter + currentWritePosition).HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft; // Дата составления currentWritePosition += 2; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition, nameColumnLetter + currentWritePosition).Merge(); xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft; xlWorkSheet.get_Range(numColumnLetter + currentWritePosition).Value = string.Format("Дата складення: {0}", DateTime.Now.ToShortDateString()); string filenameToSave = "Потреба медикаменти на " + reportYear + " рік.xls"; string saveFilePath = System.Configuration.ConfigurationManager.AppSettings["ReportsSaveDirectory"]; xlWorkbook.SaveAs(System.IO.Path.Combine(saveFilePath, filenameToSave)); backgroundWorker1.ReportProgress(100); workWasCanceled = false; } catch (Exception ex) { Notificator.ShowError(ex.Message); } finally { xlWorkbook.Close(0); xlApp.Quit(); } }