Пример #1
0
        private User Authenticate(string api_token, string refresh_token, long token_expiration)
        {
            RestRequest request = new RestRequest(String.Format("{0}/profiles", ApiPath), Method.GET);

            request.AddParameter("api_token", api_token);

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                if (httpResponse.StatusCode == HttpStatusCode.Unauthorized)
                {
                    return(new User("Unauthorized"));
                }
                User CurrentUser = JsonConvert.DeserializeObject <Datas.User>(httpResponse.Content, TSCloud.serializer_settings());
                RefreshToken           = refresh_token;
                Expiration             = token_expiration;
                ApiToken               = api_token;
                CurrentUser.SysInfo    = GetSysInfo();
                CurrentUser.StatusCode = httpResponse.StatusCode;
                CurrentUser.ApiToken   = api_token;
                this.CurrentUser       = CurrentUser;

                //UserClient UserClient = new UserClient(this);
                //m_users = UserClient.All();

                RefreshThread = new Thread(new RefreshTokenWorker(this).Start);
                RefreshThread.Start();
                return(CurrentUser);
            }
            catch (Exception ee)
            {
                return(new User(ee.ToString()));
            }
        }
Пример #2
0
        public Hash UpdateDesktopSettings(Hash settings)
        {
            if (!CheckExpiration())
            {
                throw new Exception("token refresh fails");
            }

            RestRequest request = new RestRequest(String.Format("{0}/profiles/desktop_settings", ApiPath), Method.PUT);

            request.AddParameter("api_token", ApiToken);
            request.AddParameter("desktop_settings", settings.Stringify());

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                Hash          responseHash = JsonConvert.DeserializeObject <Hash>(httpResponse.Content, TSCloud.serializer_settings());

                return(responseHash);
            }
            catch
            {
                return(null);
            }
        }
Пример #3
0
        //public Users All()
        //{
        //    RestRequest request = new RestRequest(String.Format("{0}/users", ApiPath), Method.GET);
        //    request.AddParameter("api_token", ApiToken);

        //    try
        //    {
        //        IRestResponse httpResponse = RestClient.Execute(request);
        //        List<User> user_list = JsonConvert.DeserializeObject<List<User>>(httpResponse.Content, TSCloud.serializer_settings());
        //        user_list.ForEach(x => x.SysInfo = GetSysInfo());

        //        return new Users(user_list);
        //    }
        //    catch
        //    {
        //        return new Users();
        //    }
        //}
        public User Create(User user)
        {
            if (String.IsNullOrEmpty(user.Email))
            {
                throw new Exception("Email required");
            }
            if (!CheckExpiration())
            {
                throw new Exception("token refresh fails");
            }

            RestRequest request = new RestRequest(String.Format("{0}/users", ApiPath), Method.POST);

            request.AddParameter("api_token", ApiToken);
            request.AddParameter("email", user.Email);
            request.AddParameter("password", user.Password);
            request.AddParameter("name", user.Name);
            request.AddParameter("phone", user.Phone);
            request.AddParameter("address", user.Address);
            request.AddParameter("company", user.Company);
            request.AddParameter("role", user.Role);
            request.AddParameter("meta", user.Meta.Stringify());

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                User          created_user = JsonConvert.DeserializeObject <User>(httpResponse.Content, TSCloud.serializer_settings());
                created_user.SysInfo = GetSysInfo();

                return(created_user);
            }
            catch (Exception ee)
            {
                return(new User(Convert.ToString(ee)));
            }
        }
Пример #4
0
        public User Authenticate(string Email, string Password, string External)
        {
            var request = new RestRequest(ApiPath + "/authenticates", Method.POST);

            request.AddParameter("email", Email.ToLower());
            request.AddParameter("password", Password);
            if (!string.IsNullOrEmpty(External))
            {
                request.AddParameter("external", External);
            }
            request.RequestFormat = DataFormat.Json;

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);

                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    User CurrentUser = JsonConvert.DeserializeObject <Datas.User>(httpResponse.Content, TSCloud.serializer_settings());
                    ApiToken            = CurrentUser.ApiToken;
                    RefreshToken        = CurrentUser.RefreshToken;
                    Expiration          = CurrentUser.TokenExpiration;
                    CurrentUser.SysInfo = GetSysInfo();
                    this.CurrentUser    = CurrentUser;


                    //UserClient UserClient = new UserClient(this);
                    //m_users = UserClient.All();

                    if (ApiToken != null)
                    {
                        RefreshThread = new Thread(new RefreshTokenWorker(this).Start);
                        RefreshThread.Start();
                        return(CurrentUser);
                    }
                    else
                    {
                        return(new User("api_token is null"));
                    }
                }
                else
                {
                    return(new User(httpResponse.Content));
                }
            }
            catch (Exception ee)
            {
                return(new User(ee.ToString()));
            }
        }
