/// <summary> /// Получить существующую информацию о содержимом сборки, либо добавить ее в БД. /// </summary> /// <param name="assemblyEntity">Сущность сборки, для которой необходимо получить информацию.</param> /// <param name="memberInfo">Метаданные содержимого сборки по которым нужно искать информацию.</param> /// <returns>Сущнось содержимого сборки.</returns> private AssemblyMemberEntity GetAssemblyMemberEntity(AssemblyEntity assemblyEntity, MemberInfo memberInfo) { AssemblyMemberEntity memberEntity = _context.Members.FirstOrDefault(a => a.MemberType == memberInfo.MemberType && a.Name == memberInfo.Name && a.AssemblyId == assemblyEntity.Id); if (memberEntity == null) { memberEntity = new AssemblyMemberEntity(assemblyEntity, memberInfo); _context.Members.Add(memberEntity); } return(memberEntity); }
/// <summary> /// Получить существующую информацию о историии содержимого сборки, либо добавить ее в БД. /// </summary> /// <param name="memberEntity">Сущность содержимого сборки, для которой необходимо получить информацию.</param> /// <param name="historyAttribute">Атрибут истории по которому нужно искать информацию.</param> /// <returns>Сущность истории.</returns> private MemberAnnotationEntity GetMemberAnnotationEntity(AssemblyMemberEntity memberEntity, HistoryAttribute historyAttribute) { MemberAnnotationEntity annotationEntity = _context.Annotations.FirstOrDefault( a => a.DateTime == historyAttribute.DateTime && a.Author == historyAttribute.Author && a.Description == historyAttribute.Description && a.MemberId == memberEntity.Id); if (annotationEntity == null) { annotationEntity = new MemberAnnotationEntity(memberEntity, historyAttribute); _context.Annotations.Add(annotationEntity); } return(annotationEntity); }
/// <summary> /// Произвести обработку одного члена типа. /// </summary> /// <param name="assemblyEntity">Сущность сборки для типа.</param> /// <param name="memberInfo">Метаданные.</param> private void ProcessMember(AssemblyEntity assemblyEntity, MemberInfo memberInfo) { var historyAttributes = memberInfo.GetCustomAttributes <HistoryAttribute>().ToList(); if (historyAttributes.Any()) { AssemblyMemberEntity memberEntity = GetAssemblyMemberEntity(assemblyEntity, memberInfo); foreach (HistoryAttribute historyAttribute in historyAttributes) { GetMemberAnnotationEntity(memberEntity, historyAttribute); } } }
/// <summary> /// Получить существующую информацию о содержимом сборки, либо добавить ее в БД. /// </summary> /// <param name="assemblyEntity">Сущность сборки, для которой необходимо получить информацию.</param> /// <param name="memberInfo">Метаданные содержимого сборки по которым нужно искать информацию.</param> /// <returns>Сущнось содержимого сборки.</returns> private AssemblyMemberEntity GetAssemblyMemberEntity(AssemblyEntity assemblyEntity, MemberInfo memberInfo) { AssemblyMemberEntity memberEntity = _context.Members.FirstOrDefault(a => a.MemberType == memberInfo.MemberType && a.Name == memberInfo.Name && a.AssemblyId == assemblyEntity.Id); if (memberEntity == null) { memberEntity = new AssemblyMemberEntity(assemblyEntity, memberInfo); _context.Members.Add(memberEntity); } return memberEntity; }
/// <summary> /// Получить существующую информацию о историии содержимого сборки, либо добавить ее в БД. /// </summary> /// <param name="memberEntity">Сущность содержимого сборки, для которой необходимо получить информацию.</param> /// <param name="historyAttribute">Атрибут истории по которому нужно искать информацию.</param> /// <returns>Сущность истории.</returns> private MemberAnnotationEntity GetMemberAnnotationEntity(AssemblyMemberEntity memberEntity, HistoryAttribute historyAttribute) { MemberAnnotationEntity annotationEntity = _context.Annotations.FirstOrDefault( a => a.DateTime == historyAttribute.DateTime && a.Author == historyAttribute.Author && a.Description == historyAttribute.Description && a.MemberId == memberEntity.Id); if (annotationEntity == null) { annotationEntity = new MemberAnnotationEntity(memberEntity, historyAttribute); _context.Annotations.Add(annotationEntity); } return annotationEntity; }