コード例 #1
0
ファイル: PilotUtils.cs プロジェクト: MartinBG/Gva
        internal static List<object> GetRatings(
            IEnumerable<PartVersion<PersonRatingDO>> includedRatings,
            IEnumerable<PartVersion<PersonRatingEditionDO>> ratingEditions,
            List<int> authorizationGroupIds,
            INomRepository nomRepository)
        {
            List<object> ratings = new List<object>();
            foreach (var edition in ratingEditions)
            {
                var rating = includedRatings.Where(r => r.Part.Index == edition.Content.RatingPartIndex).Single();

                NomValue authorization = rating.Content.AuthorizationId.HasValue ? nomRepository.GetNomValue("authorizations", rating.Content.AuthorizationId.Value) : null;
                if (authorization == null ||
                    (authorization.Code != "RTO" &&
                    (authorization.ParentValueId.HasValue ? !authorizationGroupIds.Contains(authorization.ParentValueId.Value) : true)))
                {
                    ratings.Add(new
                    {
                        TYPE = string.Format(
                            "{0} {1}",
                            rating.Content.RatingClassId.HasValue ? nomRepository.GetNomValue("ratingClasses", rating.Content.RatingClassId.Value).Code : string.Empty,
                            rating.Content.RatingTypes.Count() > 0 ? string.Join(", ", nomRepository.GetNomValues("ratingTypes", rating.Content.RatingTypes.ToArray()).Select(rt => rt.Code)) : "").Trim(),
                        AUTH_NOTES = string.Format(
                            "{0} {1}",
                            authorization == null ? string.Empty : authorization.Code,
                            edition.Content.NotesAlt).Trim(),
                        VALID_DATE = edition.Content.DocumentDateValidTo
                    });
                }
            }

            return ratings;
        }
コード例 #2
0
ファイル: Utils.cs プロジェクト: MartinBG/Gva
        internal static Tuple<string, string> GetAddress(PersonAddressDO personAddress, INomRepository nomRepository)
        {
            List<string> addressData = new List<string>();
            List<string> addressDataAlt = new List<string>();

            if (personAddress.SettlementId.HasValue)
            {
                NomValue settlement = nomRepository.GetNomValue("cities", personAddress.SettlementId.Value);
                NomValue country = nomRepository.GetNomValue("countries", settlement.ParentValueId.Value);
                addressDataAlt.Add(country.NameAlt);
                addressDataAlt.Add(settlement.NameAlt);

                addressData.Add(country.Name);
                addressData.Add(settlement.Name);
            }

            if (personAddress != null)
            {
                if (!string.IsNullOrEmpty(personAddress.AddressAlt))
                {
                    addressDataAlt.Add(personAddress.AddressAlt);
                }
                if (!string.IsNullOrEmpty(personAddress.Address))
                {
                    addressData.Add(personAddress.Address);
                }
            }

            return new Tuple<string, string>(string.Join(", ", addressDataAlt), string.Join(", ", addressData));
        }
コード例 #3
0
ファイル: Utils.cs プロジェクト: MartinBG/Gva
        internal static List<object> GetATCLLangCerts(IEnumerable<PersonLangCertDO> includedLangCerts, INomRepository nomRepository)
        {
            var langLevel = new List<object>();
            foreach (var cert in includedLangCerts.Where(c => c.LangLevelId.HasValue))
            {
                var langLevelNom = nomRepository.GetNomValue("langLevels", cert.LangLevelId.Value);
                if (langLevelNom.TextContent.GetItems<string>("roleAliases").First() == "bgCert")
                {
                    langLevel.Add(new
                    {
                        LEVEL = langLevelNom.Name,
                        ISSUE_DATE = cert.DocumentDateValidFrom,
                        VALID_DATE = langLevelNom.Code.Contains("6") ? "unlimited" : (cert.DocumentDateValidTo.HasValue ? cert.DocumentDateValidTo.Value.ToString("dd.MM.yyyy") : null)
                    });
                }
                else
                {
                    langLevel.Add(new
                    {
                        LEVEL = langLevelNom.Name,
                        ISSUE_DATE = cert.DocumentDateValidFrom,
                        VALID_DATE = cert.DocumentDateValidTo.HasValue ? cert.DocumentDateValidTo.Value.ToString("dd.MM.yyyy") : null
                    });
                }
            }

            return langLevel;
        }
