/// <summary> /// Deletes application - wrap transactional code /// </summary> /// <param name="id"></param> /// <param name="transaction"></param> private void DeleteApplicationInternal(Guid id, bool cascade, NpgsqlTransaction transaction) { if (cascade) { //delete application pages PageService pageService = new PageService(connectionString); DataTable appPages = new ErpPageRepository(connectionString).GetApplicationPages(id, transaction); foreach (DataRow pageRow in appPages.Rows) { pageService.DeletePage((Guid)pageRow["id"], transaction); } //delete application areas DataTable appAreas = new SitemapAreaRepository(connectionString).GetApplicationAreas(id, transaction); foreach (DataRow entRow in appAreas.Rows) { DeleteArea((Guid)entRow["id"], transaction); } } //delete application repository.DeleteApplication(id, transaction); ClearAppCache(id); }
/// <summary> /// Delete sitemap area group /// </summary> /// <param name="id"></param> /// <param name="transaction"></param> public void DeleteAreaGroup(Guid id, NpgsqlTransaction transaction = null) { Guid?areaId = new SitemapAreaGroupRepository(connectionString).GetAreaIdByGroupId(id, transaction); Guid?appId = new SitemapAreaRepository(connectionString).GetAppIdByAreaId(areaId.Value, transaction); new SitemapAreaGroupRepository(connectionString).Delete(id, transaction); ClearAppCache(appId.Value); }
/// <summary> /// Deletes sitemap area node /// </summary> /// <param name="id"></param> /// <param name="transaction"></param> public void DeleteAreaNode(Guid id, NpgsqlTransaction transaction = null) { Guid?areaId = new SitemapAreaNodeRepository(connectionString).GetAreaIdByNodeId(id, transaction); Guid?appId = new SitemapAreaRepository(connectionString).GetAppIdByAreaId(areaId.Value, transaction); new PageService(connectionString).UnbindPagesFromSitemapNode(id, transaction); new SitemapAreaNodeRepository(connectionString).Delete(id, transaction); ClearAppCache(appId.Value); }
/// <summary> /// Deletes sitemap area /// </summary> /// <param name="id"></param> /// <param name="transaction"></param> public void DeleteArea(Guid id, NpgsqlTransaction transaction = null, bool cascade = true) { if (transaction == null) { using (NpgsqlConnection con = new NpgsqlConnection(ErpSettings.ConnectionString)) { NpgsqlTransaction trans = null; try { con.Open(); trans = con.BeginTransaction(); Guid?appId = new SitemapAreaRepository(connectionString).GetAppIdByAreaId(id, trans); if (appId == null) { throw new Exception("Sitemap area is not found"); } DeleteAreaInternal(id, appId.Value, cascade, trans); trans.Commit(); } catch (Exception) { if (trans != null) { trans.Rollback(); } throw; } finally { con.Close(); } } } else { Guid?appId = new SitemapAreaRepository(connectionString).GetAppIdByAreaId(id, transaction); if (appId == null) { throw new Exception("Sitemap area is not found"); } DeleteAreaInternal(id, appId.Value, cascade, transaction); } }
/// <summary> /// Updates existing sitemap area group /// </summary> /// <param name="id"></param> /// <param name="areaId"></param> /// <param name="name"></param> /// <param name="label"></param> /// <param name="labelTranslations"></param> /// <param name="weight"></param> /// <param name="renderRoles"></param> /// <param name="transaction"></param> public void UpdateAreaGroup(Guid id, Guid areaId, string name, string label, List <TranslationResource> labelTranslations, int weight, List <Guid> renderRoles, NpgsqlTransaction transaction = null) { //VALIDATION string lblTr = null; if (labelTranslations != null) { lblTr = JsonConvert.SerializeObject(labelTranslations); } new SitemapAreaGroupRepository(connectionString).Update(id, areaId, name, label, lblTr, weight, renderRoles, transaction); Guid?appId = new SitemapAreaRepository(connectionString).GetAppIdByAreaId(areaId, transaction); ClearAppCache(appId.Value); }
/// <summary> /// Updates sitemap area node /// </summary> /// <param name="id"></param> /// <param name="areaId"></param> /// <param name="name"></param> /// <param name="label"></param> /// <param name="labelTranslations"></param> /// <param name="iconClass"></param> /// <param name="url"></param> /// <param name="type"></param> /// <param name="entityId"></param> /// <param name="weight"></param> /// <param name="accessRoles"></param> /// <param name="transaction"></param> public void UpdateAreaNode(Guid id, Guid areaId, string name, string label, List <TranslationResource> labelTranslations, string iconClass, string url, int type, Guid?entityId, int weight, List <Guid> accessRoles, List <Guid> entityListPages = null, List <Guid> entityCreatePages = null, List <Guid> entityDetailsPages = null, List <Guid> entityManagePages = null, NpgsqlTransaction transaction = null, Guid?parentId = null) { if (entityListPages == null) { entityListPages = new List <Guid>(); } if (entityCreatePages == null) { entityCreatePages = new List <Guid>(); } if (entityDetailsPages == null) { entityDetailsPages = new List <Guid>(); } if (entityManagePages == null) { entityManagePages = new List <Guid>(); } //VALIDATION string lblTr = null; if (labelTranslations != null) { lblTr = JsonConvert.SerializeObject(labelTranslations); } new SitemapAreaNodeRepository(connectionString).Update(id, areaId, name, label, lblTr, iconClass, url, type, entityId, weight, accessRoles, entityListPages, entityCreatePages, entityDetailsPages, entityManagePages, transaction, parentId); Guid?appId = new SitemapAreaRepository(connectionString).GetAppIdByAreaId(areaId, transaction); ClearAppCache(appId.Value); }
/// <summary> /// Creates new sitemap area node /// </summary> /// <param name="id"></param> /// <param name="areaId"></param> /// <param name="name"></param> /// <param name="label"></param> /// <param name="labelTranslations"></param> /// <param name="iconClass"></param> /// <param name="url"></param> /// <param name="type"></param> /// <param name="entityId"></param> /// <param name="weight"></param> /// <param name="accessRoles"></param> /// <param name="transaction"></param> public void CreateAreaNode(Guid id, Guid areaId, string name, string label, List <TranslationResource> labelTranslations, string iconClass, string url, int type, Guid?entityId, int weight, List <Guid> accessRoles, NpgsqlTransaction transaction = null) { //VALIDATION string lblTr = null; if (labelTranslations != null) { lblTr = JsonConvert.SerializeObject(labelTranslations); } new SitemapAreaNodeRepository(connectionString).Insert(id, areaId, name, label, lblTr, iconClass, url, type, entityId, weight, accessRoles, transaction); Guid?appId = new SitemapAreaRepository(connectionString).GetAppIdByAreaId(areaId, transaction); ClearAppCache(appId.Value); }