Exemple #1
0
        public ActionResult ShowAddFolderOrBookmarkView(long folderID)
        {
            long uid = UILoginHelper.GetUIDFromHttpContext(HttpContext);

            if (folderID == 0)
            {
                var lst = BizUserWebFolder.LoadAllByUID(uid);
                if (lst != null && lst.Count > 0)
                {
                    var firstFolder = lst.Where(folder => folder.ParentWebfolderID == 0);
                    if (firstFolder == null || firstFolder.Count() == 0)
                    {
                        return(View());
                    }
                    if (firstFolder.Count() == 1)
                    {
                        folderID = firstFolder.FirstOrDefault().UserWebFolderID;
                    }
                    else
                    {
                        BizUserWebFolder newFolderInfo = new BizUserWebFolder();
                        newFolderInfo.UserInfoID          = uid;
                        newFolderInfo.UserWebFolderID     = 0;
                        newFolderInfo.ParentWebfolderID   = 0;
                        newFolderInfo.ChildrenFolderList  = firstFolder.ToList();
                        newFolderInfo.BizBookmarkInfoList = new List <BizBookmarkInfo>();
                        return(View("ShowAddFolderOrBookmarkView", new UIWebFolderInfo(newFolderInfo)));
                    }
                }
            }
            var folderInfo = BizUserWebFolder.LoadContainsChirdrenAndBookmark(folderID);
            var model      = new UIWebFolderInfo(folderInfo);

            return(View("ShowAddFolderOrBookmarkView", model));
        }
Exemple #2
0
        private static long GetUserDefaultFolderID(long loginUID)
        {
            long folderID            = 0;
            var  folderConfiguration = BizUserConfiguration.LoadByKey(loginUID, "UserDefaultFolder");

            if (folderConfiguration == null)
            {
                var userFolderList = BizUserWebFolder.LoadAllByUID(loginUID);
                if (userFolderList != null && userFolderList.Count > 0)
                {
                    var firstFolder = userFolderList.Where(folder => folder.ParentWebfolderID == 0);
                    if (firstFolder != null && firstFolder.Count() > 0)
                    {
                        NewFolderAndConfigurationHasParentFolderID(loginUID, ref folderID, ref folderConfiguration, firstFolder);
                    }
                    else
                    {
                        NewFolderAndConfigurationNoParentFolderID(loginUID, ref folderID, ref folderConfiguration);
                    }
                }
                else
                {
                    NewFolderAndConfigurationNoParentFolderID(loginUID, ref folderID, ref folderConfiguration);
                }
            }
            else
            {
                folderID = Convert.ToInt64(folderConfiguration.UserConfigurationValue);
            }


            return(folderID);
        }
Exemple #3
0
        public ActionResult ShowUserFolder(long showUserInfoID, long folderID = 0)
        {
            UIWebFolderInfo model = null;

            if (showUserInfoID != default(long))
            {
                if (folderID == 0)
                {
                    var lst = BizUserWebFolder.LoadAllByUID(showUserInfoID);
                    if (lst != null)
                    {
                        var firstFolder = lst.Where(folder => folder.ParentWebfolderID == 0);
                        if (firstFolder == null || firstFolder.Count() == 0)
                        {
                            return(View("ShowUserFolder", model));
                        }

                        folderID = firstFolder.FirstOrDefault().UserWebFolderID;
                    }
                }
                var folderInfo = BizUserWebFolder.LoadContainsChirdrenAndBookmark(folderID);
                model = new UIWebFolderInfo(folderInfo);
            }
            return(View("ShowUserFolder", model));
        }
Exemple #4
0
        public ActionResult Add(string url, long uid, long folderID)
        {
            BizResultInfo result   = new BizResultInfo();
            var           userInfo = BizUserInfo.LoadByUserInfoID(uid);

            if (string.IsNullOrEmpty(url) || userInfo == null)
            {
                LogHelper.WriteInfo("AddBookmark失败", "AddBookmark失败", new { UserInfoID = uid, URL = url, FolderID = folderID });
                return(Json(result));
            }

            //不存在书签夹,创建一个默认的书签夹
            var folderInfo = BizUserWebFolder.LoadByID(folderID);

            if (folderInfo.UserWebFolderID == 0)
            {
                folderInfo.UserInfoID       = uid;
                folderInfo.WebFolderName    = userInfo.UserName + "的默认书签夹";
                folderInfo.IntroContent     = "";
                folderInfo.IElementJSON     = "";
                folderInfo.Grade            = 0;
                folderInfo.CreateTime       = DateTime.Now;
                folderInfo.IElementHashcode = folderInfo.GetHashCode();
                folderInfo.Save();
                folderID = folderInfo.UserWebFolderID;
            }

            BizBookmarkInfo bookmark = new BizBookmarkInfo();

            bookmark.Href = url;
            var res = HTTPHelper.GetHTML(url);

            if (!string.IsNullOrEmpty(res.Item1))
            {
                bookmark.HTML = res.Item1;
                HtmlDocument htmlDoc = new HtmlDocument();
                htmlDoc.LoadHtml(res.Item1);
                var title = htmlDoc.DocumentNode.SelectSingleNode("//title").InnerText;
                bookmark.BookmarkName = !string.IsNullOrEmpty(title) ? title:url;
            }
            else
            {
                bookmark.BookmarkName = url;
            }

            if (string.IsNullOrEmpty(res.Item2) || res.Item2.ToUpper() == "ALLOW-FROM")
            {
                bookmark.IsShowWithiframe = 1;
            }

            bookmark.UserWebFolderID = folderID;
            bookmark.CreateTime      = DateTime.Now;
            bookmark.Host            = url.GetHost();
            bookmark.UserInfoID      = uid;
            bookmark.HashCode        = bookmark.GetHashCode();
            bookmark.Save();
            return(Json(result));
        }
