private void RemoveOldIndexItems(LoginUser loginUser, string indexPath, Organization organization, ReferenceType referenceType, string deletedIndexItemsFileName) { LogVerbose("Removing deleted items: " + referenceType.ToString()); if (!Directory.Exists(indexPath)) { Logs.WriteEvent("Path does not exist: " + indexPath); return; } DeletedIndexItems items = new DeletedIndexItems(loginUser); LogVerbose(string.Format("Retrieving deleted items: RefType: {0}, OrgID: {1}", referenceType.ToString(), organization.OrganizationID.ToString())); items.LoadByReferenceType(referenceType, organization.OrganizationID); if (items.IsEmpty) { LogVerbose("No Items to delete"); return; } StringBuilder builder = new StringBuilder(); foreach (DeletedIndexItem item in items) { builder.AppendLine(item.RefID.ToString()); } string fileName = Path.Combine(indexPath, deletedIndexItemsFileName); if (File.Exists(fileName)) { File.Delete(fileName); } using (StreamWriter writer = new StreamWriter(fileName)) { LogVerbose("Adding IDs to delete file: " + builder.ToString()); writer.Write(builder.ToString()); } LogVerbose("Deleting Items"); using (IndexJob job = new IndexJob()) { job.IndexPath = indexPath; job.ActionCreate = false; job.ActionAdd = false; job.ActionRemoveListed = true; job.ToRemoveListName = fileName; job.CreateRelativePaths = false; job.Execute(); } LogVerbose("Items deleted"); UpdateHealth(); items.DeleteAll(); items.Save(); LogVerbose("Finished Removing Old Indexes - OrgID = " + organization.OrganizationID + " - " + referenceType.ToString()); }
public static string GetDeletedIndexItem(RestCommand command, int deletedIndexID) { DeletedIndexItem deletedIndexItem = DeletedIndexItems.GetDeletedIndexItem(command.LoginUser, deletedIndexID); if (deletedIndexItem.OrganizationID != command.Organization.OrganizationID) { throw new RestException(HttpStatusCode.Unauthorized); } return(deletedIndexItem.GetXml("DeletedIndexItem", true)); }
public static string GetDeletedIndexItems(RestCommand command) { DeletedIndexItems deletedIndexItems = new DeletedIndexItems(command.LoginUser); deletedIndexItems.LoadByOrganizationID(command.Organization.OrganizationID); if (command.Format == RestFormat.XML) { return(deletedIndexItems.GetXml("DeletedIndexItems", "DeletedIndexItem", true, command.Filters)); } else { throw new RestException(HttpStatusCode.BadRequest, "Invalid data format"); } }