Esempio n. 1
0
        public static User GetCurrentUser(IRoomieDatabaseContext database)
        {
            var session = GetCurrentUserSession(database);
            if (session == null)
                return null;

            return session.User;
        }
Esempio n. 2
0
        public static UserSession CreateSession(IRoomieDatabaseContext database, User user)
        {
            var userSession = UserSession.Create(user);

            database.Sessions.Add(userSession);

            return userSession;
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        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);
                }
            }
        }
Esempio n. 6
0
 private static void RemoveDevices(IEnumerable<Device> devicesToRemove, IRoomieDatabaseContext database)
 {
     foreach (var device in devicesToRemove.ToArray())
     {
         database.Devices.Remove(device);
     }
 }