コード例 #4
0
        internal static Tuple<List<object>, List<string>> GetRatingsPerInstructorExaminerByAuthCode(
                   IEnumerable<PartVersion<PersonRatingDO>> includedRatings,
                   IEnumerable<PartVersion<PersonRatingEditionDO>> ratingEditions,
                   string authCode,
                   INomRepository nomRepository)
        {
            NomValue authorizationGroup = nomRepository.GetNomValues("authorizationGroups").First(nv => nv.Code == authCode);
            List<object> ratings = new List<object>();
            List<string> authCodes = new List<string>();
            foreach (var edition in ratingEditions)
            {
                var rating = includedRatings.Where(r => r.Part.Index == edition.Content.RatingPartIndex).Single();
                if (rating.Content.AuthorizationId.HasValue)
                {
                    NomValue authorization = nomRepository.GetNomValue("authorizations", rating.Content.AuthorizationId.Value);
                    if (authorization.ParentValueId != null &&
                        authorizationGroup.NomValueId == authorization.ParentValueId.Value &&
                        authorization.Code != "RTO")
                    {
                        ratings.Add(new
                        {
                            EXAMINER = authorization.Code,
                            CLASS_TYPE = string.Format(
                                "{0} {1}",
                                rating.Content.RatingClassId.HasValue ? nomRepository.GetNomValue("ratingClasses", rating.Content.RatingClassId.Value).Code : string.Empty,
                                rating.Content.RatingTypes.Count() > 0 ? string.Join(", ", nomRepository.GetNomValues("ratingTypes", rating.Content.RatingTypes.ToArray()).Select(rt => rt.Code)) : ""),
                            DATE = edition.Content.DocumentDateValidTo
                        });

                        authCodes.Add(authorization.Code);
                    }
                }
            }

            return new Tuple<List<object>, List<string>>(ratings, authCodes);
        }
コード例 #5
0
ファイル: PilotUtils.cs プロジェクト: MartinBG/Gva
        internal static List<object> GetOtherLicences(
            string licenceCaCode,
            string publisherCaaCode,
            Lot lot,
            PersonLicenceEditionDO edition,
            IEnumerable<PartVersion<PersonLicenceDO>> includedLicences,
            INomRepository nomRepository)
        {
            var otherLicences = new List<object>()
            {
                new
                {
                    LIC_NO = publisherCaaCode,
                    ISSUE_DATE = edition.DocumentDateValidFrom,
                    C_CODE = licenceCaCode
                }
            };

            otherLicences = otherLicences.Concat(includedLicences.Select(l =>
            {
                var firstEdition = lot.Index.GetParts<PersonLicenceEditionDO>("licenceEditions")
                    .Where(e => e.Content.LicencePartIndex == l.Part.Index)
                    .OrderBy(e => e.Content.Index)
                    .First()
                    .Content;

                return new
                {
                    LIC_NO = nomRepository.GetNomValue("licenceTypes", l.Content.LicenceTypeId.Value).TextContent.Get<string>("codeCA"),
                    ISSUE_DATE = firstEdition.DocumentDateValidFrom,
                    C_CODE = publisherCaaCode
                };
            }))
            .ToList();

            return otherLicences;
        }
コード例 #6
0
ファイル: PilotUtils.cs プロジェクト: MartinBG/Gva
        internal static PersonRatingEditionDO GetRtoRating(
            IEnumerable<PartVersion<PersonRatingDO>> includedRatings,
            IEnumerable<PartVersion<PersonRatingEditionDO>> ratingEditions,
            INomRepository nomRepository)
        {
            var rtoRatingPart = includedRatings.FirstOrDefault(r => r.Content.AuthorizationId.HasValue && nomRepository.GetNomValue("authorizations", r.Content.AuthorizationId.Value).Code == "RTO");

            List<PersonRatingEditionDO> rtoRatings = new List<PersonRatingEditionDO>();
            foreach (var edition in ratingEditions)
            {
                var rating = includedRatings.Where(r => r.Part.Index == edition.Content.RatingPartIndex).Single();
                if (rating.Content.AuthorizationId.HasValue && nomRepository.GetNomValue("authorizations", rating.Content.AuthorizationId.Value).Code == "RTO")
                {
                    rtoRatings.Add(edition.Content);
                }
            }

            return rtoRatings.OrderBy(e => e.Index).LastOrDefault();
        }
