public override List<UsageSpaceStatItem> GetStatData()
        {
            if (!DbRegistry.IsDatabaseRegistered(MailDatabaseId))
            {
                DbRegistry.RegisterDatabase(MailDatabaseId, ConfigurationManager.ConnectionStrings[MailDatabaseId]);
            }

            using (var mail_db = new DbManager(MailDatabaseId))
            {
                var query = new SqlQuery("mail_attachment a")
                    .InnerJoin("mail_mail m", Exp.EqColumns("a.id_mail", "m.id"))
                    .Select("m.id_user")
                    .Select("sum(a.size) as size")
                    .Where("m.tenant", TenantProvider.CurrentTenantID)
                    .Where("a.need_remove", 0)
                    .GroupBy(1)
                    .OrderBy(2, false);

                return mail_db.ExecuteList(query)
                    .Select(r =>
                        {
                            var user_id = new Guid(Convert.ToString(r[0]));
                            var user = CoreContext.UserManager.GetUsers(user_id);
                            var item = new UsageSpaceStatItem
                                {
                                    Name = DisplayUserSettings.GetFullUserName(user, false),
                                    ImgUrl = UserPhotoManager.GetSmallPhotoURL(user.ID),
                                    Url = CommonLinkUtility.GetUserProfile(user.ID),
                                    SpaceUsage = Convert.ToInt64(r[1])
                                };
                            return item;
                        })
                    .ToList();
            }
        }
Example #2
0
        public override List <UsageSpaceStatItem> GetStatData()
        {
            if (!DbRegistry.IsDatabaseRegistered(MailDatabaseId))
            {
                DbRegistry.RegisterDatabase(MailDatabaseId, ConfigurationManager.ConnectionStrings[MailDatabaseId]);
            }

            using (var mail_db = new DbManager(MailDatabaseId))
            {
                var query = new SqlQuery("mail_attachment a")
                            .InnerJoin("mail_mail m", Exp.EqColumns("a.id_mail", "m.id"))
                            .Select("m.id_user")
                            .Select("sum(a.size) as size")
                            .Where("m.tenant", TenantProvider.CurrentTenantID)
                            .Where("a.need_remove", 0)
                            .GroupBy(1)
                            .OrderBy(2, false);

                return(mail_db.ExecuteList(query)
                       .Select(r =>
                {
                    var user_id = new Guid(Convert.ToString(r[0]));
                    var user = CoreContext.UserManager.GetUsers(user_id);
                    var item = new UsageSpaceStatItem
                    {
                        Name = DisplayUserSettings.GetFullUserName(user, false),
                        ImgUrl = UserPhotoManager.GetSmallPhotoURL(user.ID),
                        Url = CommonLinkUtility.GetUserProfile(user.ID),
                        SpaceUsage = Convert.ToInt64(r[1])
                    };
                    return item;
                })
                       .ToList());
            }
        }
        public override List <UsageSpaceStatItem> GetStatData()
        {
            using (var mail_db = DbManager.FromHttpContext(MailDatabaseId))
            {
                var query = new SqlQuery("mail_attachment a")
                            .InnerJoin("mail_mail m", Exp.EqColumns("a.id_mail", "m.id"))
                            .Select("m.id_user")
                            .Select("sum(a.size) as size")
                            .Where("a.tenant", TenantProvider.CurrentTenantID)
                            .Where("a.need_remove", 0)
                            .GroupBy(1)
                            .OrderBy(2, false);

                return(mail_db.ExecuteList(query)
                       .Select(r =>
                {
                    var user_id = new Guid(Convert.ToString(r[0]));
                    var user = CoreContext.UserManager.GetUsers(user_id);
                    var item = new UsageSpaceStatItem
                    {
                        Name = DisplayUserSettings.GetFullUserName(user, false),
                        ImgUrl = UserPhotoManager.GetSmallPhotoURL(user.ID),
                        Url = CommonLinkUtility.GetUserProfile(user.ID),
                        SpaceUsage = Convert.ToInt64(r[1]),
                        Disabled = user.Status == EmployeeStatus.Terminated
                    };
                    return item;
                })
                       .ToList());
            }
        }
