Ejemplo n.º 1
0
        object delete_category_user(string id)
        {
            var site = (Site)jc["site"];

            using (ILinqContext <CategoryUsers> cx = CategoryUsers.CreateContext())
            {
                var relation = (from q in cx
                                where q.SiteId == site.Id && q.Id == id
                                select q).FirstOrDefault();

                if (relation == null)
                {
                    return new { code = -1, msg = "指定的栏目与用户的关系不存在" }
                }
                ;

                //TODO 之前创建的文章的作者如何处理?

                cx.Remove(relation);
                cx.SubmitChanges();
            }

            return(new { code = 1, msg = "删除成功" });
        }

        #endregion
    }
Ejemplo n.º 2
0
        object delete(string userId)
        {
            var site = (Site)jc["site"];

            using (ILinqContext <SiteUsers> cx = SiteUsers.CreateContext())
            {
                var relation = (from q in cx
                                where q.SiteId == site.Id && q.UserId == userId
                                select q).FirstOrDefault();

                if (relation == null)
                {
                    return new { code = -1, msg = "指定的用户在该站点下不存在" }
                }
                ;

                if (relation.UserId == jc.UserName)
                {
                    return new { code = -2, msg = "不能删除自己的账号" }
                }
                ;

                //删除栏目与用户的关系
                CategoryUsers.Where("SiteId = {0}", site.Id).Where("UserId = {0}", relation.UserId).Delete();

                //删除站点用户关系

                cx.Remove(relation);
                cx.SubmitChanges();
            }

            return(new { code = 1, msg = "删除成功" });
        }
Ejemplo n.º 3
0
        object list_with_permission(string parentId)
        {
            var site = (Site)jc["site"];

            #region 校验用户对站点的权限

            var relation = (from q in SiteUsers.CreateContext()
                            where q.UserId == jc.UserName && q.SiteId == site.Id
                            select q).FirstOrDefault();

            //如果没有站点的管理权限
            if (relation == null)
            {
                return new { code = 403, msg = "没有权限访问" }
            }
            ;

            #endregion

            WebQuery qc = new WebQuery();
            qc.Id = "category.list.permission";
            qc.LoadCondidtion();
            qc.NoPaging();

            #region 加载参数

            qc["parentId"] = string.IsNullOrWhiteSpace(parentId) ? string.Empty : parentId;

            qc["site"]   = site.Id;
            qc["userId"] = jc.UserName;

            #endregion

            var dt = CategoryUsers.GetDataTable(qc);

            var data = new ArrayList();
            foreach (DataRow item in dt.Rows)
            {
                data.Add(new
                {
                    id       = item["id"].ToString(),
                    name     = item["title"].ToString(),
                    isParent = item["hasChildren"].ToBoolean()
                });
            }

            return(data);
        }
Ejemplo n.º 4
0
        object add_category_user(string userId, bool all, string[] categoryIds)
        {
            #region 校验参数

            var site = (Site)jc["site"];
            var user = User.Get(userId);

            if (user == null)
            {
                return new { code = -1, msg = "指定的用户不存在" }
            }
            ;
            if (!all && categoryIds.Length == 0)
            {
                return new { code = -2, msg = "要添加的栏目不能为空" }
            }
            ;

            #region 处理栏目

            List <Category>       categories = null;
            IQueryable <Category> query      = null;

            if (all)
            {
                query = (from q in Category.CreateContext()
                         where q.SiteId == site.Id
                         select q);
            }
            else
            {
                query = (from q in Category.CreateContext()
                         where q.SiteId == site.Id && new List <string>(categoryIds).Contains(q.Id)
                         select q);
            }

            categories = query.ToList();

            #endregion

            if (categories.Count == 0)
            {
                return new { code = -3, msg = "指定的栏目不存在" }
            }
            ;

            #endregion

            using (ILinqContext <CategoryUsers> cx = CategoryUsers.CreateContext())
            {
                var relations = (from q in CategoryUsers.CreateContext()
                                 where q.SiteId == site.Id && q.UserId == user.Id
                                 select q).ToList();

                foreach (var item in categories)
                {
                    //若存在,则不再增加
                    if (relations.FirstOrDefault(a => { return(a.CategoryId == item.Id); }) != null)
                    {
                        continue;
                    }

                    var relation = new CategoryUsers();

                    relation.Id          = StringUtil.UniqueId();
                    relation.CategoryId  = item.Id;
                    relation.UserId      = user.Id;
                    relation.SiteId      = site.Id;
                    relation.DateCreated = DateTime.Now;

                    cx.Add(relation, true);
                }

                cx.SubmitChanges(true);
            }

            return(new { code = 1, msg = "保存成功" });
        }
Ejemplo n.º 5
0
        object category_list(string userId, string title)
        {
            var site = (Site)jc["site"];
            var user = User.Get(userId);

            if (user == null)
            {
                return new { code = -1, msg = "指定的用户不存在" }
            }
            ;

            WebQuery q = new WebQuery();

            q.Id = "users.category.list";
            q.LoadCondidtion();

            q["siteId"] = site.Id;
            q["userId"] = user.Id;

            if (!string.IsNullOrEmpty(title))
            {
                q["title"] = title;
            }

            q.TotalCount = CategoryUsers.Count(q);
            if (q.PageIndex1 > q.PageCount)
            {
                q.PageIndex = Math.Max(q.PageCount - 1, 0);
            }

            var dt   = CategoryUsers.GetDataTable(q);
            var data = new ArrayList();

            foreach (DataRow item in dt.Rows)
            {
                data.Add(new
                {
                    id             = item["id"].ToString(),
                    category_title = item["title"].ToString(),
                    post_count     = item["postCount"].ToInt(),
                    date_created   = item["dateCreated"].ToDateTime(),
                });
            }

            return(new
            {
                code = 1,
                user = new
                {
                    id = user.Id,
                    display_name = user.DisplayName
                },
                data = data,
                paging = new
                {
                    total_count = q.TotalCount,
                    page_size = q.PageSize,
                    page_index = q.PageIndex1
                },
                orderbys = q.orderbys
            });
        }