Disco.Services.UserFlagExtensions.OnAddUserFlagUnsafe C# (CSharp) Method

OnAddUserFlagUnsafe() public static method

public static OnAddUserFlagUnsafe ( this u, DiscoDataContext Database, UserFlag flag, User AddingUser, string Comments ) : UserFlagAssignment
u this
Database Disco.Data.Repository.DiscoDataContext
flag Disco.Models.Repository.UserFlag
AddingUser Disco.Models.Repository.User
Comments string
return Disco.Models.Repository.UserFlagAssignment
        public static UserFlagAssignment OnAddUserFlagUnsafe(this User u, DiscoDataContext Database, UserFlag flag, User AddingUser, string Comments)
        {
            var fa = new UserFlagAssignment()
            {
                UserFlag = flag,
                User = u,
                AddedDate = DateTime.Now,
                AddedUser = AddingUser,
                Comments = string.IsNullOrWhiteSpace(Comments) ? null : Comments.Trim()
            };

            Database.UserFlagAssignments.Add(fa);

            if (!string.IsNullOrWhiteSpace(flag.OnAssignmentExpression))
            {
                try
                {
                    Database.SaveChanges();
                    var expressionResult = fa.EvaluateOnAssignmentExpression(Database, AddingUser, fa.AddedDate);
                    if (!string.IsNullOrWhiteSpace(expressionResult))
                    {
                        fa.OnAssignmentExpressionResult = expressionResult;
                        Database.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    SystemLog.LogException("User Flag Expression - OnAssignmentExpression", ex);
                }
            }

            return fa;
        }
        #endregion