private static string GetDescription(KeyValuePair<Type, EntityType> current, ActionType type, object entity)
        {
            var builder = new StringBuilder();
            var firstFormat = string.Format("Сущность \"{0}\"",current.Value.GetEntityTypeName());
            const string idFormat = " с идентификатором \"{0}\"";
            const string nameFormat = " с названием \"{0}\"";
            var actionFormat = string.Format(" была {0}", type.GetActionTypeName());

            if (entity != null)
            {
                var idProp = entity.GetType().GetProperties().FirstOrDefault(c => c.Name.ToUpper().Contains("ID"));
                var nameProp = entity.GetType().GetProperties().FirstOrDefault(c => c.Name.ToUpper().Contains("NAME"));

                builder.Append(firstFormat);

                if (idProp != null)
                {
                    builder.Append(string.Format(idFormat, idProp.GetValue(entity)));
                }

                if (nameProp != null)
                {
                    builder.Append(string.Format(nameFormat, nameProp.GetValue(entity)));
                }

                builder.Append(actionFormat);
            }

            if (type == ActionType.Export || type == ActionType.Import)
            {
                builder.Append(type.GetActionTypeName());
            }

            return builder.ToString();
        }
        private static void AppendDescriptionUsingContext(DbContext context, StringBuilder builder, EntityType type, ActionType aType, object entity)
        {
            string additionalInfo = string.Empty;
            string identity = string.Empty;
            var enrty = context.Entry(entity);

            var prop =
                enrty.Entity.GetType()
                    .GetProperties()
                    .FirstOrDefault(c => c.GetCustomAttributes(typeof(KeyAttribute), true).FirstOrDefault() != null);
            var name = enrty.Entity.GetType().GetProperties().FirstOrDefault(c => c.Name.Contains("Name"));

            identity = CreateIdentityString(entity, prop, identity, name);

            if (aType == ActionType.Updating)
            {
                additionalInfo = string.Format("Были изменены следующие поля: {0}",
                    string.Join(",", enrty.CurrentValues.PropertyNames));
            }

            if (aType != ActionType.Import || aType != ActionType.Export)
            {
                builder.Append(string.Format("Сущность \"{0}\" {1} была {2}.{3}", type.GetEntityTypeName(), identity,
                    aType.GetActionTypeName(), additionalInfo));
            }
        }
Exemple #3
0
        private static void AppendDescriptionUsingContext(DbContext context, StringBuilder builder, EntityType type, ActionType aType, object entity)
        {
            string additionalInfo = string.Empty;
            string identity       = string.Empty;
            var    enrty          = context.Entry(entity);

            var prop =
                enrty.Entity.GetType()
                .GetProperties()
                .FirstOrDefault(c => c.GetCustomAttributes(typeof(KeyAttribute), true).FirstOrDefault() != null);
            var name = enrty.Entity.GetType().GetProperties().FirstOrDefault(c => c.Name.Contains("Name"));

            identity = CreateIdentityString(entity, prop, identity, name);

            if (aType == ActionType.Updating)
            {
                additionalInfo = string.Format("Были изменены следующие поля: {0}",
                                               string.Join(",", enrty.CurrentValues.PropertyNames));
            }

            if (aType != ActionType.Import || aType != ActionType.Export)
            {
                builder.Append(string.Format("Сущность \"{0}\" {1} была {2}.{3}", type.GetEntityTypeName(), identity,
                                             aType.GetActionTypeName(), additionalInfo));
            }
        }
Exemple #4
0
        private static void AppendDescriptionWithOutContext(StringBuilder builder, EntityType type, ActionType aType, object entity)
        {
            string identity = string.Empty;

            var nameProp = entity.GetType().GetProperties().FirstOrDefault(c => c.Name.ToUpper().Contains("NAME"));
            var idProp   = entity.GetType().GetProperties().FirstOrDefault(c => c.Name.ToUpper().Contains("ID"));

            identity = CreateIdentityString(entity, idProp, identity, nameProp);

            builder.Append(string.Format("Сущность \"{0}\" {1} была {2}", type.GetEntityTypeName(), identity,
                                         aType.GetActionTypeName()));
        }
Exemple #5
0
        private static string GetDescription(KeyValuePair <Type, EntityType> current, ActionType type, object entity, User user)
        {
            var          builder      = new StringBuilder();
            var          firstFormat  = string.Format("Сущность \"{0}\"", current.Value.GetEntityTypeName());
            const string idFormat     = " с идентификатором \"{0}\"";
            const string nameFormat   = " с названием \"{0}\"";
            var          actionFormat = string.Format(" была {0}", type.GetActionTypeName());
            var          person       = string.Format(" пользователем {0} {1}", user.FirstName, user.LastName);

            if (entity != null)
            {
                var idProp   = entity.GetType().GetProperties().FirstOrDefault(c => c.Name.ToUpper().Contains("ID"));
                var nameProp = entity.GetType().GetProperties().FirstOrDefault(c => c.Name.ToUpper().Contains("NAME"));

                builder.Append(firstFormat);

                if (idProp != null)
                {
                    builder.Append(string.Format(idFormat, idProp.GetValue(entity)));
                }

                if (nameProp != null)
                {
                    builder.Append(string.Format(nameFormat, nameProp.GetValue(entity)));
                }

                builder.Append(actionFormat);
                builder.Append(person);
            }

            if (type == ActionType.Export || type == ActionType.Import)
            {
                builder.Append(type.GetActionTypeName());
            }

            return(builder.ToString());
        }
        private static void AppendDescription(DbContext context, StringBuilder builder, EntityType type, ActionType aType, object entity)
        {
            if (context != null && entity != null)
            {
                AppendDescriptionUsingContext(context, builder, type, aType, entity);
            }

            if (context == null && entity != null)
            {
                AppendDescriptionWithOutContext(builder, type, aType, entity);
            }

            if (aType == ActionType.Export || aType == ActionType.Import)
            {
                builder.Append(aType.GetActionTypeName());
            }
        }
Exemple #7
0
        private static void AppendDescription(DbContext context, StringBuilder builder, EntityType type, ActionType aType, object entity)
        {
            if (context != null && entity != null)
            {
                AppendDescriptionUsingContext(context, builder, type, aType, entity);
            }

            if (context == null && entity != null)
            {
                AppendDescriptionWithOutContext(builder, type, aType, entity);
            }

            if (aType == ActionType.Export || aType == ActionType.Import)
            {
                builder.Append(aType.GetActionTypeName());
            }
        }
        private static void AppendDescriptionWithOutContext(StringBuilder builder, EntityType type, ActionType aType, object entity)
        {
            string identity = string.Empty;

            var nameProp = entity.GetType().GetProperties().FirstOrDefault(c => c.Name.ToUpper().Contains("NAME"));
            var idProp = entity.GetType().GetProperties().FirstOrDefault(c => c.Name.ToUpper().Contains("ID"));

            identity = CreateIdentityString(entity, idProp, identity, nameProp);

            builder.Append(string.Format("Сущность \"{0}\" {1} была {2}", type.GetEntityTypeName(), identity,
                    aType.GetActionTypeName()));
        }