Пример #5
0
 public ClientBase(string AppHost)
     : base(AppHost)
 {
     m_TSCloud = this;
 }
 public RefreshTokenWorker(TSCloud client)
 {
     m_TSCloud    = client;
     m_expiration = client.ExpirationDateTime;
 }
Пример #7
0
        private List <Printer> index(int Page)
        {
            RestRequest request = new RestRequest(String.Format("{0}/printers", ApiPath), Method.GET);

            request.AddParameter("api_token", ApiToken);
            request.AddParameter("root", "true");
            if (Page != 0)
            {
                request.AddParameter("page", Page);
            }

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                Printers      printers     = JsonConvert.DeserializeObject <Printers>(httpResponse.Content, TSCloud.serializer_settings());

                int num_pages = printers.Pagination.NumPages;
                if (Page == 0)
                {
                    List <Printer> printer_list = new List <Printer>();

                    for (int i = 1; i <= num_pages; i++)
                    {
                        printer_list.AddRange(index(i));
                    }

                    return(printer_list);
                }
                else
                {
                    return(printers.Contents);
                }
            }
            catch
            {
                return(new List <Printer>());
            }
        }
Пример #8
0
        string GetApiHost()
        {
            RestClient = new RestClient(AppHost);
            RestRequest request = new RestRequest(String.Format("/api_host"), Method.GET);

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                if (httpResponse.StatusCode != HttpStatusCode.OK)
                {
                    return(AppHost);
                }

                Hash response = JsonConvert.DeserializeObject <Hash>(httpResponse.Content, TSCloud.serializer_settings());

                return(Convert.ToString(response["api_host"]));
            }
            catch
            {
                return(null);
            }
        }
Пример #9
0
        public Group Create(Group group)
        {
            if (!CheckExpiration())
            {
                throw new Exception("token refresh fails");
            }

            RestRequest request = new RestRequest(String.Format("{0}/groups", ApiPath), Method.POST);

            request.AddParameter("api_token", ApiToken);

            if (!String.IsNullOrEmpty(group.Name))
            {
                request.AddParameter("name", group.Name);
            }
            if (!String.IsNullOrEmpty(group.Description))
            {
                request.AddParameter("description", group.Description);
            }
            if (group.Acl != null)
            {
                request.AddParameter("acl", group.Acl.Stringify());
            }
            if (group.Users != null && group.Users.Count > 0)
            {
                request.AddParameter("user_ids", TSUtil.ConvertToIds(group.Users));
            }
            if (group.ParentId != 0)
            {
                request.AddParameter("parent_id", Convert.ToString(group.ParentId));
            }

            Group created_group = new Group();

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    created_group            = JsonConvert.DeserializeObject <Group>(httpResponse.Content, TSCloud.serializer_settings());
                    created_group.StatusCode = httpResponse.StatusCode;

                    return(created_group);
                }
                else
                {
                    created_group.StatusCode = httpResponse.StatusCode;
                    created_group.Message    = httpResponse.ErrorMessage;

                    return(created_group);
                }
            }
            catch (Exception ee)
            {
                return(new Group(Convert.ToString(ee)));
            }
        }
