public static void RebuildModule(List<ContentPackage> contentPackages, ModuleRebuildModeEnum rebuildMode)
        {
            contentPackages.ForEach(a => a.ResourceList = GameResourceManager.GetAllResourcesInContentPackage(DirectoryPaths.ContentPackageDirectoryPath + a.FileName));

            try
            {
                using (ContentPackageRepository repo = new ContentPackageRepository())
                {
                    List<ContentPackage> existingContentPackages;
                    if(rebuildMode == ModuleRebuildModeEnum.SystemResourcesOnly)
                    {
                        existingContentPackages = repo.GetAll();
                        existingContentPackages = (from package
                                                   in existingContentPackages
                                                   where package.IsSystemResource == true
                                                   select package).ToList();
                    }
                    else if(rebuildMode == ModuleRebuildModeEnum.UserResourcesOnly)
                    {
                        existingContentPackages = repo.GetAll();
                        existingContentPackages = (from package
                                                   in existingContentPackages
                                                   where package.IsSystemResource == false
                                                   select package).ToList();
                    }
                    else
                    {
                        existingContentPackages = repo.GetAll();
                    }

                    // Update or remove existing
                    foreach (ContentPackage current in existingContentPackages)
                    {
                        if (contentPackages.Exists(x => x.FileName == current.FileName))
                        {
                            repo.Update(current);
                            contentPackages.RemoveAll(x => x.FileName == current.FileName);
                        }
                        else
                        {
                            repo.Delete(current);
                        }
                    }

                    // Add the new ones
                    repo.Add(contentPackages);
                }
            }
            catch
            {
                throw;
            }
        }
 /// <summary>
 /// Handles refreshing content package resource links in the database and updating existing references. Uses the currently active set of content packages in the database.
 /// </summary>
 public static void RebuildModule(ModuleRebuildModeEnum rebuildMode)
 {
     using (ContentPackageRepository repo = new ContentPackageRepository())
     {
         List<ContentPackage> contentPackages = (from package
                                                 in repo.GetAll()
                                                 where package.IsSystemResource == false
                                                 select package).ToList();
         RebuildModule(contentPackages, rebuildMode);
     }
 }