Esempio 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
    }
Esempio 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 = "删除成功" });
        }
Esempio n. 3
0
        object delete_completely(string[] ids)
        {
            var site = (Site)jc["site"];

            using (ILinqContext <Posts> cx = Posts.CreateContext())
            {
                var query = (from q in cx
                             where q.SiteId == site.Id && q.IsDeleted == true
                             select q);

                if (ids.Length > 0)
                {
                    query = (from q in cx
                             where new List <string>(ids).Contains(q.Id) && q.SiteId == site.Id && q.IsDeleted == true
                             select q);
                }

                var posts = query.ToList();

                if (posts.Count == 0)
                {
                    return new { code = -2, msg = "指定的文章未查询到,文章可能已经彻底删除或者未放置回收站" }
                }
                ;

                foreach (var item in posts)
                {
                    cx.Remove(item);
                }

                cx.SubmitChanges(true);
            }

            return(new { code = 1, msg = "成功将指定的文章删除" });
        }
Esempio n. 4
0
        object delete(string id)
        {
            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 || relation.PermissionLevel != PermissionLevel.ADMIN)
            {
                return new { code = 403, msg = "没有权限访问" }
            }
            ;

            #endregion

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

                if (category == null)
                {
                    return new { code = -1, msg = "指定的栏目不存在,删除失败" }
                }
                ;

                if (Category.Where("ParentId = {0}", category.Id).Where("SiteId = {0}", site.Id).Count() > 0)
                {
                    return new { code = -2, msg = "指定的栏目下存在子栏目,不能删除" }
                }
                ;

                cx.Remove(category);
                cx.SubmitChanges();

                //更新父级是否有子集
                Category.Where("Id = {0}", category.ParentId).Set("HasChildren", Category.Where("ParentId = {0}", category.ParentId).Count() > 0).Update();
            }

            return(new { code = 1, msg = "删除成功" });
        }
Esempio n. 5
0
        object delete(string id)
        {
            using (ILinqContext <Widget> cx = Widget.CreateContext())
            {
                var widget = Widget.Get(cx, id);

                if (widget == null)
                {
                    return new { code = -1, msg = "指定的挂件不存在,删除失败" }
                }
                ;

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

            return(new { code = 1, msg = "删除成功" });
        }
Esempio n. 6
0
        object delete(string id, bool confirmed)
        {
            using (ILinqContext <Site> cx = Site.CreateContext())
            {
                var site = Site.Get(cx, id);

                if (site == null)
                {
                    return new { code = -1, msg = "指定的站点不存在,删除失败" }
                }
                ;

                if (!confirmed && Widget.Where("SiteId = {0}", site.Id).Count() != 0)
                {
                    return new { code = -2, msg = "指定的站点下有挂件内容,若确认删除则挂件内容也一并删除,是否确认删除" }
                }
                ;

                Widget.Where("SiteId = {0}", site.Id).Delete();

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

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

        #endregion

        #region  制站点



        #endregion
    }
}
Esempio n. 7
0
        public static List <T> ImportFromXml(XmlDocument xml)
        {
            Type t = typeof(T);

            List <PropertyInfo> props = new List <PropertyInfo>(t.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly));

            List <T> list = new List <T>();

            XmlNode node = xml.DocumentElement.SelectSingleNode("//" + t.FullName);

            if (node == null)
            {
                return(list);
            }

            foreach (XmlNode n in node.ChildNodes)
            {
                T obj = Activator.CreateInstance <T>();

                foreach (XmlAttribute attr in n.Attributes)
                {
                    PropertyInfo pi = props.Find(p =>
                    {
                        return(p.Name.Equals(attr.Name, StringComparison.InvariantCultureIgnoreCase));
                    });

                    if (pi == null || !pi.CanWrite)
                    {
                        continue;
                    }

                    pi.SetValue(obj, TypeConvertUtil.ConvertTo(attr.Value, pi.PropertyType), null);
                }

                list.Add(obj);
            }

            ILinqContext <T> context = CreateContext();

            // remove old items
            //
            List <t> ids = new List <t>();

            foreach (var item in list)
            {
                ids.Add(item.Id);
            }

            List <T> old_list = Gets(context, StringUtil.CollectionToCommaDelimitedString(ids));

            foreach (var item in old_list)
            {
                if (list.Find((T obj) => { return(item.Id.Equals(obj.Id)); }) != null)
                {
                    context.Remove(item);
                }
            }

            // add new items
            //
            foreach (var item in list)
            {
                context.Add(item, true);
            }

            context.SubmitChanges(true);

            return(list);
        }