internal static List<object> GetPrivileges(List<string> authCodes, INomRepository nomRepository) { List<object> result = new List<object>(); foreach (string code in authCodes) { var authorizationGroup = nomRepository.GetNomValues("instructorExaminerCertificateAttachmentAuthorizations").Where(i => Regex.Matches(code, "(^" + i.Code + Regex.Escape("(") + ")").Count > 0 || Regex.Matches(code, "(^" + i.Code + "\\s\\w+)").Count > 0 || i.Code == code) .FirstOrDefault(); if (authorizationGroup != null) { result = result.Union(nomRepository.GetNomValues("instructorExaminerCertificateAttachmentPrivileges") .Where(p => p.ParentValueId == authorizationGroup.NomValueId) .Select(p => new { REFERENCE = p.Code, PRIVILEGES = p.Name, PRIVILEGES_ALT = p.NameAlt })).ToList(); } } return result; }
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; }
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); }
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); }
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; }