Exemple #5
0
        public ActionResult ShowUserAllFolder(long folderID)
        {
            long uid = UILoginHelper.GetUIDFromHttpContext(HttpContext);

            if (folderID == 0)
            {
                var lst = BizUserWebFolder.LoadAllByUID(uid);
                if (lst != null && lst.Count > 0)
                {
                    var firstFolder = lst.Where(folder => folder.ParentWebfolderID == 0);
                    if (firstFolder == null || firstFolder.Count() == 0)
                    {
                        return(View());
                    }
                    folderID = firstFolder.FirstOrDefault().UserWebFolderID;
                }
            }
            var folderInfo = BizUserWebFolder.LoadContainsChirdrenAndBookmark(folderID);
            var model      = new UIWebFolderInfo(folderInfo);

            return(View("ShowUserAllFolder", model));
        }
Exemple #6
0
        public static BizResultInfo BatchAddUserWebfolder(List <BizUserWebFolder> lstBizWebfolder)
        {
            BizResultInfo result = new BizResultInfo();

            if (lstBizWebfolder == null || lstBizWebfolder.Count == 0)
            {
                result.IsSuccess    = false;
                result.ErrorMessage = "插入数据不能为空。";
            }
            var lstModel  = lstBizWebfolder.Select(biz => biz.ToModel()).ToList();
            var isSuccess = webFolderDAL.BatchAdd(lstModel);

            if (isSuccess)
            {
                result.IsSuccess      = isSuccess;
                result.SuccessMessage = "插入成功。";
                Dictionary <int, int> dicHash = new Dictionary <int, int>();
                foreach (var w in lstBizWebfolder)
                {
                    if (!dicHash.ContainsKey(w.IElementHashcode))
                    {
                        dicHash.Add(w.IElementHashcode, w.IElementHashcode);
                    }
                }
                var uid         = lstBizWebfolder.FirstOrDefault().UserInfoID;
                var lstDataInfo = BizUserWebFolder.LoadAllByUID(uid);

                var dicDataInfo = lstDataInfo.Where(datainfo => dicHash.ContainsKey(datainfo.IElementHashcode)).ToDictionary(model => model.IElementHashcode, model => model);
                result.Target = dicDataInfo;
            }
            else
            {
                result.IsSuccess    = false;
                result.ErrorMessage = "插入数据失败,可能是外星人劫持了数据库了,也可能是海底电缆被可爱的鲨鱼咬断了....反正重试一下就是。";
            }

            return(result);
        }
Exemple #7
0
        private static void NewFolderAndConfigurationNoParentFolderID(long loginUID, ref long folderID, ref BizUserConfiguration folderConfiguration)
        {
            BizUserWebFolder newFolder = new BizUserWebFolder();

            newFolder.UserInfoID        = loginUID;
            newFolder.WebFolderName     = "默认书签夹";
            newFolder.ParentWebfolderID = 0;
            newFolder.CreateTime        = DateTime.Now;
            newFolder.IElementJSON      = "";
            newFolder.IntroContent      = "默认书签夹";
            newFolder.Grade             = 0;
            newFolder.Save();

            folderID = newFolder.UserWebFolderID;

            folderConfiguration = new BizUserConfiguration();
            folderConfiguration.UserConfigurationKey   = "UserDefaultFolder";
            folderConfiguration.UserConfigurationNo    = 1;
            folderConfiguration.UserConfigurationValue = newFolder.UserWebFolderID.ToString();
            folderConfiguration.UserInfoID             = loginUID;
            folderConfiguration.Description            = "用户默认书签夹配置信息";
            folderConfiguration.Save();
        }