Example #4
0
        public override List <UsageSpaceStatItem> GetStatData()
        {
            if (!DbRegistry.IsDatabaseRegistered(FileConstant.DatabaseId))
            {
                DbRegistry.RegisterDatabase(FileConstant.DatabaseId, ConfigurationManager.ConnectionStrings[FileConstant.DatabaseId]);
            }

            using (var db = new DbManager(FileConstant.DatabaseId))
            {
                var myFiles = new SqlQuery("files_file f")
                              .Select("f.create_by")
                              .Select("sum(f.content_length) as size")
                              .InnerJoin("files_folder_tree t", Exp.EqColumns("f.folder_id", "t.folder_id"))
                              .InnerJoin("files_bunch_objects b", Exp.EqColumns("f.tenant_id", "b.tenant_id") & Exp.EqColumns("t.parent_id", "b.left_node"))
                              .Where("b.tenant_id", TenantProvider.CurrentTenantID)
                              .Where(Exp.Like("b.right_node", "files/my/", SqlLike.StartWith) | Exp.Like("b.right_node", "files/trash/", SqlLike.StartWith))
                              .GroupBy(1);

                var commonFiles = new SqlQuery("files_file f")
                                  .Select("'" + Constants.LostUser.ID + "'")
                                  .Select("sum(f.content_length) as size")
                                  .InnerJoin("files_folder_tree t", Exp.EqColumns("f.folder_id", "t.folder_id"))
                                  .InnerJoin("files_bunch_objects b", Exp.EqColumns("f.tenant_id", "b.tenant_id") & Exp.EqColumns("t.parent_id", "b.left_node"))
                                  .Where("b.tenant_id", TenantProvider.CurrentTenantID)
                                  .Where("b.right_node", "files/common/");

                var query = myFiles.UnionAll(commonFiles);

                return(db.ExecuteList(query)
                       .GroupBy(r => CoreContext.UserManager.GetUsers(new Guid(Convert.ToString(r[0]))),
                                r => Convert.ToInt64(r[1]),
                                (user, items) =>
                {
                    var item = new UsageSpaceStatItem {
                        SpaceUsage = items.Sum()
                    };
                    if (user.Equals(Constants.LostUser))
                    {
                        item.Name = FilesUCResource.CorporateFiles;
                        item.ImgUrl = PathProvider.GetImagePath("corporatefiles_big.png");
                        item.Url = PathProvider.GetFolderUrl(Global.FolderCommon);
                    }
                    else
                    {
                        item.Name = user.DisplayUserName(false);
                        item.ImgUrl = user.GetSmallPhotoURL();
                        item.Url = user.GetUserProfilePageURL();
                    }
                    return item;
                })
                       .OrderByDescending(i => i.SpaceUsage)
                       .ToList());
            }
        }
        public override List<UsageSpaceStatItem> GetStatData()
        {
            if (!DbRegistry.IsDatabaseRegistered(FileConstant.DatabaseId))
            {
                DbRegistry.RegisterDatabase(FileConstant.DatabaseId, ConfigurationManager.ConnectionStrings[FileConstant.DatabaseId]);
            }

            using (var db = new DbManager(FileConstant.DatabaseId))
            {
                var myFiles = new SqlQuery("files_file f")
                    .Select("f.create_by")
                    .Select("sum(f.content_length) as size")
                    .InnerJoin("files_folder_tree t", Exp.EqColumns("f.folder_id", "t.folder_id"))
                    .InnerJoin("files_bunch_objects b", Exp.EqColumns("f.tenant_id", "b.tenant_id") & Exp.EqColumns("t.parent_id", "b.left_node"))
                    .Where("b.tenant_id", TenantProvider.CurrentTenantID)
                    .Where(Exp.Like("b.right_node", "files/my/", SqlLike.StartWith) | Exp.Like("b.right_node", "files/trash/", SqlLike.StartWith))
                    .GroupBy(1);

                var commonFiles = new SqlQuery("files_file f")
                    .Select("'" + Constants.LostUser.ID + "'")
                    .Select("sum(f.content_length) as size")
                    .InnerJoin("files_folder_tree t", Exp.EqColumns("f.folder_id", "t.folder_id"))
                    .InnerJoin("files_bunch_objects b", Exp.EqColumns("f.tenant_id", "b.tenant_id") & Exp.EqColumns("t.parent_id", "b.left_node"))
                    .Where("b.tenant_id", TenantProvider.CurrentTenantID)
                    .Where("b.right_node", "files/common/");

                var query = myFiles.UnionAll(commonFiles);

                return db.ExecuteList(query)
                         .GroupBy(r => CoreContext.UserManager.GetUsers(new Guid(Convert.ToString(r[0]))),
                                  r => Convert.ToInt64(r[1]),
                                  (user, items) =>
                                  {
                                      var item = new UsageSpaceStatItem { SpaceUsage = items.Sum() };
                                      if (user.Equals(Constants.LostUser))
                                      {
                                          item.Name = FilesUCResource.CorporateFiles;
                                          item.ImgUrl = PathProvider.GetImagePath("corporatefiles_big.png");
                                          item.Url = PathProvider.GetFolderUrl(Global.FolderCommon);
                                      }
                                      else
                                      {
                                          item.Name = user.DisplayUserName(false);
                                          item.ImgUrl = user.GetSmallPhotoURL();
                                          item.Url = user.GetUserProfilePageURL();
                                      }
                                      return item;
                                  })
                         .OrderByDescending(i => i.SpaceUsage)
                         .ToList();
            }
        }
