コード例 #1
0
        protected override IEnumerable <Script> ReadComponents(ComponentModel model, string componentFolderPath)
        {
            var entity = PackageHandlerUtils.CreateEntity <Script>(model);

            var stateReq = model.Card.Requisites
                           .FirstOrDefault(r => r.Code == StateReqName);

            if (stateReq != null)
            {
                entity.State = stateReq.ValueLocalizeID == Active ? ComponentState.Active : ComponentState.Closed;
            }

            var calculationTextFile = Path.Combine(componentFolderPath, "Text.isbl");

            if (File.Exists(calculationTextFile))
            {
                entity.CalculationText = File.ReadAllText(calculationTextFile, Encoding.GetEncoding(1251));
            }
            else
            {
                log.Warn($"File not found {calculationTextFile}");
                entity.CalculationText = string.Empty;
            }

            yield return(entity);
        }
コード例 #2
0
        protected override IEnumerable <RouteBlock> ReadComponents(ComponentModel model, string componentFolderPath)
        {
            var entity = PackageHandlerUtils.CreateEntity <RouteBlock>(model);

            var stateReq = model.Card.Requisites
                           .FirstOrDefault(r => r.Code == StateReqName);

            if (stateReq != null)
            {
                entity.State = stateReq.ValueLocalizeID == Active ? ComponentState.Active : ComponentState.Closed;
            }

            var baseBlockTypeReq = model.Card.Requisites
                                   .FirstOrDefault(r => r.Code == BaseBlockTypeReqName);

            if (baseBlockTypeReq != null)
            {
                entity.BaseBlockType = RouteBlockUtils.GetBaseBlockType(baseBlockTypeReq.ValueLocalizeID);
            }
            else
            {
                entity.BaseBlockType = RouteBlockType.Unknown;
            }

            var blockPropertiesFile = Path.Combine(componentFolderPath, "Properties.xml");

            if (File.Exists(blockPropertiesFile))
            {
                var blockProperties = File.ReadAllText(blockPropertiesFile, Encoding.GetEncoding(1251));
                var description     = WorkflowDescriptionParser.Parse(blockProperties);
                entity.WorkflowBlock = description.Blocks.FirstOrDefault();
                if (entity.WorkflowBlock != null)
                {
                    ReadActions(entity.WorkflowBlock, componentFolderPath);
                    ReadEvents(entity.WorkflowBlock, componentFolderPath);
                    ReadProperties(entity.WorkflowBlock, componentFolderPath);
                }
                else
                {
                    log.Warn($"Cannot read properties for block {entity.Name}");
                }
            }
            else
            {
                log.Warn($"File not found {blockPropertiesFile}");
            }

            yield return(entity);
        }
コード例 #3
0
    protected override IEnumerable<Dialog> ReadComponents(ComponentModel model, string componentFolderPath)
    {
      var entity = PackageHandlerUtils.CreateEntity<Dialog>(model);

      var cardFormFile = Path.Combine(componentFolderPath, "CardForm.dfm");
      if (File.Exists(cardFormFile))
        entity.CardForm = File.ReadAllText(cardFormFile, Encoding.GetEncoding(1251));
      else
        log.Warn($"File not found {cardFormFile}");

      ReadMethods(model, entity, componentFolderPath);
      ReadMethodsParameters(model, entity);
      ReadActions(model, entity, componentFolderPath);
      ReadEvents(entity, componentFolderPath);
      ReadCardRequisites(model, entity, componentFolderPath);

      yield return entity;
    }
コード例 #4
0
        protected override IEnumerable <DocumentCardType> ReadComponents(ComponentModel model, string componentFolderPath)
        {
            var entity = PackageHandlerUtils.CreateEntity <DocumentCardType>(model);

            var stateReq = model.Card.Requisites
                           .FirstOrDefault(r => r.Code == StateReqName);

            if (stateReq != null)
            {
                entity.State = stateReq.ValueLocalizeID == Active ? ComponentState.Active : ComponentState.Closed;
            }

            var numerationMethodReq = model.Card.Requisites
                                      .FirstOrDefault(r => r.Code == NumerationMethodReqName);

            if (numerationMethodReq != null)
            {
                switch (numerationMethodReq.ValueLocalizeID)
                {
                case StronglyAuto:
                    entity.NumerationMethod = NumerationMethod.StronglyAuto;
                    break;

                case Auto:
                    entity.NumerationMethod = NumerationMethod.Auto;
                    break;

                case Manual:
                    entity.NumerationMethod = NumerationMethod.Manual;
                    break;
                }
            }

            ReadMethods(model, entity, componentFolderPath);
            ReadMethodsParameters(model, entity);
            ReadActions(model, entity, componentFolderPath);
            ReadEvents(entity, componentFolderPath);
            ReadCardRequisites(model, entity, componentFolderPath);
            ReadViews(model, entity, componentFolderPath);

            yield return(entity);
        }