コード例 #7
0
ファイル: Utils.cs プロジェクト: MartinBG/Gva
 internal static List<object> GetChecksById(IEnumerable<PersonCheckDO> includedChecks, int roleId, int[] documentRoleIds, INomRepository nomRepository)
 {
     int validTrueId = nomRepository.GetNomValue("boolean", "yes").NomValueId;
     return includedChecks
         .Where(t => t.ValidId == validTrueId && documentRoleIds.Contains(t.DocumentRoleId.Value) && t.DocumentRoleId == roleId)
         .Select(t =>
             new
             {
                 DOC_TYPE = nomRepository.GetNomValue("documentTypes", t.DocumentTypeId.Value).Name.ToLower(),
                 DOC_NO = t.DocumentNumber,
                 DATE = t.DocumentDateValidFrom,
                 DOC_PUBLISHER = t.DocumentPublisher
             }).ToList<object>();
 }
コード例 #8
0
ファイル: Utils.cs プロジェクト: MartinBG/Gva
        internal static List<object> GetRatings(
            IEnumerable<PartVersion<PersonRatingDO>> includedRatings,
            IEnumerable<PartVersion<PersonRatingEditionDO>> editions,
            ILotRepository lotRepository,
            INomRepository nomRepository)
        {
            List<object> ratingEditions = new List<object>();
            foreach (var edition in editions)
            {
                var rating = includedRatings.Where(r => r.Part.Index == edition.Content.RatingPartIndex).Single();
                var ratingTypesCodes = rating.Content.RatingTypes.Count() > 0 ? string.Join(", ",  nomRepository.GetNomValues("ratingTypes", rating.Content.RatingTypes.ToArray()).Select(rt => rt.Code)) : "";
                var ratingClassName = rating.Content.RatingClassId.HasValue ?  nomRepository.GetNomValue("ratingClasses", rating.Content.RatingClassId.Value).Code : null;
                var authorizationCode = rating.Content.AuthorizationId.HasValue ? nomRepository.GetNomValue("authorizations", rating.Content.AuthorizationId.Value).Code : null;
                var firstRatingEdition = lotRepository.GetLotIndex(rating.Part.LotId)
                        .Index.GetParts<PersonRatingEditionDO>("ratingEditions")
                        .Where(epv => epv.Content.RatingPartIndex == rating.Part.Index)
                        .OrderByDescending(epv => epv.Content.Index)
                        .Last();

                ratingEditions.Add(new
                {
                    CLASS_AUTH = string.IsNullOrEmpty(ratingClassName) && string.IsNullOrEmpty(ratingTypesCodes) ?
                        authorizationCode :
                        string.Format(
                            "{0} {1} {2}",
                            ratingTypesCodes,
                            ratingClassName,
                            string.IsNullOrEmpty(authorizationCode) ? string.Empty : " / " + authorizationCode).Trim(),
                    ISSUE_DATE = firstRatingEdition.Content.DocumentDateValidFrom,
                    VALID_DATE = edition.Content.DocumentDateValidTo
                });
            }

            return Utils.FillBlankData(ratingEditions, 11);
        }
コード例 #9
0
ファイル: Utils.cs プロジェクト: MartinBG/Gva
        internal static Tuple<string, string> GetPlaceOfBirth(PersonDataDO personData, INomRepository nomRepository)
        {
            string placeOfBirth = null;
            string placeOfBirthAlt = null;
            if(personData.PlaceOfBirthId.HasValue)
            {
                NomValue city = nomRepository.GetNomValue("cities", personData.PlaceOfBirthId.Value);
                NomValue country = nomRepository.GetNomValue("countries", city.ParentValueId.Value);
                placeOfBirth = string.Format("{0}, {1}", country.Name, city.Name);
                placeOfBirthAlt = string.Format("{0}, {1}", country.NameAlt, city.NameAlt);
            }

            return new Tuple<string, string>(placeOfBirthAlt, placeOfBirth);
        }
コード例 #10
0
ファイル: Utils.cs プロジェクト: MartinBG/Gva
        internal static List<object> GetMedCerts(
            int orderNumber, IEnumerable<PersonMedicalDO> includedMedicals,
            PersonDataDO personData,
            INomRepository nomRepository)
        {
            var medicals = includedMedicals.Select(m =>
                new
                {
                    ORDER_NO = orderNumber,
                    NO = string.Format(
                        "{0}-{1}-{2}-{3}",
                        m.DocumentNumberPrefix,
                        m.DocumentNumber,
                        personData.Lin,
                        m.DocumentNumberSuffix),
                    ISSUE_DATE = m.DocumentDateValidFrom,
                    VALID_DATE = m.DocumentDateValidTo,
                    CLASS = m.MedClassId.HasValue ? nomRepository.GetNomValue("medClasses", m.MedClassId.Value).Name.ToUpper() : null,
                    PUBLISHER = m.DocumentPublisherId.HasValue ? nomRepository.GetNomValue("medDocPublishers", m.DocumentPublisherId.Value).Name : null,
                    LIMITATION = m.Limitations.Count > 0 ? string.Join(",",nomRepository.GetNomValues("medLimitation", m.Limitations.ToArray()).Select(l => l.Name)) : null
                }).ToList<object>();

            if (medicals.Count() == 0)
            {
                medicals.Add(new
                {
                    ORDER_NO = orderNumber
                });
            }

            return medicals;
        }
