소스 검색

Creating default job scope for new jobs

Kenric Nugteren 1 년 전
부모
커밋
531b0a384a
1개의 변경된 파일33개의 추가작업 그리고 1개의 파일을 삭제
  1. 33 1
      prs.stores/JobStore.cs

+ 33 - 1
prs.stores/JobStore.cs

@@ -31,7 +31,39 @@ namespace Comal.Stores
 
             StoreUtils.Geocode(entity.SiteAddress);
         }
-        
+
+        protected override void AfterSave(Job entity)
+        {
+            base.AfterSave(entity);
+
+            if(entity.HasOriginalValue(x => x.ID))
+            {
+                CreateDefaultScope(entity);
+            }
+        }
+
+        private void CreateDefaultScope(Job job)
+        {
+            var scope = new JobScope
+            {
+                Description = "Default Scope",
+                Type = JobScopeType.Contract
+            };
+            scope.Job.ID = job.ID;
+            FindSubStore<JobScope>().Save(scope, "Created automatically on job creation.");
+
+            // Save the job again, with a default scope set. We create a lighter job so we're not saving all the same properties over again.
+            var lightJob = new Job
+            {
+                ID = job.ID
+            };
+            lightJob.DefaultScope.ID = scope.ID;
+            Provider.Save(lightJob);
+
+            // Update default scope for sending the entity back to the client.
+            job.DefaultScope.ID = scope.ID;
+        }
+
         protected override void AfterDelete(Job entity)
         {
             base.AfterDelete(entity);