/// <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()); } } }