Пример #1
0
        /// <summary>
        /// Get a list of users projects for use in view.
        /// </summary>
        public List <ProjectListingViewModel> GetUsersProjects(string applicationUserID, bool templates = false)
        {
            var projects = _context.Projects
                           .Where(n => n.CreatedByUserID == applicationUserID && n.Template == templates)
                           .Select(x => new ProjectListingViewModel
            {
                ID              = x.ID,
                Name            = x.Name,
                CreatedByUserID = x.CreatedByUserID,
                Template        = x.Template,
                CreatedDate     = x.CreatedDate
            })
                           .ToList();

            // Projects others are sharing with you.
            var othersProjects = _context.Projects
                                 .Join(_context.Sharings, p => p.ID, s => s.ProjectID, (p, s) => new ProjectSharingJoin()
            {
                P = p, S = s
            })
                                 .Where(n => n.P.CreatedByUserID != applicationUserID &&
                                        n.S.UserID == applicationUserID &&
                                        n.P.Template == templates)
                                 .Select(x => new ProjectListingViewModel
            {
                ID              = x.P.ID,
                Name            = x.P.Name,
                CreatedByUserID = x.P.CreatedByUserID,
                Template        = x.P.Template,
                CreatedDate     = x.P.CreatedDate
            })
                                 .ToList();

            foreach (var p in projects)
            {
                p.SharedWith    = SharedWithUsers(p.ID);
                p.CreatedByUser = _usersService.GetUserByID(p.CreatedByUserID);
            }

            foreach (var p in othersProjects)
            {
                p.SharedWith    = SharedWithUsers(p.ID);
                p.CreatedByUser = _usersService.GetUserByID(p.CreatedByUserID);

                projects.Add(p);
            }

            return(projects);
        }
Пример #2
0
        // <summary>
        // Fetch a view model version of the specified file.
        // </summary>
        public FileViewModel GetFile(int nodeID)
        {
            var file = _context.Nodes
                       .Where(n => n.ID == nodeID)
                       .Select(x => new FileViewModel
            {
                ID              = x.ID,
                Name            = x.Name,
                ParentNodeID    = x.ParentNodeID,
                ProjectID       = x.ProjectID,
                CreatedByUserID = x.CreatedByUserID,
                CreatedDate     = x.CreatedDate
            })
                       .SingleOrDefault();

            file.CreatedByUser = _usersService.GetUserByID(file.CreatedByUserID);

            return(file);
        }