コード例 #1
0
        private ChangeInfo GetChangeInfoForEntry(DbEntityEntry entry)
        {
            var changeInfo = new ChangeInfo
            {
                EntityName        = ObjectContext.GetObjectType(entry.Entity.GetType()).Name,
                ProperyChangeInfo = new Dictionary <string, ChangePair>(),
                TargetId          = ((IAuditEntity)entry.Entity).Id
            };

            List <string> propertyNames = new List <string>();

            if (entry.State == EntityState.Deleted)
            {
                propertyNames.AddRange(entry.OriginalValues.PropertyNames);
            }
            else
            {
                propertyNames.AddRange(entry.CurrentValues.PropertyNames);
            }

            foreach (var pn in propertyNames)
            {
                if (!IsAuditRequired(entry, pn))
                {
                    continue;
                }

                var changePair = new ChangePair();

                switch (entry.State)
                {
                case EntityState.Added:
                    changePair.NewValue = entry.CurrentValues[pn].ToString();

                    break;

                case EntityState.Modified:
                    changePair.OldValue = entry.OriginalValues[pn].ToString();
                    changePair.NewValue = entry.CurrentValues[pn].ToString();
                    if (changePair.OldValue == changePair.NewValue)
                    {
                        continue;
                    }
                    break;

                case EntityState.Deleted:
                    changePair.OldValue = entry.OriginalValues[pn].ToString();
                    break;

                default:
                    throw new ApplicationException("Invalid internal model state.");
                }

                changeInfo.ProperyChangeInfo.Add(pn, changePair);
            }

            return(changeInfo);
        }
コード例 #2
0
            public static ChangePair CreateFullMarkerReplacement(string fromMarkerNoSlash,
                                                                 string toMarkerNoSlash)
            {
                string     from = @"\" + fromMarkerNoSlash + " ";
                string     to   = @"\" + toMarkerNoSlash + " ";
                ChangePair p    = new ChangePair(Method.Replace, from, to);

                return(p);
            }
コード例 #3
0
ファイル: SfmTransformSettings.cs プロジェクト: bbriggs/wesay
			/// <summary>
			///
			/// </summary>
			/// <exception cref="ArgumentException">if the regex doesn't parse</exception>
			public static ChangePair CreateReplacementFromTweak(string from, string to)
			{
				ChangePair p = new ChangePair(from, to);
				return p;
			}
コード例 #4
0
ファイル: SfmTransformSettings.cs プロジェクト: bbriggs/wesay
			public static ChangePair CreateFullMarkerReplacement(string fromMarkerNoSlash,
																 string toMarkerNoSlash)
			{
				string from = @"\\" + fromMarkerNoSlash + @"\s+";
				string to = @"\" + toMarkerNoSlash + " ";
				ChangePair p = new ChangePair(from, to);
				return p;
			}
コード例 #5
0
            /// <summary>
            ///
            /// </summary>
            /// <exception cref="ArgumentException">if the regex doesn't parse</exception>
            public static ChangePair CreateReplacementFromTweak(string from, string to)
            {
                ChangePair p = new ChangePair(Method.Regex, from, to);

                return(p);
            }