Пример #10
0
        public Queue GetQueue(int QueueId)
        {
            if (!CheckExpiration())
            {
                throw new Exception("token refresh fails");
            }

            RestRequest request = new RestRequest(String.Format("{0}/queues/{1}", ApiPath, QueueId), Method.GET);

            request.AddParameter("api_token", ApiToken);

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);

                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    Queue queue = JsonConvert.DeserializeObject <Queue>(httpResponse.Content, TSCloud.serializer_settings());

                    return(queue);
                }
                else
                {
                    return(new Queue(httpResponse.Content));
                }
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
Пример #11
0
        public Groups GetGroups(int Page)
        {
            if (!CheckExpiration())
            {
                throw new Exception("token refresh fails");
            }

            RestRequest request = new RestRequest(String.Format("{0}/groups", ApiPath), Method.GET);

            request.AddParameter("api_token", ApiToken);
            if (Page != 0)
            {
                request.AddParameter("page", Page);
            }

            Groups groups = new Groups();

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    groups            = JsonConvert.DeserializeObject <Groups>(httpResponse.Content, TSCloud.serializer_settings());
                    groups.StatusCode = httpResponse.StatusCode;

                    return(groups);
                }
                else
                {
                    groups.StatusCode = httpResponse.StatusCode;
                    groups.Message    = httpResponse.ErrorMessage;

                    return(groups);
                }
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
Пример #12
0
        public Group Get(int GroupID)
        {
            if (!CheckExpiration())
            {
                throw new Exception("token refresh fails");
            }

            RestRequest request = new RestRequest(String.Format("{0}/groups/{1}", ApiPath, Convert.ToString(GroupID)), Method.GET);

            request.AddParameter("api_token", ApiToken);

            Group group = new Group();

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    group            = JsonConvert.DeserializeObject <Group>(httpResponse.Content, TSCloud.serializer_settings());
                    group.StatusCode = httpResponse.StatusCode;

                    return(group);
                }
                else
                {
                    group.StatusCode = httpResponse.StatusCode;
                    group.Message    = httpResponse.ErrorMessage;

                    return(group);
                }
            }
            catch (Exception ee)
            {
                return(new Group(Convert.ToString(ee)));
            }
        }
Пример #13
0
        public User Register(string Email, string Name, string TeamName, string Password, string Phone, string Address, string Company)
        {
            RestRequest request = new RestRequest(String.Format("{0}/users/register", ApiPath), Method.POST);

            if (!String.IsNullOrEmpty(Name))
            {
                request.AddParameter("name", Name);
            }
            if (!String.IsNullOrEmpty(Email))
            {
                request.AddParameter("email", Email);
            }
            if (!String.IsNullOrEmpty(TeamName))
            {
                request.AddParameter("team_name", TeamName);
            }
            if (!String.IsNullOrEmpty(Password))
            {
                request.AddParameter("password", Password);
            }
            if (!String.IsNullOrEmpty(Phone))
            {
                request.AddParameter("phone", Phone);
            }
            if (!String.IsNullOrEmpty(Address))
            {
                request.AddParameter("address", Address);
            }
            if (!String.IsNullOrEmpty(Company))
            {
                request.AddParameter("company", Company);
            }

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    User user_response = JsonConvert.DeserializeObject <User>(httpResponse.Content, TSCloud.serializer_settings());
                    user_response.StatusCode = httpResponse.StatusCode;
                    user_response.SysInfo    = GetSysInfo();

                    return(user_response);
                }
                else
                {
                    User user_response = new User();
                    user_response.StatusCode = httpResponse.StatusCode;
                    user_response.Message    = httpResponse.ErrorMessage;

                    return(user_response);
                }
            }
            catch (Exception ee)
            {
                return(new User(Convert.ToString(ee)));
            }
        }
Пример #14
0
        public Newtonsoft.Json.Linq.JObject AuthenticateCenterCode(string UserID, string Password)
        {
            var request = new RestRequest(ApiPath + "/authenticates", Method.POST);

            request.AddParameter("email", UserID);
            request.AddParameter("password", Password);
            request.AddParameter("external", "centercode");
            request.RequestFormat = DataFormat.Json;

            Newtonsoft.Json.Linq.JObject response = new Newtonsoft.Json.Linq.JObject();
            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);

                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    return(JsonConvert.DeserializeObject <Newtonsoft.Json.Linq.JObject>(httpResponse.Content, TSCloud.serializer_settings()));
                }
                else
                {
                    response.Add("error", (int)httpResponse.StatusCode);
                }
            }
            catch (Exception ee)
            {
                response.Add("error", ee.ToString());
            }

            return(response);
        }
Пример #15
0
 public PrinterClient(TSCloud TSCloud)
     : base(TSCloud)
 {
 }
