Esempio n. 1
0
    public void Initialisaition()
    {
        skipArrow.SetActive(false);
        skipText.gameObject.SetActive(false);
        statement = MessageStatement.needNextMessage;

        StartCoroutine(GoInConseillere(true));
    }
Esempio n. 2
0
 public void SkipMessage()
 {
     if (statement == MessageStatement.needNextMessage)
     {
         TutorielManager.Instance.currentIndex++;
         AffichageMessage();
     }
     else if (statement == MessageStatement.typing)
     {
         StopCoroutine(AffichageMessageEnum(0.05f, messages[TutorielManager.Instance.currentIndex]));
         currentText     = messages[TutorielManager.Instance.currentIndex];
         bubbleText.text = currentText;
         statement       = MessageStatement.needNextMessage;
     }
 }
Esempio n. 3
0
    public IEnumerator AffichageMessageEnum(float delay, string fullText)
    {
        skipArrow.SetActive(false);
        skipText.gameObject.SetActive(false);

        statement = MessageStatement.typing;

        bubbleText.text = "";
        currentText     = "";

        for (int i = 0; i < fullText.Length; i++)
        {
            if (statement == MessageStatement.typing)
            {
                currentText     = fullText.Substring(0, i);
                bubbleText.text = currentText;
                yield return(new WaitForSeconds(delay));
            }
        }

        skipArrow.SetActive(true);
        skipText.gameObject.SetActive(true);
        statement = MessageStatement.needNextMessage;
    }
Esempio n. 4
0
        /// <summary>
        /// Возвращает маппинг Statement на PersonErp
        /// </summary>
        /// <param name="batch">
        /// The batch.
        /// </param>
        /// <param name="statement">
        /// The statement.
        /// </param>
        /// <returns>
        /// The <see cref="PersonErp"/>.
        /// </returns>
        public PersonErp GetPersonErp(Batch batch, Statement statement)
        {
            var personErp = new PersonErp
            {
                BeginPacket = GetBhs(batch.Id, statement),
                Adt_A01     = new List <ADT_A01>(),
                EndPacket   = GetBts(statement.MedicalInsurances.Count)
            };

            var session        = ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession();
            var conceptManager = ObjectFactory.GetInstance <IConceptCacheManager>();

            foreach (var insurance in statement.MedicalInsurances)
            {
                // Создаем сообщение
                var message = new Message();
                message.Batch    = batch;
                message.Type     = conceptManager.GetById(model.srz.concepts.TransactionCode.A08);
                message.Reason   = GetReason(statement);
                message.IsCommit = false;
                message.IsError  = false;
                session.Save(message);

                // Связка
                var messageStatement = new MessageStatement();
                messageStatement.Message   = message;
                messageStatement.Statement = statement;
                messageStatement.Type      = conceptManager.GetById(MessageStatementType.MainStatement);
                messageStatement.Version   = statement.Version;
                session.Save(messageStatement);

                personErp.Adt_A01.Add(GetAdtA01(statement, insurance, message));
            }

            return(personErp);
        }
