Disco.Services.JobActionExtensions.OnCloseNormally C# (CSharp) Method

OnCloseNormally() public static method

public static OnCloseNormally ( this j, DiscoDataContext Database, User Technician ) : void
j this
Database Disco.Data.Repository.DiscoDataContext
Technician Disco.Models.Repository.User
return void
        public static void OnCloseNormally(this Job j, DiscoDataContext Database, User Technician)
        {
            if (!j.CanCloseNormally())
                throw new InvalidOperationException("Close was Denied");

            j.ClosedDate = DateTime.Now;
            j.ClosedTechUserId = Technician.UserId;
            j.ClosedTechUser = Technician;

            // Evaluate OnClose Expression
            try
            {
                var onCloseResult = j.EvaluateOnCloseExpression(Database);
                if (!string.IsNullOrWhiteSpace(onCloseResult))
                {
                    var jl = new JobLog()
                    {
                        Job = j,
                        TechUser = Technician,
                        Timestamp = DateTime.Now,
                        Comments = onCloseResult
                    };
                    Database.JobLogs.Add(jl);
                }
            }
            catch (Exception ex)
            {
                SystemLog.LogException("Job Expression - OnCloseExpression", ex);
            }
        }