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);
        }