Esempio n. 5
0
        /// <summary>
        /// Обработка
        /// </summary>
        /// <param name="file">
        /// Путь к файлу загрузки
        /// </param>
        /// <param name="context">
        /// The context.
        /// </param>
        /// <returns>
        /// был ли обработан пакет
        /// </returns>
        public override bool Processing(FileInfo file, IJobExecutionContext context)
        {
            var logger         = LogManager.GetCurrentClassLogger();
            var conceptManager = ObjectFactory.GetInstance <IConceptCacheManager>();

            // Попытка десериализации файла и создание батча
            var   operList = new OPListType();
            Batch batch;

            try
            {
                // Десериализация
                operList = XmlSerializationHelper.Deserialize(file.FullName, operList) as OPListType;

                // Создание батча
                batch = CreateBatch(operList);
            }
            catch (Exception ex)
            {
                // Ошибка десериализации либо создания бачта
                logger.Error(ex.Message, ex);
                throw;
            }

            // Вычисляем код ПВП
            var splittedFileName = batch.FileName.Split(new[] { '_' });

            if (splittedFileName.Length == 3)
            {
            }

            // Создаем экспортер для файлов ответа и стартуем батч
            var repExp =
                ObjectFactory.GetInstance <IExporterBatchFactory <REPListType, REPType> >().GetExporter(Exporters.SmoRepExporter);

            repExp.FileName   = batch.FileName.Replace("i", "p"); // Меняем префикс в имени файла ответа
            repExp.Number     = batch.Number;
            repExp.PeriodId   = batch.Period.Id;
            repExp.SenderId   = batch.Receiver.Id;
            repExp.ReceiverId = batch.Sender.Id;
            repExp.BeginBatch();

            // Создаем экспортер для файлов ответа c протоколом ФЛК и стартуем батч
            var flkRepExp =
                ObjectFactory.GetInstance <IExporterBatchFactory <PFLKType, PRType> >().GetExporter(Exporters.SmoFlkExporter);

            flkRepExp.FileName   = batch.FileName.Replace("i", "f"); // Меняем префикс в имени файла ответа
            flkRepExp.Number     = batch.Number;
            flkRepExp.PeriodId   = batch.Period.Id;
            flkRepExp.SenderId   = batch.Receiver.Id;
            flkRepExp.ReceiverId = batch.Sender.Id;
            flkRepExp.BeginBatch();

            // Проход по записям, маппинг и сохранение заявления
            bool goodAnswer;

            if (operList != null)
            {
                foreach (var op in operList.OP)
                {
                    Statement statement = null;
                    try
                    {
                        // Маппинг
                        statement = MapStatement(op);

                        // Сохраняем заявление

                        // Создаем Message
                        var message = new Message();
                        message.Batch    = batch;
                        message.IsCommit = true;
                        message.IsError  = false;
                        message.Type     = conceptManager.GetById(TransactionCode.K);
                        ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession().Save(message);

                        // Создаем MessageStatement
                        var messageStat = new MessageStatement();
                        messageStat.Statement = statement;
                        messageStat.Message   = message;
                        messageStat.Version   = statement.Version;
                        messageStat.Type      = conceptManager.GetById(MessageStatementType.MainStatement);
                        ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession().Save(messageStat);

                        // Сбрасываем изменения в БД
                        ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession().Flush();

                        goodAnswer = true;
                    }
                    catch (LogicalControlException ex)
                    {
                        // ошибка ФЛК
                        logger.Info(ex.Message, ex);
                        logger.Info(op);
                        logger.Info(statement);
                        goodAnswer = false;

                        // Пишем ошибки ФЛК в ответ
                        foreach (var err in ex.LogicalControlExceptions)
                        {
                            // Пишем ошибки ФЛК в ответ
                            var flkAnswer = new PRType();
                            flkAnswer.N_REC   = op.N_REC;
                            flkAnswer.OSHIB   = err.Info.Code;
                            flkAnswer.COMMENT = err.Message;
                            flkRepExp.AddNode(flkAnswer);
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex.Message, ex);
                        logger.Error(op);
                        logger.Error(statement);
                        goodAnswer = false;
                    }

                    // Пишем ответ
                    var answer = new REPType();
                    answer.N_REC    = op.N_REC;
                    answer.ID       = op.ID;
                    answer.CODE_ERP = goodAnswer ? CodeConfirm.AA : CodeConfirm.CA;
                    repExp.AddNode(answer);
                }
            }

            // Коммитим батч ответа
            repExp.CommitBatch();

            // Коммитим батч ответа ФЛК
            flkRepExp.CommitBatch();

            return(true);
        }
Esempio n. 6
0
        /// <summary>
        /// Обработка
        /// </summary>
        /// <param name="file">
        /// Путь к файлу загрузки
        /// </param>
        /// <param name="context">
        /// The context.
        /// </param>
        /// <returns>
        /// был ли обработан пакет
        /// </returns>
        public override bool Processing(FileInfo file, IJobExecutionContext context)
        {
            var logger         = LogManager.GetCurrentClassLogger();
            var conceptManager = ObjectFactory.GetInstance <IConceptCacheManager>();

            // Попытка десериализации файла и создание батча
            var   recList = new RECListType();
            Batch batch   = null;

            try
            {
                // Десериализация
                recList = XmlSerializationHelper.Deserialize(file.FullName, recList) as RECListType;

                // Создание батча
                // batch = CreateBatch(recList);
            }
            catch (Exception ex)
            {
                // Ошибка десериализации
                logger.Error(ex.Message, ex);
                throw;
            }

            // Проход по записям, маппинг и сохранение заявления
            if (recList != null)
            {
                foreach (var rec in recList.REC)
                {
                    Statement statement = null;
                    try
                    {
                        // Маппинг
                        statement = MapStatement(rec);

                        // Сохраняем заявление
                        // ObjectFactory.GetInstance<IStatementManager>().ReplicateStatement(statement, GetPdpCodeFromFileName(batch.FileName));

                        // Создаем Message
                        var message = new Message();
                        message.Batch    = batch;
                        message.IsCommit = true;
                        message.IsError  = false;
                        message.Type     = conceptManager.GetById(TransactionCode.K);
                        ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession().Save(message);

                        // Создаем MessageStatement
                        var messageStat = new MessageStatement();
                        messageStat.Statement = statement;
                        messageStat.Message   = message;
                        messageStat.Version   = statement.Version;
                        messageStat.Type      = conceptManager.GetById(MessageStatementType.MainStatement);
                        ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession().Save(messageStat);

                        // Сбрасываем изменения в БД
                        ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession().Flush();
                    }
                    catch (LogicalControlException ex)
                    {
                        // ошибка ФЛК
                        logger.Info(ex.Message, ex);
                        logger.Info(rec);
                        logger.Info(statement);
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex.Message, ex);
                        logger.Error(rec);
                        logger.Error(statement);
                    }
                }
            }

            return(true);
        }