Example #6
0
        public override List <UsageSpaceStatItem> GetStatData()
        {
            var myFiles = FilesDbContext.Files
                          .Join(FilesDbContext.Tree, a => a.FolderId, b => b.FolderId, (file, tree) => new { file, tree })
                          .Join(FilesDbContext.BunchObjects, a => a.tree.ParentId.ToString(), b => b.LeftNode, (fileTree, bunch) => new { fileTree.file, fileTree.tree, bunch })
                          .Where(r => r.file.TenantId == r.bunch.TenantId)
                          .Where(r => r.file.TenantId == TenantManager.GetCurrentTenant().TenantId)
                          .Where(r => r.bunch.RightNode.StartsWith("files/my/") | r.bunch.RightNode.StartsWith("files/trash/"))
                          .GroupBy(r => r.file.CreateBy)
                          .Select(r => new { CreateBy = r.Key, Size = r.Sum(a => a.file.ContentLength) });

            var commonFiles = FilesDbContext.Files
                              .Join(FilesDbContext.Tree, a => a.FolderId, b => b.FolderId, (file, tree) => new { file, tree })
                              .Join(FilesDbContext.BunchObjects, a => a.tree.ParentId.ToString(), b => b.LeftNode, (fileTree, bunch) => new { fileTree.file, fileTree.tree, bunch })
                              .Where(r => r.file.TenantId == r.bunch.TenantId)
                              .Where(r => r.file.TenantId == TenantManager.GetCurrentTenant().TenantId)
                              .Where(r => r.bunch.RightNode.StartsWith("files/common/"))
                              .GroupBy(r => Constants.LostUser.ID)
                              .Select(r => new { CreateBy = Constants.LostUser.ID, Size = r.Sum(a => a.file.ContentLength) });

            return(myFiles.Union(commonFiles)
                   .ToList()
                   .GroupBy(
                       r => r.CreateBy,
                       r => r.Size,
                       (userId, items) =>
            {
                var user = UserManager.GetUsers(userId);
                var item = new UsageSpaceStatItem {
                    SpaceUsage = items.Sum()
                };
                if (user.Equals(Constants.LostUser))
                {
                    item.Name = FilesUCResource.CorporateFiles;
                    item.ImgUrl = PathProvider.GetImagePath("corporatefiles_big.png");
                    item.Url = PathProvider.GetFolderUrlById(GlobalFolderHelper.FolderCommon);
                }
                else
                {
                    item.Name = user.DisplayUserName(false, DisplayUserSettingsHelper);
                    item.ImgUrl = user.GetSmallPhotoURL(UserPhotoManager);
                    item.Url = user.GetUserProfilePageURL(CommonLinkUtility);
                    item.Disabled = user.Status == EmployeeStatus.Terminated;
                }
                return item;
            })
                   .OrderByDescending(i => i.SpaceUsage)
                   .ToList());
        }