public UserInfo GetUserInfo(VaultServer server, string userName) { var app = MFServerUtility.ConnectToServer(server); try { var la = MfUserUtils.GetLoginAccount(app, userName); if (la != null) { if (String.IsNullOrEmpty(la.FullName)) { la.FullName = userName; } return(new UserInfo { UserName = userName, Email = la.EmailAddress, Fullname = la.FullName }); } } catch (Exception ex) { Log.Error(String.Format("获取登录账户({0})异常:" + ex.Message, userName), ex); } finally { app.Disconnect(); } return(null); }
public bool ConnectToServer(string userName, string password, VaultServer server, bool windowsUser) { var app = new MFilesServerApplication(); try { var authType = MFAuthType.MFAuthTypeSpecificMFilesUser; if (windowsUser) { authType = MFAuthType.MFAuthTypeSpecificWindowsUser; } var status = app.Connect(authType, userName, password, "", "ncacn_ip_tcp", server.LocalIp, server.ServerPort); var ok = status == MFServerConnection.MFServerConnectionAuthenticated; try { app.Disconnect(); } catch { } return(ok); } catch (Exception ex) { Log.Error("登录服务器失败:" + ex.Message, ex); } return(false); }
public void ChangeVaultUserInfo(User user, VaultServer server) { var accountName = GetAccountName(user); var app = MFServerUtility.ConnectToServer(server.AdminName, server.AdminPwd, MFServerUtility.GetVaultServerLocalIp(server), server.ServerPort); try { var la = MfUserUtils.GetLoginAccount(app, accountName); if (la == null) { return; } var needChange = false; if (la.FullName != user.FullName) { needChange = true; la.FullName = user.FullName; } if (la.EmailAddress != user.Email) { la.EmailAddress = user.Email; needChange = true; } if (needChange) { app.LoginAccountOperations.ModifyLoginAccount(la); } } finally { app.Disconnect(); } }
/// <summary> /// 在指定的MFiles服务器中添加登陆账户 /// </summary> /// <param name="user">用户对象</param> /// <param name="server">MFiles Server对象 </param> internal void CreateMFilesLoginAccount(User user, VaultServer server, MFLoginAccountType accountType, MFLicenseType licenseType) { var app = MFServerUtility.ConnectToServer(server.AdminName, server.AdminPwd, MFServerUtility.GetVaultServerLocalIp(server), server.ServerPort); try { var accountName = GetAccountName(user); var hasAccount = MfUserUtils.HasLoginAccount(app, accountName); if (!hasAccount) { var account = new LoginAccount(); var fullName = user.FullName; if (String.IsNullOrEmpty(fullName)) { fullName = user.UserName; } account.Set(accountType, user.Domain, user.UserName, MFLoginServerRole.MFLoginServerRoleLogIn, fullName, user.Email, licenseType); app.LoginAccountOperations.AddLoginAccount(account); } } finally { app.Disconnect(); //todo 多线程时是否对其他会话有影响 } }
public void DeleteServer(VaultServer server) { if (server == null) { throw new ArgumentNullException("server"); } _serverRepo.Delete(server); }
public void AddServer(VaultServer server) { if (server == null) { throw new ArgumentNullException("server"); } _serverRepo.Insert(server); }
static void Main(string[] args) { AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit; vaultServer = new VaultServer(); vaultServer.LoadToDisk(); vaultServer.ListenAsync(); Console.ReadLine(); }
public static VaultServerDto ToDto(this VaultServer server) { if (server == null) { return(null); } return(new VaultServerDto { Id = server.Id, Ip = server.Ip, LocalIp = server.LocalIp, Port = server.Port }); }
public void CreateMFilesLoginAccount(User user, VaultServer server) { var app = MFServerUtility.ConnectToServer(server.AdminName, server.AdminPwd, MFServerUtility.GetVaultServerLocalIp(server), server.ServerPort); try { var has = MfUserUtils.HasLoginAccount(app, GetAccountName(user)); if (!has) { var accType = MFLoginAccountType.MFLoginAccountTypeWindows; if (string.IsNullOrEmpty(user.Domain)) { accType = MFLoginAccountType.MFLoginAccountTypeMFiles; } CreateMFilesLoginAccount(user, app, accType, MFLicenseType.MFLicenseTypeConcurrentUserLicense); } } finally { app.Disconnect(); //todo 多线程时是否对其他会话有影响 } }
public IList <MfUser> GetMFilesLoginAccounts(VaultServer server) { var res = new List <MfUser>(); var app = MFServerUtility.ConnectToServer(server.AdminName, server.AdminPwd, MFServerUtility.GetVaultServerLocalIp(server), server.ServerPort); try { var accs = MfUserUtils.GetLoginAccounts(app); res.AddRange(accs.Select(a => new MfUser { AccountName = a.AccountName, Domain = a.DomainName, UserName = a.UserName, Email = a.EmailAddress, FullName = string.IsNullOrEmpty(a.FullName) ? a.UserName : a.FullName })); } finally { app.Disconnect(); //todo 多线程时是否对其他会话有影响 } return(res); }
public static MFilesServerApplication ConnectToServer(VaultServer server) { return(ConnectToServer(server.AdminName, server.AdminPwd, server.LocalIp, server.ServerPort)); }
public static MFilesServerApplication ConnetToMfApp(User user, string password, VaultServer server) { var accountName = user.GetAccountName(); var app = ConnectToServer(accountName, password, GetVaultServerLocalIp(server), server.ServerPort); return(app); }
public static string GetVaultServerLocalIp(VaultServer vaultServer) { return(vaultServer.LocalIp); }
private IEnumerable <VaultKey> GetUserVaults(string userName, string password, bool isAdUser, VaultServer server) { var vaults = new List <VaultKey>(); try { var serverApp = MFServerUtility.ConnectToServer(userName, password, server.LocalIp, server.ServerPort, isAdUser); var keys = serverApp.GetOnlineVaults(); vaults.AddRange(from VaultOnServer key in keys select new VaultKey { Name = key.Name, Guid = key.GUID }); _serverApp = serverApp; } catch (Exception) { } return(vaults); }
public IEnumerable <VaultKey> GetCurrentVaults(string userName, string password, bool isAdUser, VaultServer server) { var vaults = GetUserVaults(userName, password, isAdUser, server); LogOut(); return(vaults); }
public IEnumerable <ProjectHourInfo> GetHourInfo(IEnumerable <VaultKey> vaultKeys, VaultServer server, DateTime?beginDate = null, DateTime?deadline = null) { var serverApp = MFServerUtility.ConnectToServer(server.AdminName, server.AdminPwd, server.LocalIp, server.ServerPort, false); var res = new List <ProjectHourInfo>(); foreach (VaultKey v in vaultKeys) { Vault vault = null; try { vault = serverApp.LogInToVault(v.Guid); } catch {} if (!IsValid(vault)) { continue; } var tBudget = GetTotalBudget(vault); if (beginDate == null) { beginDate = tBudget.BeginDate; } if (deadline == null) { deadline = tBudget.Deadline; } var hLogs = GetHourLogs(vault, tBudget.BeginDate, tBudget.Deadline); var pBudget = GetPersonalBudgets(vault); res.Add(new ProjectHourInfo { TotalBudget = tBudget, HourLogs = hLogs, PersonalBudgets = pBudget }); } serverApp.Disconnect(); return(res); }
internal async Task <IEnumerable <ProjectHour> > GetTableDataAsync(IEnumerable <VaultKey> vaultGuids, VaultServer server, DateTime?beginDate = null, DateTime?deadline = null, int showingType = 1) { return(await Task.Run(() => GetTableData(vaultGuids, server, beginDate, deadline, showingType))); }
private IEnumerable <ProjectHour> GetTableData(IEnumerable <VaultKey> vaultGuids, VaultServer server, DateTime?beginDate = null, DateTime?deadline = null, int showingType = 1) { var vaultInfo = _workHourService.GetHourInfo(vaultGuids, server, beginDate, deadline); var projHourList = new List <ProjectHour>(); foreach (ProjectHourInfo pInfo in vaultInfo) { var dbTotalBudget = pInfo.TotalBudget; var dbPersonalBudgets = pInfo.PersonalBudgets; var dbHourLogs = pInfo.HourLogs; if (beginDate == null) { beginDate = dbTotalBudget.BeginDate; } if (deadline == null) { deadline = dbTotalBudget.Deadline; } var projHour = new ProjectHour() { ProjName = dbTotalBudget.ProjectName //,BudgetHours = dbTotalBudget.TotalHours , TimeSpans = new List <string>() }; double tHoursBuget = 0.0; double tHoursActual = 0.0; var userList = new List <UserHour>(); var timeSpans = DateTimeTool.GetTimespanList(beginDate.GetValueOrDefault(), deadline.GetValueOrDefault(), showingType).ToList(); foreach (TimeArea span in timeSpans) { projHour.TimeSpans.Add(span.Title); } foreach (PersonalBudget b in dbPersonalBudgets) { var userHour = new UserHour { UserName = b.MemberName }; var uLogs = GetUserLogs(b.VaultGuid, b.UserID, dbHourLogs); var bHours = new List <UnitHour>(); var aHours = new List <UnitHour>(); var mBudgets = Convert2MonthBudgets(b.HoursDetail); foreach (TimeArea t in timeSpans) { var bUnit = GetBudgetUnit(t, mBudgets); var aUnit = GetActualUnit(t, uLogs); bHours.Add(bUnit); aHours.Add(aUnit); } userHour.BudgetHours = bHours; userHour.ActualHours = aHours; tHoursBuget += userHour.BudgetTotal; tHoursActual += userHour.ActualTotal; userList.Add(userHour); } projHour.UserList = userList; projHour.BudgetHours = tHoursBuget; projHour.ActualHours = tHoursActual; projHourList.Add(projHour); } return(projHourList); }