public void CreateBackupJob(BackupJob job)
 {
     CreateUser(job.SourceUser);
     CreateUser(job.DestinationUser);
     CreateClient(job.Client);
     using (var ctx = new LANBackupContext())
     {
         var dbJob = MapToDbBackupJob(job);
         ctx.BACKUPJOBS.Add(dbJob);                
         ctx.SaveChanges();
     }
 }
 private BACKUPJOB MapToDbBackupJob (BackupJob job)
 {
     return new BACKUPJOB
     {
         ID = job.Id,
         STATUS = (int)job.Status,
         ISENABLED = job.IsEnabled,
         SOURCE_PATH = job.SourcePath,
         DESTINATION_PATH = job.DestinationPath,
         SOURCE_USERID = job.SourceUser.UserId,
         DESTINATION_USERID = job.DestinationUser.UserId,
         CLIENT_ID = job.Client.ClientId
     };
 }
 public void EditBackupJob(BackupJob job)
 {
     using (var ctx = new LANBackupContext())
     {
         var editJob = ctx.BACKUPJOBS.FirstOrDefault(p => p.ID == job.Id);
         var log = ctx.BACKUPLOGs.FirstOrDefault(p => p.ID == job.Id);
         if (log != null) throw new Exception("Editing on already run job is not Allowed");
         if (editJob != null)
         {
             var dbJob = MapToDbBackupJob(job);
             ctx.BACKUPJOBS.Remove(editJob);
             ctx.BACKUPJOBS.Add(dbJob);
             ctx.SaveChanges();
         }
     }
 }