Esempio n. 1
0
        public UserDeviceItem createNewUserDevice(UserDeviceItem item)
        {
            item.DeviceID = getNextFreeNumber();
            string writeLine = convertToString(item);

            File.AppendAllLines(filepath, new string[] { writeLine });

            return(item);
        }
Esempio n. 2
0
        private UserDeviceItem createNewUserDevice(LoginDataItem loginData, UserItem user)
        {
            UserDeviceItem device = new UserDeviceItem
            {
                CreateTime = DateTime.Now,
                DeviceName = loginData.DeviceName,
                UserID     = user.UserID
            };

            device = _userDeviceDB.createNewUserDevice(device);
            return(device);
        }
Esempio n. 3
0
        private UserDeviceItem convertToItem(string line)
        {
            string[]       args = line.Split(';');
            UserDeviceItem item = new UserDeviceItem
            {
                DeviceID   = (long)Convert.ToDouble(args[0]),
                DeviceName = args[1],
                UserID     = (long)Convert.ToDouble(args[2]),
                CreateTime = Convert.ToDateTime(args[3])
            };

            return(item);
        }
Esempio n. 4
0
        private long getNextFreeNumber()
        {
            long maxUsed = 0;

            using (StreamReader sr = new StreamReader(filepath))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    UserDeviceItem item = convertToItem(line);
                    if (item.DeviceID >= maxUsed)
                    {
                        maxUsed = item.DeviceID;
                    }
                }
            }
            return(maxUsed + 1);
        }
Esempio n. 5
0
        public ActionResult register([FromBody] LoginDataItem loginData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            UserItem user = _userDB.getUserByEmail(loginData.Email);

            if (user == null)
            {
                return(NotFound($"No UserItem found for Email: {loginData.Email}"));
            }
            UserDeviceItem device = _userDeviceDB.getDeviceByNameAndUser(user.UserID, loginData.DeviceName);

            if (device == null)
            {
                device = createNewUserDevice(loginData, user);
            }

            SessionItem session = _sessionDB.findExistingSession(user.UserID, device.DeviceID);

            if (session == null)
            {
                session = createNewSession(user, device);

                //Send mail
                _sendMailService.setUser(user);

                Thread thread = new Thread(() => _sendMailService.sendRegistrationMail(session));
                thread.Start();
                //mailHandler.sendRegistrationMail(session);

                return(Created("", session));
            }

            return(Ok(session));
        }
Esempio n. 6
0
        private SessionItem createNewSession(UserItem user, UserDeviceItem device)
        {
            SessionItem session = new SessionItem
            {
                DeviceID       = device.DeviceID,
                UserID         = user.UserID,
                StartTime      = DateTime.Now,
                ExpirationTime = DateTime.Now.AddMonths(ServerConfigHandler.ServerConfig.Default_SessionUseTimeInMonth),
                isActivied     = false
            };

            session.setActivationCode();
            session.setShortHashCode();

            session = _sessionDB.createNewSession(session);

            JWTCreationHandler jWTCreationHandler = new JWTCreationHandler(session, user);

            session.Token = jWTCreationHandler.Token;

            _sessionDB.updateSessionItem(session.InternalID, session);

            return(session);
        }
Esempio n. 7
0
 private string convertToString(UserDeviceItem item)
 {
     return($"{item.DeviceID};{item.DeviceName};{item.UserID};{item.CreateTime}");
 }