Exemplo n.º 1
0
        public static bool LogIn(string username, string password, out string statusMessage)
        {
            IQueryable <UserPrivate> userPrivateQueryable = _documentClient.CreateDocumentQuery <UserPrivate>(
                PrivateUsersCollectionUri).Where(f => f.Id == username && f.Password == password);

            if (userPrivateQueryable.Count() != 1)
            {
                statusMessage = "Log in failed! Username or password is incorrect.";
                return(false);
            }

            foreach (UserPrivate user in userPrivateQueryable)
            {
                userPrivate = user;
            }

            statusMessage = $"Logged in as '{username}'";

            IQueryable <UserPublic> userPublicQueryable = _documentClient.CreateDocumentQuery <UserPublic>(
                PublicUsersCollectionUri).Where(f => f.Id == username);

            foreach (UserPublic user in userPublicQueryable)
            {
                userPublic = user;
            }

            PiConnectionString = IoTClientManager.GetPiConnectionString(userPublic.Id);

            return(true);
        }
Exemplo n.º 2
0
        public static bool Register(string username, string password, string fullName, string macAddress, out string statusMessage)
        {
            UserPublic  uPublic  = new UserPublic(username, fullName, macAddress);
            UserPrivate uPrivate = new UserPrivate(username, password);

            if (!InputValidation.ValidateUsername(username, out statusMessage))
            {
                return(false);
            }

            if (!InputValidation.ValidatePassword(password, out statusMessage))
            {
                return(false);
            }

            string idToReplace = null;

            if (!InputValidation.ValidateMacAddress(macAddress, out statusMessage))
            {
                if (statusMessage != StringConstants.MacAddressAlreadyExistsMessage)
                {
                    return(false);
                }
                if (IsActualUser(macAddress, out idToReplace))
                {
                    return(false);
                }
            }

            if (string.IsNullOrWhiteSpace(fullName))
            {
                statusMessage = "Your full name cannot be empty";
                return(false);
            }

            if (!IoTClientManager.CreateDevice(username, out statusMessage))
            {
                return(false);
            }

            if (idToReplace == null)
            {
                _documentClient.CreateDocumentAsync(PublicUsersCollectionUri, uPublic);
            }
            else
            {
                _documentClient.ReplaceDocumentAsync(PublicUserDocumentUri(idToReplace), uPublic);
            }
            _documentClient.CreateDocumentAsync(PrivateUsersCollectionUri, uPrivate);

            userPublic         = uPublic;
            userPrivate        = uPrivate;
            PiConnectionString = IoTClientManager.GetPiConnectionString(uPublic.Id);

            statusMessage = $"User '{username}' has been registered successsfully.";
            return(true);
        }