internal bool RegisterJobType(JobType type) { if (JobTypes.Any(t => t.Name.ToLowerInvariant() == type.Name.ToLowerInvariant())) { Log log = new Log(); log.Create(LogType.Error, "JobManager.RegisterType", "Register type failed!", $"Type with name '{type.Name}' already exists.", saveDetailsAsJson: true); return(false); } if (!JobTypes.Any(t => t.Id == type.Id)) { JobTypes.Add(type); } return(true); }
public bool RegisterType(JobType type) { if (JobTypes.Any(t => t.Name.ToLowerInvariant() == type.Name.ToLowerInvariant())) { Log log = new Log(); log.Create(LogType.Error, "JobManager.RegisterType", "Register type failed!", $"Type with name '{type.Name}' already exists.", saveDetailsAsJson: true); return(false); } var assemblies = AppDomain.CurrentDomain.GetAssemblies(); Assembly assembly = assemblies.FirstOrDefault(a => a.GetName().Name == type.Assembly); if (assembly == null) { //log error "Assembly can not be found!" Log log = new Log(); log.Create(LogType.Error, "JobManager.RegisterType", "Register type failed!", $"Assembly with name '{type.Assembly}' can not be found.", saveDetailsAsJson: true); return(false); } Type assemblyType = assembly.GetType(type.CompleteClassName); if (assemblyType == null) { Log log = new Log(); log.Create(LogType.Error, "JobManager.RegisterType", "Register type failed!", $"Type with name '{type.CompleteClassName}' does not exist in assembly {assembly.FullName}.", saveDetailsAsJson: true); return(false); } var method = assemblyType.GetMethod(type.MethodName); if (method == null) { Log log = new Log(); log.Create(LogType.Error, "JobManager.RegisterType", "Register type failed!", $"Method with name '{type.MethodName}' does not exist in assembly {assembly.FullName}.", saveDetailsAsJson: true); return(false); } if (!JobTypes.Any(t => t.Id == type.Id)) { JobTypes.Add(type); } return(true); }