Пример #16
0
        public RefreshResponse CheckExpiration(DateTime expiration, string refresh_token)
        {
            if (expiration <= DateTime.Now && !string.IsNullOrEmpty(refresh_token))
            {
                try
                {
                    RestRequest request = new RestRequest(String.Format("{0}/authenticate/refresh", ApiPath), Method.PUT);
                    request.AddParameter("refresh_token", refresh_token);

                    IRestResponse httpResponse = RestClient.Execute(request);
                    if (httpResponse.StatusCode == HttpStatusCode.OK)
                    {
                        return(JsonConvert.DeserializeObject <RefreshResponse>(httpResponse.Content, TSCloud.serializer_settings()));
                    }
                }
                catch (Exception e)
                {
                    return(new RefreshResponse("token refresh fails - " + e.Message));
                }
                return(new RefreshResponse("token refresh fails"));
            }
            return(null);
        }
Пример #17
0
        public Printer Create(string PrinterName, object MetaJson)
        {
            if (!CheckExpiration())
            {
                throw new Exception("token refresh fails");
            }

            RestRequest request = CreateRequest(PrinterName, MetaJson);

            if (request == null)
            {
                return(new Printer("printer cannot be created without acl or printer name"));
            }

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                Printer       printer      = JsonConvert.DeserializeObject <Printer>(httpResponse.Content, TSCloud.serializer_settings());
                printer.StatusCode = httpResponse.StatusCode;
                printer.Message    = httpResponse.ErrorMessage;

                return(printer);
            }
            catch (Exception ee)
            {
                return(new Printer(ee.ToString()));
            }
        }
Пример #18
0
 public ClientBase()
     : base()
 {
     m_TSCloud = this;
 }
Пример #19
0
 public PrinterClient(TSCloud TSCloud, Hash Configuration)
     : this(TSCloud)
 {
     this.Configuration = Configuration;
 }
Пример #20
0
 public ClientBase(TSCloud _TSCloud)
 {
     m_TSCloud  = _TSCloud;
     RestClient = new RestClient(ApiHost);
 }
Пример #21
0
        public Queues GetQueues(int PrinterId, int Page)
        {
            if (!CheckExpiration())
            {
                throw new Exception("token refresh fails");
            }

            RestRequest request = new RestRequest(String.Format("{0}/queues", ApiPath), Method.GET);

            request.AddParameter("api_token", ApiToken);
            request.AddParameter("parent_id", PrinterId);
            if (Page != 0)
            {
                request.AddParameter("page", Page);
            }

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);

                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    Queues queues = JsonConvert.DeserializeObject <Queues>(httpResponse.Content, TSCloud.serializer_settings());

                    return(queues);
                }
                else
                {
                    return(new Queues(httpResponse.Content));
                }
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
Пример #22
0
        public Model Get(int ModelId)
        {
            if (!CheckExpiration())
            {
                throw new Exception("token refresh fails");
            }

            RestRequest request = new RestRequest(String.Format("{0}/folders/{1}", ApiPath, ModelId.ToString()), Method.GET);

            request.AddParameter("api_token", ApiToken);

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                Model         model        = JsonConvert.DeserializeObject <Model>(httpResponse.Content, TSCloud.serializer_settings());

                int owner_id = 0;
                owner_id      = Convert.ToInt32(model.Acl["owner"]);
                model.SysInfo = GetSysInfo();

                return(model);
            }
            catch (Exception ee)
            {
                return(new Model(ee.ToString()));
            }
        }
Пример #23
0
        public User Get(int UserID)
        {
            if (!CheckExpiration())
            {
                throw new Exception("token refresh fails");
            }
            RestRequest request = new RestRequest(String.Format("{0}/users/{1}", ApiPath, Convert.ToString(UserID)), Method.GET);

            request.AddParameter("api_token", ApiToken);

            try
            {
                IRestResponse httpResponse = RestClient.Execute(request);
                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    User user = JsonConvert.DeserializeObject <User>(httpResponse.Content, TSCloud.serializer_settings());
                    user.SysInfo    = GetSysInfo();
                    user.StatusCode = httpResponse.StatusCode;

                    return(user);
                }
                else
                {
                    User user = new User();
                    user.StatusCode = httpResponse.StatusCode;
                    user.Message    = httpResponse.ErrorMessage;

                    return(user);
                }
            }
            catch (Exception ee)
            {
                return(new User(Convert.ToString(ee)));
            }
        }