Exemple #8
0
        /// <summary>
        /// 加载书签夹数据
        /// </summary>
        /// <param name="uid"></param>
        /// <returns></returns>
        public static BizResultInfo LoadWebfolderByUID(long uid)
        {
            var result = new BizResultInfo();

            try
            {
                var lstWebFolder = BizUserWebFolder.LoadAllByUID(uid);
                var lstBookmark  = BookmarkInfoBo.LoadByUID(uid);
                Dictionary <long, List <BizBookmarkInfo> >  dicWebfolderIDToBookmarkList    = new Dictionary <long, List <BizBookmarkInfo> >();
                Dictionary <long, List <BizUserWebFolder> > dicParentWebfolderIDToWebfolder = new Dictionary <long, List <BizUserWebFolder> >();

                FillDictionary(lstWebFolder, lstBookmark, dicWebfolderIDToBookmarkList, dicParentWebfolderIDToWebfolder);

                foreach (var webfolder in lstWebFolder)
                {
                    if (dicWebfolderIDToBookmarkList.ContainsKey(webfolder.UserWebFolderID))
                    {
                        webfolder.BizBookmarkInfoList = dicWebfolderIDToBookmarkList[webfolder.UserWebFolderID];
                    }
                    if (dicParentWebfolderIDToWebfolder.ContainsKey(webfolder.UserWebFolderID))
                    {
                        webfolder.ChildrenFolderList = dicParentWebfolderIDToWebfolder[webfolder.UserWebFolderID];
                    }
                }

                result.IsSuccess = true;
                result.Target    = lstWebFolder;
            }catch (Exception ex)
            {
                result.IsSuccess    = false;
                result.ErrorMessage = "加载数据失败了,可能是网络挂了,可能这就是命吧。";
                result.Target       = null;
                LogHelper.WriteException("LoadWebfolderByUID Exception", ex, new { UID = uid });
            }

            return(result);
        }
Exemple #9
0
        public UIWebFolderInfo(BizUserWebFolder folderInfo)
        {
            if (folderInfo == null)
            {
                return;
            }
            UserWebFolderID   = folderInfo.UserWebFolderID;
            UserInfoID        = folderInfo.UserInfoID;
            ParentWebfolderID = folderInfo.ParentWebfolderID;
            CreateTime        = folderInfo.CreateTime;
            Grade             = folderInfo.Grade;
            WebFolderName     = folderInfo.WebFolderName;

            UIBookmarkInfoList = folderInfo.BizBookmarkInfoList != null?
                                 folderInfo.BizBookmarkInfoList.Select(info => new UIBookmarkInfo()
            {
                UserInfoID      = info.UserInfoID,
                UserWebFolderID = info.UserWebFolderID,
                BookmarkInfoID  = info.BookmarkInfoID,
                BookmarkName    = info.BookmarkName,
                CreateTime      = info.CreateTime,
                Href            = info.Href,
                Host            = info.Host,
            }).ToList() : null;

            ChildrenFolderList = folderInfo.ChildrenFolderList != null?
                                 folderInfo.ChildrenFolderList.Select(info => new UIWebFolderInfo()
            {
                WebFolderName     = info.WebFolderName,
                ParentWebfolderID = info.ParentWebfolderID,
                UserWebFolderID   = info.UserWebFolderID,
                CreateTime        = info.CreateTime,
                UserInfoID        = info.UserInfoID,
                Grade             = info.Grade,
            }).ToList() : null;
        }
Exemple #10
0
        public ActionResult AddBookmark(string name, string href, long folderID, string type, long infoID)
        {
            BizResultInfo result = new BizResultInfo();

            if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(type))
            {
                result.ErrorMessage = "名称和类型必须填写呀。";
                result.IsSuccess    = false;
                return(Json(result));
            }
            var loginUid = UILoginHelper.GetUIDFromHttpContext(HttpContext);

            try
            {
                if (type == "bookmark")
                {
                    BizBookmarkInfo bookmark = new BizBookmarkInfo();

                    if (infoID != 0)
                    {
                        bookmark = BizBookmarkInfo.LoadByID(infoID);
                    }


                    bookmark.Href            = href;
                    bookmark.BookmarkName    = name;
                    bookmark.UserWebFolderID = folderID;
                    bookmark.CreateTime      = DateTime.Now;
                    bookmark.Host            = href.GetHost();
                    bookmark.UserInfoID      = loginUid;
                    bookmark.HashCode        = bookmark.GetHashCode();
                    bookmark.Save();
                }
                else
                {
                    BizUserWebFolder folder = new BizUserWebFolder();
                    if (infoID != 0)
                    {
                        folder = BizUserWebFolder.LoadByID(infoID);
                    }

                    folder.UserInfoID        = loginUid;
                    folder.WebFolderName     = name;
                    folder.ParentWebfolderID = folderID;
                    folder.IntroContent      = "";
                    folder.IElementJSON      = "";
                    folder.CreateTime        = DateTime.Now;
                    folder.IElementHashcode  = folder.GetHashCode();
                    folder.Save();
                }



                result.IsSuccess      = true;
                result.SuccessMessage = "保存成功了耶,刷新一下页面就能看到了哦。";
            }catch (Exception ex)
            {
                result.IsSuccess      = false;
                result.SuccessMessage = "保存失败,可能是数据库不开心了吧,重新保存试试。";
                LogHelper.WriteException("AddBookmark Exception", ex, new { Name = name, Href = href, FolderID = folderID });
            }
            return(Json(result));
        }