示例#1
0
        public ActionResult <string> SelectUser([FromBody] dynamic json)
        {
            lock (_system)
            {
                var     res   = JsonSerializer.Serialize(json);
                JObject job   = JObject.Parse(res);
                String  email = job.GetValue("email").ToString();
                if (!_system.isUserOnline(job.GetValue("valueST").ToString()))
                {
                    return(Unauthorized("Client Offline"));
                }

                InterfaceUtilizador u = _system.GetUser(email);
                var user = new JObject();
                user.Add("name", u.GetName());
                user.Add("email", email);

                user.Add("cat", u.GetType().Name);
                user.Add("localidade", u.GetLocalidade());
                if (u.GetType().Name == "Cliente")
                {
                    user.Add("categoria", "Cliente " + ((Cliente)u).categoria);
                }
                var ret = new JObject();
                ret.Add("user", user);
                return(Ok(ret.ToString()));
            }
        }
示例#2
0
        public ActionResult <InterfaceUtilizador> Authenticate([Bind] UserAuthenticationDto userDto)
        {
            lock (_system)
            {
                InterfaceUtilizador user = null;
                int    typeOfUser        = _system.TypeUser(userDto.email);
                string token             = CalculateHash.GetHashString(userDto.email + DateTime.Now);
                if (typeOfUser != -1)
                {
                    switch (typeOfUser)
                    {
                    case 0:
                    {
                        user = (Cliente)_system.Authenticate(userDto.email, userDto.password, token);
                        break;
                    }

                    case 1:
                    {
                        user = (Instrutor)_system.Authenticate(userDto.email, userDto.password, token);
                        break;
                    }

                    case 2:
                    {
                        user = (Rececionista)_system.Authenticate(userDto.email, userDto.password, token);
                        break;
                    }
                    }
                }

                if (user == null || typeOfUser == -1)
                {
                    return(Unauthorized(new
                    {
                        message = "Credentials are wrong..."
                    }));
                }

                StringBuilder a = new StringBuilder()
                                  .Append("{")
                                  .Append("\"token\":\"")
                                  .Append(token)
                                  .Append("\",\"user\":")
                                  .Append(JsonSerializer.Serialize(user, user.GetType()))
                                  .Append("}");

                return(Ok(a.ToString()));
            }
        }
示例#3
0
        public ActionResult <string> Status([FromBody] StringDto token)
        {
            lock (_system)
            {
                var validToken = _system.isUserOnline(token.valueST);
                if (!validToken)
                {
                    return(Unauthorized("Client offline"));
                }

                String statusToken = validToken ? "online" : "offline";

                InterfaceUtilizador user = null;

                if (validToken)
                {
                    _system.RenovaToken(token.valueST);

                    var email = _system.getUserGivenToken(token.valueST);

                    user = _system.GetUser(email);

                    int typeOfUser = _system.TypeUser(user.GetEmail());

                    if (typeOfUser != -1)
                    {
                        switch (typeOfUser)
                        {
                        case 0:
                        {
                            user = (Cliente)user;
                            break;
                        }

                        case 1:
                        {
                            user = (Instrutor)user;
                            break;
                        }

                        case 2:
                        {
                            user = (Rececionista)user;
                            break;
                        }
                        }
                    }
                }

                string        userData = JsonSerializer.Serialize(user, user.GetType());
                StringBuilder a        = new StringBuilder()
                                         .Append("{")
                                         .Append("\"status\":\"")
                                         .Append(statusToken)
                                         .Append("\",\"user\":")
                                         .Append(userData)
                                         .Append("}");

                return(Ok(a.ToString()));
            }
        }