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;
        }
Beispiel #3
0
        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;
        }
Beispiel #4
0
        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;
        }
Beispiel #5
0
        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;
        }
Beispiel #6
0
        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;
        }
Beispiel #7
0
        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);
        });
Beispiel #8
0
        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;
        }
Beispiel #9
0
        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("Дані успішно збережені!");
            }
        }
Beispiel #10
0
        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));
        }
Beispiel #11
0
    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);
    }
Beispiel #12
0
        /// <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);
                            }
                        }
                    }
                }
            }
        }
Beispiel #13
0
        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();
        }
Beispiel #15
0
        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);
                }
            });
        }
Beispiel #16
0
        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);
        });
Beispiel #19
0
    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);
    }
Beispiel #20
0
        /// <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
        }
Beispiel #21
0
 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;
        }
Beispiel #24
0
        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;
        }
Beispiel #25
0
        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"));
        }
Beispiel #26
0
        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;
        }
Beispiel #27
0
        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();
            }
        }
Beispiel #28
0
        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;
        }
Beispiel #30
0
        /// <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;
        }
Beispiel #31
0
    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;
            }
        }
    }
Beispiel #32
0
        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();
        }
Beispiel #33
0
        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)}'.");
            }
        }
Beispiel #34
0
        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("Неможливо видалити аналіз так як на нього є посилання в записах пацієнтів");
            }
        }
Beispiel #35
0
        /// <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
        }
Beispiel #36
0
        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);
            }
        }
Beispiel #37
0
    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();
            }
        }