public virtual object Users([FromServices] IQueryParams param) { using (var dbConnection = new SysDB()) { var query = from user in dbConnection.SysUser select new { UserID = user.UserID, UserName = user.UserName, StatusID = user.StatusID, LastName = user.LastName, FirstName = user.FirstName, Email = user.Email, //As Rodrigo said user company has to be separate varchar of user - 07.24.2017 //Company = dbConnection.SysCompany // .First(company => company.CompanyID == user.CompanyID) // .CompanyName, Company = user.Company, CreatedOn = user.CreatedOn, Role = dbConnection.SysRole .First(role => role.RoleID == (dbConnection.SysUserrole .First(userRole => userRole.UserID == user.UserID) .RoleID)) .RoleName }; var data = DataHelper.GetData(query, param); return(data.Data); } }
public virtual object User(int userId, [FromServices] IQueryParams param) { using (var dbConnection = new SysDB()) { var query = from user in dbConnection.SysUser where user.UserID == userId select new { UserID = user.UserID, UserName = user.UserName, Status = dbConnection.SysStatus .First(status => status.StatusID == user.StatusID) .Description, LastName = user.LastName, FirstName = user.FirstName, Email = user.Email, Company = dbConnection.SysCompany .First(company => company.CompanyID == user.CompanyID) .CompanyName, CreatedOn = user.CreatedOn, Role = dbConnection.SysRole .First(role => role.RoleID == (dbConnection.SysUserrole .First(userRole => userRole.UserID == user.UserID) .RoleID)) .RoleName }; var data = DataHelper.GetData(query, param); return(data.Data); } }
public void GetRoles(SysDB db) { var query = from ur in db.SysUserrole where ur.UserID == UserID select ur; UserRoles = query.Select(x => x.RoleID).ToList(); }
public virtual object Auth0User(int userId, [FromServices] IQueryParams param) { using (var dbConnection = new SysDB()) { var targetUserEmail = dbConnection.SysUser.First(user => user.UserID == userId).Email; return(new ManagementApiClient().GetUserByEmail(targetUserEmail)); } }
protected override void OnUnLoad() { if (_db != null) { _db.Dispose(); _db = null; } base.OnUnLoad(); }
public virtual object CheckUserExists([FromBody] NewUser newUser, [FromServices] IQueryParams param) { bool isUserExistant = false; using (var dbConnection = new SysDB()) { isUserExistant = dbConnection.SysUser.Any(user => user.Email == newUser.Email); } return(new { userExistant = isUserExistant }); }
public static List <T> GetList <T>(string filter) where T : class { using (var db = new SysDB()) { var query = from x in db.GetTable <T>() select x; if (filter.Length > 0) { query = query.Where(filter); } return(query.ToList <T>()); } }
public static T GetModel <T>(string filter) where T : class { using (var db = new SysDB()) { var query = from x in db.GetTable <T>() select x; if (filter.Length > 0) { query = query.Where(filter); } return(query.FirstOrDefault <T>()); } }
public bool IsInRole(string role) { using (var db = new SysDB()) { var query = from ur in db.SysUserrole join r in db.SysRole on ur.RoleID equals r.RoleID where ur.UserID == CurrentUser.UserID && r.RoleName == role select r.RoleID; try { return(query.Count() > 0); } catch { return(false); } } }
public virtual object NewUser([FromBody] NewUser newUser) { using (var dbConnection = new SysDB()) { dbConnection.Insert <SysUser>(new SysUser { UserName = newUser.firstName + newUser.lastName, FirstName = newUser.firstName, LastName = newUser.lastName, //TBD StatusID = 0, CompanyID = 1, //Role = newUser.role, //Clients = newUser.clients, Email = newUser.Email, //Need to find a way to not initialize property that have default values CreatedOn = DateTime.Now, UpdatedOn = DateTime.Now, //TBD CreatedBy = "dev", UpdatedBy = "dev", }); dbConnection.Insert <SysUserrole>(new SysUserrole { UserID = dbConnection.SysUser.First(user => user.Email == newUser.Email).UserID, RoleID = dbConnection.SysRole.First(role => role.RoleName == newUser.role).RoleID, //Need to find a way to not initialize property that have default values CreatedOn = DateTime.Now, UpdatedOn = DateTime.Now, //!!! CreatedBy = "dev", UpdatedBy = "dev", }); } new ManagementApiClient().CreateUser(newUser); //new AuthenticationApiClient().RequestChangePassword(newUser.email); return(new OkObjectResult("User created")); }
static HistoryAutoRec() { //检查历史记录剩余空间 Task.Run(() => { while (true) { try { using (SysDB db = new SysDB()) { var info = (from m in db.SystemSetting select new { path = m.HistoryPath, g = m.HistoryStoreAlarm }).FirstOrDefault(); if (info == null || string.IsNullOrEmpty(info.path) || info.path.Length < 2 || info.g == null || info.g == 0 || info.path[1] != ':') { continue; } System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives(); foreach (System.IO.DriveInfo drive in drives) { if (drive.Name.ToLower()[0] == info.path.ToLower()[0]) { var gb = Math.Round(drive.TotalFreeSpace / (double)(1024 * 1024 * 1024), 2); if (gb <= info.g.GetValueOrDefault()) { SystemHelper.AddAlarm(new Alarm() { Content = $"历史路径{info.path}剩余空间只有{gb}GB了,请尽快扩展磁盘!", }); } break; } } } } catch (Exception ex) { using (Way.Lib.CLog log = new Way.Lib.CLog("HistoryAutoRec 检查磁盘剩余空间 error ")) { log.Log(ex.ToString()); } } Thread.Sleep(1000 * 60); } }); }
public virtual object EditUser([FromBody] NewUser editedUser) { //Need to set clients somehow using (var dbConnection = new SysDB()) { var targetUserId = dbConnection.GetTable <SysUser>().First(user => user.Email == editedUser.Email).UserID; dbConnection.GetTable <SysUser>().Where(user => user.UserID == targetUserId) .Set(user => user.FirstName, user => editedUser.firstName) .Set(user => user.LastName, user => editedUser.lastName) .Set(user => user.UpdatedOn, user => DateTime.Now) .Update(); dbConnection.GetTable <SysUserrole>().Where(userrole => userrole.UserID == targetUserId) .Set(userrole => userrole.RoleID, userrole => dbConnection.SysRole .First(role => role.RoleName == editedUser.role).RoleID) .Set(userrole => userrole.UpdatedOn, userrole => DateTime.Now) .Update(); } return(new OkObjectResult("User updated")); }
public virtual object DeleteUser(int userId) { string targetUserEmail = null; using (var dbConnection = new SysDB()) { targetUserEmail = dbConnection.GetTable <SysUser>().First(user => user.UserID == userId).Email; dbConnection.GetTable <SysUserrole>() .Where(userrole => userrole.UserID == userId) .Delete(); dbConnection.GetTable <SysUser>() .Where(user => user.UserID == userId) .Delete(); } var targetAuth0UserId = new ManagementApiClient().GetUsers().First(auth0User => auth0User.Email == targetUserEmail).UserId; new ManagementApiClient().DeleteUser(targetAuth0UserId); return(new OkObjectResult("User deleted")); }
/// <summary> /// 添加数据监控客户端 /// </summary> /// <param name="groupName"></param> /// <param name="db"></param> /// <param name="points"></param> public static void AddClient(string groupName, SysDB db, DevicePoint[] points) { List <WatchGroup> watches = new List <WatchGroup>(); foreach (var point in points) { var watch = watches.FirstOrDefault(m => m.DeviceId == point.DeviceId); if (watch == null) { var device = db.Device.FirstOrDefault(m => m.id == point.DeviceId); var gateway = db.CommunicationDriver.FirstOrDefault(m => m.id == device.DriverID); watch = new WatchGroup(); watch.MessageGroupName = groupName; watch.DeviceAddress = device.Address; watch.Client = new SunRizDriver.SunRizDriverClient(gateway.Address, gateway.Port.Value); watch.DeviceId = point.DeviceId.Value; watches.Add(watch); } watch.PointAddress.Add(point.Address); } RunningWatches[groupName] = watches.ToArray(); }
static void start() { try { if (hisDB != null) { lock (hisDB) { hisDB.CommitTransaction(); hisDB.Dispose(); } hisDB = null; } using (SysDB db = new SysDB()) { var sysSetting = db.SystemSetting.FirstOrDefault(); if (string.IsNullOrEmpty(sysSetting.HistoryPath)) { return; } try { //目录不存在,创建目录 if (System.IO.Directory.Exists(sysSetting.HistoryPath) == false) { System.IO.Directory.CreateDirectory(sysSetting.HistoryPath); } HistoryDataPath = $"data source=\"{sysSetting.HistoryPath.Replace("\\", "/")}/history_data.db\""; hisDB = new DB.SunRiz(HistoryDataPath, Way.EntityDB.DatabaseType.Sqlite); LastHisTime = DateTime.Now; hisDB.BeginTransaction(); } catch { return; } var pointGroups = from m in db.DevicePoint where m.ValueRelativeChange == true || m.ValueAbsoluteChange == true || m.ValueOnTimeChange == true || m.IsAlarm == true group m by m.DeviceId into g select g; foreach (var pointArr in pointGroups) { var deviceId = pointArr.Key.GetValueOrDefault(); var device = db.Device.AsTracking().FirstOrDefault(m => m.id == deviceId); var driver = db.CommunicationDriver.AsTracking().FirstOrDefault(m => m.id == device.DriverID); MyDriverClient client = new MyDriverClient(driver.Address, driver.Port.Value); client.Points = (from m in pointArr select new MyDevicePoint(m)).ToArray(); AllClients.Add(client); string[] pointAddrs = new string[client.Points.Length]; for (int i = 0; i < client.Points.Length; i++) { pointAddrs[i] = client.Points[i].DevicePoint.Address; if (client.Points[i].DevicePoint.ValueOnTimeChange == true) { client.SaveOnTimeInfos.Add(new SaveOnTimeInfo() { PointObj = client.Points[i], PointId = client.Points[i].DevicePoint.id.Value, Interval = client.Points[i].DevicePoint.ValueOnTimeChangeSetting.GetValueOrDefault(), }); } } watchClient(client, device, pointAddrs); //启动定时保存的线程 saveValueOnTime_Thread(client, device); } } } catch (Exception ex) { using (Way.Lib.CLog log = new Way.Lib.CLog("HistoryAutoRec error ")) { log.Log(ex.ToString()); } } }