Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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;
        }