コード例 #11
0
ファイル: Utils.cs プロジェクト: MartinBG/Gva
 internal static List<object> GetLangCerts(IEnumerable<PersonLangCertDO> includedLangCerts, INomRepository nomRepository)
 {
     return includedLangCerts.Where(l => l.LangLevelId.HasValue)
         .Select(c =>
         {
             var langLevel = nomRepository.GetNomValue("langLevels", c.LangLevelId.Value);
             return new
             {
                 LEVEL = langLevel.Name,
                 ISSUE_DATE = c.DocumentDateValidFrom,
                 VALID_DATE = langLevel.Code.Contains("6") ? "unlimited" : (c.DocumentDateValidTo.HasValue ? c.DocumentDateValidTo.Value.ToString("dd.MM.yyyy") : null)
             };
         })
     .ToList<object>();
 }
コード例 #12
0
ファイル: Utils.cs プロジェクト: MartinBG/Gva
        internal static List<object> GetExamsById(
            IEnumerable<PersonTrainingDO> includedExams,
            IEnumerable<PersonCheckDO> includedChecks,
            IEnumerable<PersonTrainingDO> includedTrainings,
            int examRoleId,
            int[] documentRoleIds,
            INomRepository nomRepository)
        {
            var exams = includedExams.Where(d => d.DocumentRoleId == examRoleId)
               .Select(t => new
               {
                   DOC_TYPE = nomRepository.GetNomValue("documentTypes", t.DocumentTypeId.Value).Name.ToLower(),
                   DOC_NO = t.DocumentNumber,
                   DATE = t.DocumentDateValidFrom,
                   DOC_PUBLISHER = t.DocumentPublisher
               })
               .ToList<object>();

            var trainings = Utils.GetTrainingsById(includedTrainings, examRoleId, documentRoleIds, nomRepository);
            var checks = Utils.GetChecksById(includedChecks, examRoleId, documentRoleIds, nomRepository);

            return exams.Union(checks).Union(trainings).ToList<object>();
        }
コード例 #13
0
ファイル: Utils.cs プロジェクト: MartinBG/Gva
        internal static List<object> GetEndorsements(
            IEnumerable<PartVersion<PersonRatingDO>> includedRatings,
            IEnumerable<PartVersion<PersonRatingEditionDO>> ratingEditions,
            ILotRepository lotRepository,
            INomRepository nomRepository)
        {
            List<object> endorsments = new List<object>();
            foreach (var edition in ratingEditions)
            {
                var rating = includedRatings.Where(r => r.Part.Index == edition.Content.RatingPartIndex).Single();
                if (rating.Content.AuthorizationId.HasValue)
                {
                    var firstRatingEdition = lotRepository.GetLotIndex(rating.Part.LotId)
                        .Index.GetParts<PersonRatingEditionDO>("ratingEditions")
                        .Where(epv => epv.Content.RatingPartIndex == rating.Part.Index)
                        .OrderByDescending(epv => epv.Content.Index)
                        .Last();

                    endorsments.Add(new
                    {
                        NAME = nomRepository.GetNomValue("authorizations", rating.Content.AuthorizationId.Value).Code,
                        DATE = firstRatingEdition.Content.DocumentDateValidFrom.Value
                    });
                }
            };

            return (from endorsment in endorsments
                    group endorsment by ((dynamic)endorsment).NAME into newGroup
                    let d = newGroup.OrderBy(g => ((dynamic)g).DATE).FirstOrDefault()
                    select d)
                 .ToList<object>();
        }
コード例 #14
0
ファイル: Utils.cs プロジェクト: MartinBG/Gva
        internal static NomValue GetCountry(PersonDataDO personData, INomRepository nomRepository)
        {
            NomValue placeOfBirth = personData.PlaceOfBirthId.HasValue ? nomRepository.GetNomValue("cities", personData.PlaceOfBirthId.Value) : null;
            int? countryId = placeOfBirth != null ? placeOfBirth.ParentValueId : (int?)null;
            NomValue country = countryId.HasValue ?
                nomRepository.GetNomValue("countries", countryId.Value) :
                new NomValue
                {
                    Name = null,
                    TextContentString = string.Empty
                };

            return country;
        }