コード例 #1
0
        public static UserCloudModel GetClouds(User user, IUserVaultService _uservaultService //IUserCloudService _usercloudService,
                                               , ICloudService _cloudService, IVaultTemplateService _vaultTemplateService, IMFVaultService _vaultService, IMFilesVaultService _mfvaultService, string host, params string[] roleNames)
        {
            var clouds = _cloudService.GetCloudsByUserRoles(roleNames);
            var userId = user.Id;

            var appModel   = new UserCloudModel();
            var userVaults = _uservaultService.GetVaults(userId);

            foreach (var app in clouds)
            {
                var a    = app;
                var appM = new CloudModel {
                    App = a.ToDto()
                };
                if (app.Id == CloudConstants.MyProjects)
                {
                    var templates = new List <VaultTemplate>();
                    foreach (var t in _vaultTemplateService.GetTemplatesByCloud(app.Id))
                    {
                        templates.Add(t);
                        //a.Templates.Add(t);
                    }
                    if (templates.Count > 0)
                    {
                        var appVaults =
                            userVaults.Where(c => templates.Any(d => c.TemplateId > 0 && c.TemplateId == d.Id));
                        appM.Vaults.AddRange(appVaults.Select(c => c.ToDtoWithoutTemplate()));
                    }
                    appM.Url = "/IntegratedManagement/Index";
                }
                //else if (app.Id == CloudConstants.ProjManagements)
                //{
                //    //todo 指定路径

                //}
                appModel.Apps.Add(appM);
            }
            var password   = DBWorldCache.Get(userId.ToString());
            var appVaultsC = _mfvaultService.GetVaultsByCloud(CloudConstants.SubContracts);
            var vv         = new List <MFilesVault>();

            foreach (var v in appVaultsC)
            {
                if (_vaultService.HasUser(user, password, v))
                {
                    vv.Add(v);
                }
            }
            if (vv.Count > 0)
            {
                var cc = _cloudService.GetCloudById(CloudConstants.SubContracts);
                var cM = new CloudModel {
                    App = cc.ToDto()
                };
                cM.Vaults.AddRange(vv.Select(c => c.ToDtoWithoutTemplate()));
                appModel.Apps.Add(cM);
            }
            return(appModel);
        }
コード例 #2
0
        private IEnumerable <VaultKey> GetCurrentVaults(long?statusId = null)
        {
            var userId = AuthUtility.GetUserId(User);
            var uvs    = _userVaultService.GetVaults(userId);

            return((from v in uvs
                    let proj = _projService.GetProjectByVault(v.Id)
                               where statusId == null || proj.StatusId == statusId.Value
                               select new VaultKey
            {
                Guid = v.Guid,
                Name = proj.Name
            }).ToList());
        }