コード例 #5
0
        protected override IEnumerable <LocalizationString> ReadComponents(LocalizationStringsExportModel model, string componentFolderPath)
        {
            foreach (var localizationStringModel in model.LocalizationStrings)
            {
                var entity = PackageHandlerUtils.CreateEntity <LocalizationString>(localizationStringModel);

                if (localizationStringModel.DetailDataSets?.DetailDataSet1 != null)
                {
                    var stringModels = localizationStringModel.DetailDataSets.DetailDataSet1.Rows;
                    foreach (var stringModel in stringModels)
                    {
                        var localizationValue = new LocalizationValue();

                        var groupReq = stringModel.Requisites
                                       .FirstOrDefault(r => r.Code == GroupReqName);
                        if (groupReq != null)
                        {
                            entity.Group = groupReq.Value;
                        }

                        var languageReq = stringModel.Requisites
                                          .FirstOrDefault(r => r.Code == LanguageReqName);
                        if (languageReq != null)
                        {
                            localizationValue.Language = languageReq.Value;
                        }

                        var valueReq = stringModel.Requisites
                                       .FirstOrDefault(r => r.Code == ValueReqName);
                        if (valueReq != null)
                        {
                            localizationValue.Value = valueReq.Value;
                        }

                        entity.Values.Add(localizationValue);
                    }
                }

                yield return(entity);
            }
        }
コード例 #6
0
        protected override IEnumerable <Viewer> ReadComponents(ComponentModel model, string componentFolderPath)
        {
            var entity = PackageHandlerUtils.CreateEntity <Viewer>(model);

            var extensionReq = model.Card.Requisites
                               .FirstOrDefault(r => r.Code == ExtensionReqName);

            if (extensionReq != null)
            {
                entity.Extension = extensionReq.Value;
            }

            var viewerTypeReqName = model.Card.Requisites
                                    .FirstOrDefault(r => r.Code == ViewerTypeReqName);

            if (viewerTypeReqName != null)
            {
                switch (viewerTypeReqName.ValueLocalizeID)
                {
                case CrystalReports:
                    entity.ViewerType = ViewerType.CrystalReports;
                    break;

                case MicrosoftExcel:
                    entity.ViewerType = ViewerType.Excel;
                    break;

                case MicrosoftWord:
                    entity.ViewerType = ViewerType.Word;
                    break;

                case Internal:
                    entity.ViewerType = ViewerType.Internal;
                    break;
                }
            }

            yield return(entity);
        }
コード例 #7
0
        protected override IEnumerable <Constant> ReadComponents(ComponentModel model, string componentFolderPath)
        {
            var entity = PackageHandlerUtils.CreateEntity <Constant>(model);

            var isReplicatedReq = model.Card.Requisites
                                  .FirstOrDefault(r => r.Code == IsReplicatedReqName);

            if (isReplicatedReq != null)
            {
                entity.IsReplicated = isReplicatedReq.ValueLocalizeID == Replicate;
            }

            var isCommonReq = model.Card.Requisites
                              .FirstOrDefault(r => r.Code == IsCommonReqName);

            if (isCommonReq != null)
            {
                entity.IsCommon = isCommonReq.ValueLocalizeID == Common;
            }

            yield return(entity);
        }
