public Device ToRepositoryType(IRepositoryModelCache cache, INetworkRepository networkRepository, IScriptRepository scriptRepository, ITaskRepository taskRepository) { IDeviceState state = null; if (!string.IsNullOrEmpty(Notes)) { var element = XElement.Parse(Notes); state = element.ToDeviceState(); } var result = new Device( address: Address, lastPing: LastPing, id: Id, name: Name, network: NetworkModel.ToRepositoryType(cache, Network_Id, networkRepository), scripts: scriptRepository, state: state, tasks: taskRepository, type: DeviceType.GetTypeFromString(Type_Name) ); cache?.Set(result.Id, result); return(result); }
public Device Get(User user, int id, IRepositoryModelCache cache = null) { var result = Get(id, cache); if (result == null) { return(null); } if (result.Network == null) { throw new Exception("Network not set"); } if (result.Network.Owner == null) { throw new Exception("Owner not set"); } if (result.Network.Owner.Id != user.Id) { var guest = _guests.Check(result.Network, user); if (!guest) { result = null; } } return(result); }
public Network[] Get(User user, IRepositoryModelCache cache = null) { var primaryNetworks = _networks.Get(user, cache); var guestNetworks = _guests.Get(user); var result = primaryNetworks.Concat(guestNetworks).ToArray(); return(result); }
public Device Get(User user, int id, IRepositoryModelCache cache = null) { var userModel = UserModel.FromRepositoryType(user); var result = Get(id, cache); if (result?.Network?.Owner?.Id != userModel?.Id) { return(null); } return(result); }
public Network Get(User user, string address, IRepositoryModelCache cache = null) { var result = _networks.Get(user, address, cache); if (result == null) { var guestNetworks = _guests.Get(user); result = guestNetworks.FirstOrDefault(x => string.Equals(x, address)); } return(result); }
public Task Get(User user, int id, IRepositoryModelCache cache = null) { var userModel = UserModel.FromRepositoryType(user); var result = Get(id); if (result?.Owner?.Id != user.Id) { return(null); } return(result); }
public WebHookSession ToRepositoryType(IRepositoryModelCache cache, IComputerRepository computerRepository) { var result = new WebHookSession( computer: ComputerModel.ToRepositoryType(cache, Computer_Id, computerRepository), id: Id, lastPing: LastPing, token: Token ); cache?.Set(result.Id, result); return(result); }
public UserSession ToRepositoryType(IRepositoryModelCache cache, IUserRepository userRepository) { var result = new UserSession( creationTimeStamp: CreationTimeStamp, id: Id, lastContactTimeStamp: LastContactTimeStamp, token: Token, user: UserModel.ToRepositoryType(cache, User_Id, userRepository) ); cache?.Set(result.Id, result); return(result); }
public Page <WebHookSession> List(User user, ListFilter filter, IRepositoryModelCache cache = null) { var model = UserModel.FromRepositoryType(user); var sql = $@" SELECT COUNT(*) FROM WebHookSessionModels JOIN ComputerModels ON ComputerModels.Id = WebHookSessionModels.Computer_Id WHERE ComputerModels.Owner_Id = @User_Id SELECT * FROM WebHookSessionModels JOIN ComputerModels ON ComputerModels.Id = WebHookSessionModels.Computer_Id WHERE ComputerModels.Owner_Id = @User_Id ORDER BY CreationTimestamp {SqlUtilities.OrderByDirection(filter.SortDirection)} OFFSET @Start ROWS FETCH NEXT @Count ROWS ONLY "; var parameters = new { Count = filter.Count, Start = filter.Start, User_Id = user.Id, }; int total; WebHookSessionModel[] models; using (var multiQuery = _connection.QueryMultiple(sql, parameters)) { total = multiQuery.ReadSingle <int>(); models = multiQuery.Read <WebHookSessionModel>().ToArray(); } var result = new Page <WebHookSession> { Count = filter.Count, Sort = filter.SortDirection, Items = models .Select(x => x.ToRepositoryType(cache, _computerRepository)) .ToArray(), Start = filter.Start, Total = total, }; return(result); }
public Script ToRepositoryType(IRepositoryModelCache cache) { var result = new Script( creationTimestamp: CreationTimestamp, id: Id, lastRunTimestamp: LastRunTimestamp, mutable: Mutable, runCount: RunCount, text: Text ); cache?.Set(result.Id, result); return(result); }
public User ToRepositoryType(IRepositoryModelCache cache) { var result = new User( alias: Alias, email: Email, id: Id, registeredTimestamp: RegisteredTimestamp, secret: SecretExtensions.Parse(Secret), token: Token ); cache?.Set(result.Id, result); return(result); }
public Network ToRepositoryType(IRepositoryModelCache cache, IComputerRepository computerRepository, IUserRepository userRepository) { var result = new Network( address: Address, attatchedComputer: ComputerModel.ToRepositoryType(cache, AttatchedComputer_Id, computerRepository), devices: null, id: Id, lastPing: LastPing, name: Name, owner: UserModel.ToRepositoryType(cache, Owner_Id, userRepository) ); cache?.Set(result.Id, result); return(result); }
public Device Get(int id, IRepositoryModelCache cache = null) { var sql = @" SELECT * FROM DeviceModels WHERE Id = @Id "; var parameters = new { Id = id, }; var model = _connection.QuerySingle <DeviceModel>(sql, parameters); var result = model.ToRepositoryType(cache, _networkRepository, _scriptRepository, _taskRepository); return(result); }
public WebHookSession Get(string token, IRepositoryModelCache cache = null) { var sql = @" SELECT * FROM WebHookSessionModels WHERE Token = @Token "; var parameters = new { Token = token, }; var model = _connection.QuerySingle <WebHookSessionModel>(sql, parameters); var result = model.ToRepositoryType(cache, _computerRepository); return(result); }
public Computer ToRepositoryType(IRepositoryModelCache cache, IScriptRepository scriptRepository, IUserRepository userRepository) { var result = new Computer( accessKey: AccessKey, address: Address, encryptionKey: EncryptionKey, id: Id, lastPing: LastPing, lastScript: ScriptModel.ToRepositoryType(cache, LastScript_Id, scriptRepository), name: Name, owner: UserModel.ToRepositoryType(cache, Owner_Id, userRepository) ); cache?.Set(result.Id, result); return(result); }
public Computer Get(string accessKey, IRepositoryModelCache cache = null) { var sql = @" SELECT * FROM ComputerModels WHERE AccessKey = @AccessKey "; var parameters = new { AccessKey = accessKey, }; var model = _connection.QuerySingle <ComputerModel>(sql, parameters); var result = model.ToRepositoryType(cache, _scriptRepository, _userRepository); return(result); }
public Task Get(int id, IRepositoryModelCache cache = null) { var sql = @" SELECT * FROM TaskModels WHERE Id = @Id "; var parameters = new { Id = id, }; var model = _connection.QuerySingle <TaskModel>(sql, parameters); var result = model.ToRepositoryType(cache, _computerRepository, _scriptRepository, _userRepository); return(result); }
public Script Get(int id, IRepositoryModelCache cache = null) { var sql = @" SELECT * FROM ScriptModels WHERE Id = @Id "; var parameters = new { Id = id, }; var model = _connection.QuerySingle <ScriptModel>(sql, parameters); var result = model.ToRepositoryType(cache); return(result); }
public User Get(string token, IRepositoryModelCache cache = null) { var sql = @" SELECT * FROM UserModels WHERE Token = @Token "; var parameters = new { Token = token }; var model = _connection.QuerySingle <UserModel>(sql, parameters); var result = model.ToRepositoryType(cache); return(result); }
public Page <Task> List(User user, ListFilter filter, IRepositoryModelCache cache = null) { var userModel = UserModel.FromRepositoryType(user); var sql = $@" SELECT COUNT(*) FROM TaskModels WHERE Owner_Id = @Owner_Id SELECT * FROM TaskModels WHERE Owner_Id = @Owner_Id ORDER BY Id {SqlUtilities.OrderByDirection(filter.SortDirection)} OFFSET @Start ROWS FETCH NEXT @Count ROWS ONLY "; var parameters = new { Count = filter.Count, Owner_Id = userModel.Id, Start = filter.Start, }; int total; TaskModel[] models; using (var multiQuery = _connection.QueryMultiple(sql, parameters)) { total = multiQuery.ReadSingle <int>(); models = multiQuery.Read <TaskModel>().ToArray(); } var result = new Page <Task> { Count = filter.Count, Sort = filter.SortDirection, Items = models .Select(x => x.ToRepositoryType(cache, _computerRepository, _scriptRepository, _userRepository)) .ToArray(), Start = filter.Start, Total = total, }; return(result); }
public Computer Get(User user, int id, IRepositoryModelCache cache = null) { var sql = @" SELECT * FROM ComputerModels WHERE Owner_Id = @Owner_Id AND Id = @Id "; var parameters = new { Owner_Id = user.Id, Id = id, }; var model = _connection.QuerySingle <ComputerModel>(sql, parameters); var result = model.ToRepositoryType(cache, _scriptRepository, _userRepository); return(result); }
public Computer[] Get(Script script, IRepositoryModelCache cache = null) { var sql = @" SELECT * FROM ComputerModels WHERE LastScript_Id = @LastScript_Id "; var parameters = new { LastScript_Id = script.Id, }; var models = _connection.Query <ComputerModel>(sql, parameters); var result = models .Select(x => x.ToRepositoryType(cache, _scriptRepository, _userRepository)) .ToArray(); return(result); }
public Network[] Get(User user, IRepositoryModelCache cache = null) { var userModel = UserModel.FromRepositoryType(user); var sql = @" SELECT Network_Id FROM NetworkGuestModels WHERE User_Id = @User_Id "; var parameters = new { User_Id = userModel.Id, }; var networkIds = _connection.Query <int>(sql, parameters).ToArray(); var result = networkIds .Select((id) => _networkRepository.Get(id, cache)) .ToArray(); return(result); }
public User[] Get(Network network, IRepositoryModelCache cache = null) { var networkModel = NetworkModel.FromRepositoryType(network); var sql = @" SELECT User_Id FROM NetworkGuestModels WHERE Network_Id = @Network_Id "; var parameters = new { Network_Id = networkModel.Id, }; var userIds = _connection.Query <int>(sql, parameters).ToArray(); var result = userIds .Select((id) => _userRepository.Get(id, cache)) .ToArray(); return(result); }
public Device[] Get(Network network, IRepositoryModelCache cache = null) { var networkModel = NetworkModel.FromRepositoryType(network); var sql = @" SELECT * FROM DeviceModels WHERE Network_Id = @Network_Id "; var parameters = new { Network_Id = networkModel.Id, }; var models = _connection.Query <DeviceModel>(sql, parameters).ToArray(); var result = models .Select(x => x.ToRepositoryType(cache, _networkRepository, _scriptRepository, _taskRepository)) .ToArray(); return(result); }
public Network[] Get(User user, IRepositoryModelCache cache = null) { var userModel = UserModel.FromRepositoryType(user); var sql = @" SELECT * FROM NetworkModels WHERE Owner_Id = @Owner_Id "; var parameters = new { Owner_Id = userModel.Id, }; var models = _connection.Query <NetworkModel>(sql, parameters).ToArray(); var result = models .Select(x => x.ToRepositoryType(cache, _computerRepository, _userRepository)) .ToArray(); return(result); }
public Network Get(User user, string address, IRepositoryModelCache cache = null) { var userModel = UserModel.FromRepositoryType(user); var sql = @" SELECT * FROM NetworkModels WHERE Address = @Address AND Owner_Id = @Owner_Id "; var parameters = new { Address = address, Owner_Id = userModel.Id, }; var model = _connection.QuerySingle <NetworkModel>(sql, parameters); var result = model.ToRepositoryType(cache, _computerRepository, _userRepository); return(result); }
public Task[] Get(Script script, IRepositoryModelCache cache = null) { var scriptModel = ScriptModel.FromRepositoryType(script); var sql = @" SELECT * FROM TaskModels WHERE Script_Id = @Script_Id "; var parameters = new { Script_Id = scriptModel.Id, }; var models = _connection.Query <TaskModel>(sql, parameters).ToArray(); var result = models .Select(x => x.ToRepositoryType(cache, _computerRepository, _scriptRepository, _userRepository)) .ToArray(); return(result); }
public Page <Script> List(ListFilter filter, IRepositoryModelCache cache = null) { var sql = $@" SELECT COUNT(*) FROM ScriptModels SELECT * FROM ScriptModels ORDER BY CreationTimestamp {SqlUtilities.OrderByDirection(filter.SortDirection)} OFFSET @Start ROWS FETCH NEXT @Count ROWS ONLY "; var parameters = new { Count = filter.Count, Start = filter.Start, }; int total; ScriptModel[] models; using (var multiQuery = _connection.QueryMultiple(sql, parameters)) { total = multiQuery.ReadSingle <int>(); models = multiQuery.Read <ScriptModel>().ToArray(); } var result = new Page <Script> { Count = filter.Count, Sort = filter.SortDirection, Items = models .Select(x => x.ToRepositoryType(cache)) .ToArray(), Start = filter.Start, Total = total, }; return(result); }
public Task[] ForComputer(Computer computer, DateTime now, IRepositoryModelCache cache = null) { var computerModel = ComputerModel.FromRepositoryType(computer); var sql = @" SELECT * FROM TaskModels WHERE Target_Id = @Target_Id AND ReceivedTimestamp IS NULL AND Expiration > @Now "; var parameters = new { Now = now, Target_Id = computerModel.Id, }; var models = _connection.Query <TaskModel>(sql, parameters).ToArray(); var result = models .Select(x => x.ToRepositoryType(cache, _computerRepository, _scriptRepository, _userRepository)) .ToArray(); return(result); }