Ejemplo n.º 1
0
        public PartialViewResult PartialDetails(int id, long?pid)
        {
            // Get User ID
            string userId = User.Identity.GetUserId();

            // Get the Document details
            MasterFileViewModel file = _is.GetMasterFileViewModel(id, userId, (SessionState)Session["SessionState"], pid);

            // Save session
            Session["SessionState"] = new SessionState("file", file.RedirectId, id, string.Empty, null, "file", id);

            return(PartialView(file));
        }
Ejemplo n.º 2
0
        // GET: MasterFiles/Edit/5
        public ActionResult Edit(int id, long?pid)
        {
            if (!Editable(id))
            {
                return(RedirectToAction("Details", new { id, pid }));
            }
            string userId            = User.Identity.GetUserId();
            MasterFileViewModel file = _is.GetMasterFileViewModel(id, userId, (SessionState)Session["SessionState"], pid);

            Session["SessionState"] = new SessionState("edit", (long)pid, id, string.Empty, null, "edit", id);

            return(View(file));
        }
Ejemplo n.º 3
0
        public MasterFileViewModel GetMasterFileViewModel(long id, string userId, SessionState ss, long?pid)
        {
            var item = _db.MasterFile.Find(id);

            if (item == null)
            {
                return(new MasterFileViewModel());
            }
            var revisions = item.Revisions;
            var latRev    = revisions.Count == 0 ? 0 : revisions.Select(a => a.Revision).Max();
            var revId     = revisions.Count == 0 ? 0 : revisions.OrderByDescending(a => a.Revision).Take(1).Select(b => b.Id).FirstOrDefault();
            var revCmnt   = revisions.Count == 0 ? "" : revisions.OrderByDescending(a => a.Revision).Take(1).Select(b => b.Comment).FirstOrDefault();
            var revNam    = revisions.Count == 0 ? "N/A" : revisions.Where(a => a.Id == revId).FirstOrDefault().Name;
            var revCnt    = revisions.Count == 0 ? 0 : revisions.Count();

            FileRevision fr          = _db.FileRevision.Where(a => a.MasterFileId == id).OrderByDescending(b => b.Id).Take(1).FirstOrDefault();
            string       issue       = item.Issue == null ? "" : item.Issue.ToString();
            string       draft       = fr == null ? "" : fr.Draft;
            FileRevision lIssue      = _db.FileRevision.Where(a => a.MasterFileId == id).Where(c => c.Type.Equals("issue")).OrderByDescending(b => b.Id).Take(1).FirstOrDefault();
            FileRevision lDraft      = _db.FileRevision.Where(a => a.MasterFileId == id).Where(c => c.Type.Equals("draft")).OrderByDescending(b => b.Id).Take(1).FirstOrDefault();
            var          foldersList = _db.Folder.Select(a => new FolderPartialViewModel()
            {
                Id   = a.Id,
                Name = a.Name,
                Path = a.Path
            })
                                       .OrderBy(a => a.Name)
                                       .ThenBy(a => a.Path)
                                       .ToList();

            ApplicationUser user      = GetASPUser(userId);
            bool            changelog = user.UserSetting.ShowChangelog;

            bool promote = !issue.Equals(draft) && revisions.Count() != 0;

            var lockUser = _db.Users.Find(item.UserLock);

            string lu = lockUser == null ? "unknown" : string.Format("{0}, {1}", lockUser.Surname, lockUser.FirstName);

            MasterFileViewModel file = new MasterFileViewModel()
            {
                Current = item,
                //Breadcrumbs = GetFileBreadcrumbs((long)item.FolderId),
                LatestRevision     = latRev,
                LatestRevisionId   = revId,
                RevisionName       = revNam,
                RevisionsCount     = revCnt,
                DraftVersion       = draft,
                LatestDraft        = lDraft,
                LatestIssue        = lIssue,
                FolderList         = foldersList,
                Promote            = promote,
                ShowChangelog      = changelog,
                Author             = string.Format("{0}, {1}", item.User.Surname, item.User.FirstName),
                Locked             = item.Locked,
                LockedBy           = lu,
                Lockable           = !item.Locked || item.UserLock.Equals(userId),
                LatestRevisionComm = revCmnt
            };

            Folder par;

            if (pid != null && pid > 0)
            {
                par = _db.Folder.Find(pid);
            }
            else
            {
                par = _db.Folder.Find(ss.CatId);
            }

            file.RedirectId    = par.Id;
            file.RedirectLabel = par.Name;

            string retFun = "";

            //switch(ss.ReturnTo)
            //{
            //    case "folder":
            //        retFun = string.Format("goToFolder({0})", ss.ReturnId);
            //        break;
            //    case "file":
            //        retFun = string.Format("goToFile({0},{1})", ss.ReturnId, ss.CatId);
            //        break;
            //    case "search":
            //        retFun = string.Format("goToSearch({0},'{1}',{2})", ss.CatId, ss.Search, ss.Scope);
            //        file.RedirectLabel = "search";
            //        break;
            //    default:
            //        retFun = string.Format("goToFolder({0})", par.Id);
            //        break;
            //}

            retFun = string.Format("goToFolder({0})", ss.CatId);

            file.RedirectFun = retFun;

            return(file);
        }