コード例 #8
0
        protected override IEnumerable <Function> ReadComponents(ComponentModel model, string componentFolderPath)
        {
            var entity = PackageHandlerUtils.CreateEntity <Function>(model);

            var functionCategoryReq = model.Card.Requisites
                                      .FirstOrDefault(r => r.Code == FunctionCategoryReqName);

            if (functionCategoryReq != null)
            {
                entity.IsSystem = functionCategoryReq.ValueLocalizeID == SystemCategory;
            }

            var functionTextFile = Path.Combine(componentFolderPath, TextFileName);

            if (File.Exists(functionTextFile))
            {
                entity.CalculationText = File.ReadAllText(functionTextFile, Encoding.GetEncoding(1251));
            }
            else
            {
                log.Warn($"File not found {functionTextFile}");
            }

            var functionHelpTextFile = Path.Combine(componentFolderPath, HelpFileName);

            if (File.Exists(functionHelpTextFile))
            {
                entity.Help = File.ReadAllText(functionHelpTextFile, Encoding.GetEncoding(1251));
            }
            else
            {
                log.Warn($"File not found {functionHelpTextFile}");
            }

            var functionCommentReq = model.Card.Requisites
                                     .FirstOrDefault(r => r.Code == FunctionCommentReqName);

            if (functionCommentReq != null)
            {
                entity.Comment = functionCommentReq.Value;
            }

            if (model.DetailDataSets?.DetailDataSet1 != null)
            {
                var argModels = model.DetailDataSets.DetailDataSet1.Rows;
                foreach (var argModel in argModels)
                {
                    var argument = new FunctionArgument();

                    var argumentNumberReq = argModel.Requisites
                                            .FirstOrDefault(r => r.Code == ArgumentNumberReqName);
                    if (argumentNumberReq != null)
                    {
                        argument.Number = int.Parse(argumentNumberReq.Value);
                    }

                    var argumentNameReq = argModel.Requisites
                                          .FirstOrDefault(r => r.Code == ArgumentNameReqName);
                    if (argumentNameReq != null)
                    {
                        argument.Name = argumentNameReq.Value;
                    }

                    var argumentTypeReq = argModel.Requisites
                                          .FirstOrDefault(r => r.Code == ArgumentTypeReqName);
                    if (argumentTypeReq != null)
                    {
                        switch (argumentTypeReq.ValueLocalizeID)
                        {
                        case VariantArgumentType:
                            argument.Type = FunctionArgumentType.Variant;
                            break;

                        case DateArgumentType:
                            argument.Type = FunctionArgumentType.Date;
                            break;

                        case FloatArgumentType:
                            argument.Type = FunctionArgumentType.Float;
                            break;

                        case BooleanArgumentType:
                            argument.Type = FunctionArgumentType.Boolean;
                            break;

                        case StringArgumentType:
                            argument.Type = FunctionArgumentType.String;
                            break;

                        case IntegerArgumentType:
                            argument.Type = FunctionArgumentType.Integer;
                            break;
                        }
                    }

                    var argumentDefaultValueReq = argModel.Requisites
                                                  .FirstOrDefault(r => r.Code == ArgumentDefaultValueReqName);
                    if (argumentDefaultValueReq != null)
                    {
                        argument.DefaultValue = argumentDefaultValueReq.Value;
                    }
                    if (!string.IsNullOrEmpty(argument.DefaultValue))
                    {
                        argument.HasDefaultValue = true;
                    }

                    entity.Arguments.Add(argument);
                }
            }

            yield return(entity);
        }
コード例 #9
0
        protected override IEnumerable <ReferenceType> ReadComponents(ComponentModel model, string componentFolderPath)
        {
            var entity = PackageHandlerUtils.CreateEntity <ReferenceType>(model);

            var stateReq = model.Card.Requisites
                           .FirstOrDefault(r => r.Code == StateReqName);

            if (stateReq != null)
            {
                entity.State = stateReq.ValueLocalizeID == Active ? ComponentState.Active : ComponentState.Closed;
            }

            var numerationMethodReq = model.Card.Requisites
                                      .FirstOrDefault(r => r.Code == NumerationMethodReqName);

            if (numerationMethodReq != null)
            {
                switch (numerationMethodReq.ValueLocalizeID)
                {
                case StronglyAuto:
                    entity.NumerationMethod = NumerationMethod.StronglyAuto;
                    break;

                case Auto:
                    entity.NumerationMethod = NumerationMethod.Auto;
                    break;

                case Manual:
                    entity.NumerationMethod = NumerationMethod.Manual;
                    break;
                }
            }

            var displayRequisiteReqName = model.Card.Requisites
                                          .FirstOrDefault(r => r.Code == DisplayRequisiteReqName);

            if (displayRequisiteReqName != null)
            {
                switch (displayRequisiteReqName.ValueLocalizeID)
                {
                case RecordName:
                    entity.DisplayRequisite = DisplayRequisite.Name;
                    break;

                default:
                    entity.DisplayRequisite = DisplayRequisite.Code;
                    break;
                }
            }

            var leadingReferenceReq = model.Card.Requisites
                                      .FirstOrDefault(r => r.Code == LeadingReferenceReqName);

            if (leadingReferenceReq != null)
            {
                entity.LeadingReference = leadingReferenceReq.Value;
            }

            var hasLongRecordNamesReq = model.Card.Requisites
                                        .FirstOrDefault(r => r.Code == HasLongRecordNamesReqName);

            if (hasLongRecordNamesReq != null)
            {
                entity.HasLongRecordNames = hasLongRecordNamesReq.ValueLocalizeID == YesValue;
            }

            var hasUniqueRecordNamesReq = model.Card.Requisites
                                          .FirstOrDefault(r => r.Code == HasUniqueRecordNames);

            if (hasUniqueRecordNamesReq != null)
            {
                entity.HasUniqueRecordNames = hasUniqueRecordNamesReq.ValueLocalizeID == YesValue;
            }

            ReadMethods(model, entity, componentFolderPath);
            ReadMethodsParameters(model, entity);
            ReadActions(model, entity, componentFolderPath);
            ReadEvents(entity, componentFolderPath);
            ReadCardRequisites(model, entity, componentFolderPath);
            ReadViews(model, entity, componentFolderPath);

            yield return(entity);
        }
