DeleteDataPermissionsByEntity() публичный Метод

public DeleteDataPermissionsByEntity ( long entityId, long dataId ) : bool
entityId long
dataId long
Результат bool
Пример #1
0
        /// <summary>
        /// Purges a dataset, which means the dataset and all its versions will be physically removed from the database.
        /// </summary>
        /// <param name="id">the identifier of the dataset to be purged.</param>
        /// <remarks>This operation is not revocerable.</remarks>
        /// <returns></returns>
        public ActionResult Purge(long id)
        {
            ViewBag.Title = PresentationModel.GetViewTitleForTenant("Purge", this.Session.GetTenant());
            bool itsFine = false;
            DatasetManager dm = new DatasetManager();
            try
            {
                if (dm.PurgeDataset(id))
                {
                    itsFine = true;
                }
            }
            catch (Exception ex)
            {
                try // give it another try
                {
                    if (dm.PurgeDataset(id, true))
                    {
                        itsFine = true;
                    }
                }
                catch (Exception exx)
                {
                    ViewData.ModelState.AddModelError("", string.Format("Dataset {0} could not be purged. Details: {1}, see also: {2}", id, exx.Message, ex.Message));
                }
            }

            if (itsFine)
            {
                try
                {
                    PermissionManager pm = new PermissionManager();
                    pm.DeleteDataPermissionsByEntity(1, id);
                }
                catch
                {
                    ViewData.ModelState.AddModelError("", string.Format("Dataset {0} was purged, but its permissions were not altered. You need to remove them manually from the data permission management.", id));
                }
                try
                {
                    ISearchProvider provider = IoCFactory.Container.ResolveForSession<ISearchProvider>() as ISearchProvider;
                    provider?.UpdateSingleDatasetIndex(id, IndexingAction.DELETE);
                }
                catch
                {
                    ViewData.ModelState.AddModelError("", string.Format("Dataset {0} was purged, but it is still indexed for searching. You need to reindex the search via the managemnet console.", id));
                }
            }
            return View();
        }