Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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);
            }
        }
Example #5
0
        /// <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);
        }
Example #6
0
        /// <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);
        }
Example #7
0
        /// <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);
        }