コード例 #10
0
        protected override IEnumerable <DocumentRequisite> ReadComponents(ComponentModel model, string componentFolderPath)
        {
            var entity = PackageHandlerUtils.CreateEntity <DocumentRequisite>(model);

            var fieldReq = model.Card.Requisites
                           .FirstOrDefault(r => r.Code == FieldReqName);

            if (fieldReq != null)
            {
                entity.Field = fieldReq.Value;
            }

            var sectionReq = model.Card.Requisites
                             .FirstOrDefault(r => r.Code == SectionReqName);

            if (sectionReq != null)
            {
                entity.Section = RequisiteHandlerUtils.GetRequisiteSection(sectionReq.ValueLocalizeID);
            }

            var typeReq = model.Card.Requisites
                          .FirstOrDefault(r => r.Code == TypeReqName);

            if (typeReq != null)
            {
                entity.Type = RequisiteHandlerUtils.GetRequisiteType(typeReq.ValueLocalizeID);
            }

            var formatReq = model.Card.Requisites
                            .FirstOrDefault(r => r.Code == FormatReqName);

            if (formatReq != null)
            {
                entity.Format = RequisiteHandlerUtils.GetRequisiteFormat(formatReq.ValueLocalizeID);
            }

            var lengthReq = model.Card.Requisites
                            .FirstOrDefault(r => r.Code == LengthReqName);

            if (!string.IsNullOrEmpty(lengthReq?.Value))
            {
                entity.Length = int.Parse(lengthReq.Value);
            }

            var precissionReq = model.Card.Requisites
                                .FirstOrDefault(r => r.Code == PrecissionReqName);

            if (!string.IsNullOrEmpty(precissionReq?.Value))
            {
                entity.Precission = int.Parse(precissionReq.Value);
            }

            var referenceTypeReq = model.Card.Requisites
                                   .FirstOrDefault(r => r.Code == ReferenceTypeReqName);

            if (referenceTypeReq != null)
            {
                entity.ReferenceType = referenceTypeReq.Value;
            }

            var referenceViewReq = model.Card.Requisites
                                   .FirstOrDefault(r => r.Code == ReferenceViewReqName);

            if (referenceViewReq != null)
            {
                entity.ReferenceView = referenceViewReq.Value;
            }

            var pickValuesReq = model.Card.Requisites
                                .FirstOrDefault(r => r.Code == PickValuesReqName);

            if (!string.IsNullOrEmpty(pickValuesReq?.Value))
            {
                var pickValues = pickValuesReq.Value.Split(';');
                foreach (var pickValue in pickValues)
                {
                    var pickValueParts = pickValue.Split('=', '|');
                    var reqPickValue   = new RequisitePickValue
                    {
                        Id    = pickValueParts[0][0],
                        Value = pickValueParts[1]
                    };
                    entity.PickValues.Add(reqPickValue);
                }
            }

            var isStoredReq = model.Card.Requisites
                              .FirstOrDefault(r => r.Code == IsStoredReqName);

            if (isStoredReq != null)
            {
                entity.IsStored = isStoredReq.ValueLocalizeID == Stored;
            }

            var isGeneratedReq = model.Card.Requisites
                                 .FirstOrDefault(r => r.Code == IsGeneratedReqName);

            if (isGeneratedReq != null)
            {
                entity.IsGenerated = isGeneratedReq.ValueLocalizeID == Generated;
            }

            yield return(entity);
        }