コード例 #1
0
 /// <summary>
 /// Add or Update permissionregion to database
 /// </summary>
 /// <param name="permissionregion">data to save</param>
 public void InsertOrUpdate(PermissionRegion permissionregion)
 {
     if (permissionregion.RegionID == -1)
     {
         Add_AllRegionProgramSubprogramJamatkhana_ForPermission(permissionregion);
     }
     else
     {
         var existingPermissionRegion = context.PermissionRegion.SingleOrDefault(item => item.PermissionID == permissionregion.PermissionID && item.ProgramID == permissionregion.ProgramID && item.RegionID == permissionregion.RegionID);
         if (existingPermissionRegion != null && existingPermissionRegion.ID != permissionregion.ID)
         {
             permissionregion.ID                = existingPermissionRegion.ID;
             permissionregion.CreateDate        = existingPermissionRegion.CreateDate;
             permissionregion.CreatedByWorkerID = existingPermissionRegion.CreatedByWorkerID;
             Remove(existingPermissionRegion);
         }
         permissionregion.LastUpdateDate = DateTime.Now;
         if (permissionregion.ID == default(int))
         {
             //set the date when this record was created
             permissionregion.CreateDate = permissionregion.LastUpdateDate;
             //set the id of the worker who has created this record
             permissionregion.CreatedByWorkerID = permissionregion.LastUpdatedByWorkerID;
             //add a new record to database
             context.PermissionRegion.Add(permissionregion);
         }
         else
         {
             //update an existing record to database
             context.Entry(permissionregion).State = System.Data.Entity.EntityState.Modified;
         }
         Save();
         permissionsubprogramRepository.InsertOrUpdate(permissionregion.ID, permissionregion.SubProgramIDs);
         if (permissionregion.JamatkhanaIDs != null)
         {
             permissionjamatkhanaRepository.InsertOrUpdate(permissionregion.ID, permissionregion.JamatkhanaIDs.Select(x => Int32.Parse(x)).ToList());
         }
     }
 }