public static User GetCurrentUser(IRoomieDatabaseContext database) { var session = GetCurrentUserSession(database); if (session == null) return null; return session.User; }
public static UserSession CreateSession(IRoomieDatabaseContext database, User user) { var userSession = UserSession.Create(user); database.Sessions.Add(userSession); return userSession; }
public static UserSession GetCurrentUserSession(IRoomieDatabaseContext database) { var request = HttpContext.Current.Request; if (request.Cookies[sessionTokenName] == null) { return null; } var token = request.Cookies[sessionTokenName].Value; var session = database.Sessions.GetUserSession(token); if (session == null) { return null; } session.UpdateLastContact(); database.Sessions.Update(session); return session; }
private static IEnumerable<IDeviceState> ProcessSentDevices(Message request, Message response, User user, Network network, IRoomieDatabaseContext database) { var sentDevices = request.Payload.Select(x => x.ToDeviceState()); sentDevices = sentDevices.Select(x => x.NewWithNetwork(network)); return sentDevices; }
private static void UpdateDevices(IEnumerable<IDeviceState> sentDevices, IEnumerable<Device> registeredDevices, Network network, IRoomieDatabaseContext database) { // go through the devices from the client and update the entries in the database foreach (var sentDevice in sentDevices) { var registeredDevice = registeredDevices.FirstOrDefault(x => x.Address == sentDevice.Address && x.Network.Address == sentDevice.NetworkState.Address); if (registeredDevice == null) { var newDevice = Device.Create( address: sentDevice.Address, isConnected: sentDevice.IsConnected, name: sentDevice.Name, network: network, location: sentDevice.Location, type: sentDevice.Type ); newDevice.Update(sentDevice); database.Devices.Add(newDevice); } else { database.Devices.Update(registeredDevice.Id, sentDevice); } } }
private static void RemoveDevices(IEnumerable<Device> devicesToRemove, IRoomieDatabaseContext database) { foreach (var device in devicesToRemove.ToArray()) { database.Devices.Remove(device); } }