public async void SaveSignature()
        {
            var    Toast  = DependencyService.Get <IMessage>();
            Stream stream = _stream;

            byte[] byteArray = ConvertToByteArrayFromStream();
            string base64Img = Convert.ToBase64String(byteArray);
            string filePath  = _filePath;

            UserSignature usersignature = new UserSignature()
            {
                SalesOrderID  = RadomNumGenerator.RadomNumber(),
                ImageString   = base64Img,
                Name          = filePath,
                ImageLivePath = ""
            };

            var response = await new ApiData().PostData <UserSignature>("api/salesorder/PostSignatureImage", usersignature, true);

            if (response != null && response.status == "Success")
            {
                Toast.LongAlert("Signature Uploaded.");
                NavigationService.GoBackAsync();
            }
            else
            {
                response.data = usersignature;
                Toast.LongAlert("Error occured");
            }
            await App.Database.SaveSignatureAsync(response.data);

            // Save user signature in local storage
            // api will be called when submit sales order will be initiated
        }
Esempio n. 2
0
        private OAuthToken GenerateAccessToken(UserSignature user, TokenStore store)
        {
            try
            {
                Dictionary <string, string> requestParams = new Dictionary <string, string>();

                requestParams.Add(Constants.CLIENT_ID, ClientID);

                requestParams.Add(Constants.CLIENT_SECRET, ClientSecret);

                requestParams.Add(Constants.REDIRECT_URL, RedirectURL);

                requestParams.Add(Constants.GRANT_TYPE, Constants.GRANT_TYPE_AUTH_CODE);

                requestParams.Add(Constants.CODE, GrantToken);

                string response = GetResponseFromServer(requestParams);

                store.SaveToken(user, ParseResponse(response));
            }
            catch (System.Exception ex) when(!(ex is SDKException))
            {
                throw new SDKException(Constants.SAVE_TOKEN_ERROR, ex);
            }

            return(this);
        }
Esempio n. 3
0
        public static void RunSingleThreadWithMultiUser()
        {
            Logger logger = Logger.GetInstance(Logger.Levels.ALL, "/Users/Documents/GitLab/csharp_sdk_log.log");

            DataCenter.Environment env = USDataCenter.PRODUCTION;

            UserSignature user1 = new UserSignature("*****@*****.**");

            TokenStore tokenstore = new FileStore("/Users/Documents/GitLab/csharp_sdk_token.txt");

            Token token1 = new OAuthToken("1000.xxxxxx", "xxxxxx", "1000.xxxxxx.xxxxxx", TokenType.REFRESH, "https://www.zoho.com");

            string resourcePath = "/Users/Documents/GitLab/SampleApp/zohocrm-csharp-sdk-sample-application";

            DataCenter.Environment environment = USDataCenter.PRODUCTION;

            UserSignature user2 = new UserSignature("*****@*****.**");

            Token token2 = new OAuthToken("1000.xxxxxx", "xxxxxx", "1000.xxxxxx.xxxxxx", TokenType.REFRESH);

            SDKConfig config = new SDKConfig.Builder().SetAutoRefreshFields(true).Build();

            SDKInitializer.Initialize(user1, env, token1, tokenstore, config, resourcePath, logger);

            new SingleThread().GetRecords("Leads");

            SDKInitializer.SwitchUser(user2, environment, token2, config);

            new SingleThread().GetRecords("Quotes");
        }
Esempio n. 4
0
        public static void RunMultiThreadWithSingleUser()
        {
            Logger logger = Logger.GetInstance(Logger.Levels.ALL, "/Users/Documents/GitLab/csharp_sdk_log.log");

            DataCenter.Environment env = USDataCenter.PRODUCTION;

            UserSignature user1 = new UserSignature("*****@*****.**");

            //TokenStore tokenstore = new DBStore(null, null, null, null, null);

            TokenStore tokenstore = new FileStore("/Users/Documents/GitLab/csharp_sdk_token.txt");

            Token token1 = new OAuthToken("1000.xxxxxx", "xxxxxx", "1000.xxxxxx.xxxxxx", TokenType.REFRESH, "https://www.zoho.com");

            string resourcePath = "/Users/Documents/GitLab/SampleApp/zohocrm-csharp-sdk-sample-application";

            SDKConfig config = new SDKConfig.Builder().SetAutoRefreshFields(true).Build();

            SDKInitializer.Initialize(user1, env, token1, tokenstore, config, resourcePath, logger);

            MultiThread multiThread1 = new MultiThread();

            Thread thread1 = new Thread(() => multiThread1.GetRecords("Quotes"));

            thread1.Start();

            Thread thread2 = new Thread(() => multiThread1.GetContactRoles());

            thread2.Start();

            thread1.Join();

            thread2.Join();
        }
Esempio n. 5
0
        private OAuthToken RefreshAccessToken(UserSignature user, TokenStore store)
        {
            try
            {
                Dictionary <string, string> requestParams = new Dictionary <string, string>();

                requestParams.Add(Constants.CLIENT_ID, ClientId);

                requestParams.Add(Constants.CLIENT_SECRET, ClientSecret);

                requestParams.Add(Constants.GRANT_TYPE, Constants.REFRESH_TOKEN);

                requestParams.Add(Constants.REFRESH_TOKEN, RefreshToken);

                string response = GetResponseFromServer(requestParams);

                ParseResponse(response);

                if (string.IsNullOrEmpty(this.id) || string.IsNullOrWhiteSpace(this.id))
                {
                    GenerateId();
                }

                store.SaveToken(user, this);
            }
            catch (System.Exception ex) when(!(ex is SDKException))
            {
                throw new SDKException(Constants.SAVE_TOKEN_ERROR, ex);
            }

            return(this);
        }
Esempio n. 6
0
        public static void RunSingleThreadWithMultiUser()
        {
            Logger logger = new Logger.Builder()
                            .Level(Logger.Levels.ALL)
                            .FilePath("/Users/Documents/csharp_sdk_log.log")
                            .Build();

            DataCenter.Environment env = USDataCenter.PRODUCTION;

            UserSignature user1 = new UserSignature("*****@*****.**");

            TokenStore tokenstore = new FileStore("/Users/Documents/csharp_sdk_token.txt");

            Token token1 = new OAuthToken.Builder()
                           .ClientId("1.xxxxx")
                           .ClientSecret("xxxxx")
                           //.GrantToken("1.xxxx.xxxx")
                           .RefreshToken("1.xxxx.xxx")
                           .RedirectURL("https://www.zoho.com")
                           .Build();

            string resourcePath = "/Users/Documents";

            DataCenter.Environment environment = USDataCenter.PRODUCTION;

            UserSignature user2 = new UserSignature("*****@*****.**");

            Token token2 = new OAuthToken.Builder()
                           .ClientId("1.xxxx")
                           .ClientSecret("xxxx")
                           //.GrantToken("1.xxxx.xxxx")
                           .RefreshToken("1.xxx.xxx")
                           .RedirectURL("https://www.zoho.com")
                           .Build();

            SDKConfig config = new SDKConfig.Builder().AutoRefreshFields(true).Build();

            new SDKInitializer.Builder()
            .User(user1)
            .Environment(env)
            .Token(token1)
            .Store(tokenstore)
            .SDKConfig(config)
            .ResourcePath(resourcePath)
            .Logger(logger)
            .Initialize();

            new SingleThread().GetRecords("Leads");

            new SDKInitializer.Builder()
            .User(user2)
            .Environment(environment)
            .Token(token2)
            .SDKConfig(config).SwitchUser();

            new SingleThread().GetRecords("Quotes");
        }
Esempio n. 7
0
        public static void RunMultiThreadWithSingleUser()
        {
            Logger logger = new Logger.Builder()
                            .Level(Logger.Levels.ALL)
                            .FilePath("/Users/Documents/csharp_sdk_log.log")
                            .Build();

            DataCenter.Environment env = USDataCenter.PRODUCTION;

            UserSignature user1 = new UserSignature("*****@*****.**");

            //TokenStore tokenstore = new DBStore.Builder()
            //    .Host("host")
            //    .TableName("tablename")
            //    .Password("password")
            //    .Build();

            TokenStore tokenstore = new FileStore("/Users/Documents/csharp_sdk_token.txt");

            Token token1 = new OAuthToken.Builder()
                           .ClientId("1.xxxx")
                           .ClientSecret("xxxx")
                           //.GrantToken("1.xxxx.xxxx")
                           .RefreshToken("1.xxxx.xxxx")
                           .RedirectURL("https://www.zoho.com")
                           .Build();

            string resourcePath = "/Users/Documents";

            SDKConfig config = new SDKConfig.Builder()
                               .AutoRefreshFields(true)
                               .Build();

            new SDKInitializer.Builder()
            .User(user1)
            .Environment(env)
            .Token(token1)
            .Store(tokenstore)
            .SDKConfig(config)
            .ResourcePath(resourcePath)
            .Logger(logger)
            .Initialize();

            MultiThread multiThread1 = new MultiThread();

            Thread thread1 = new Thread(() => multiThread1.GetRecords("Quotes"));

            thread1.Start();

            Thread thread2 = new Thread(() => multiThread1.GetContactRoles());

            thread2.Start();

            thread1.Join();

            thread2.Join();
        }
Esempio n. 8
0
        public Token GetToken(UserSignature user, Token token)
        {
            try
            {
                using (MySqlConnection connection = new MySqlConnection(this.connectionString))
                {
                    connection.Open();

                    if (token is OAuthToken)
                    {
                        OAuthToken oauthToken = (OAuthToken)token;

                        string query = ConstructDBQuery(user.Email, oauthToken, false);

                        using (MySqlCommand statement = new MySqlCommand(query, connection))
                        {
                            using (MySqlDataReader result = statement.ExecuteReader())
                            {
                                while (result.Read())
                                {
                                    string grantToken = result[Constants.GRANT_TOKEN] != null && !result[Constants.GRANT_TOKEN].ToString().Equals(Constants.NULL_VALUE, System.StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(result[Constants.GRANT_TOKEN].ToString()) ? result[Constants.GRANT_TOKEN].ToString() : null;

                                    string redirectURL = result[Constants.REDIRECT_URL] != null && !result[Constants.REDIRECT_URL].ToString().Equals(Constants.NULL_VALUE, System.StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(result[Constants.REDIRECT_URL].ToString()) ? result[Constants.REDIRECT_URL].ToString() : null;

                                    oauthToken.ClientId = result[Constants.CLIENT_ID].ToString();

                                    oauthToken.ClientSecret = result[Constants.CLIENT_SECRET].ToString();

                                    oauthToken.RefreshToken = result[Constants.REFRESH_TOKEN].ToString();

                                    oauthToken.Id = result[Constants.ID].ToString();

                                    oauthToken.GrantToken = grantToken;

                                    oauthToken.UserMail = result[Constants.USER_MAIL].ToString();

                                    oauthToken.AccessToken = result[Constants.ACCESS_TOKEN].ToString();

                                    oauthToken.ExpiresIn = result[Constants.EXPIRY_TIME].ToString();

                                    oauthToken.RedirectURL = redirectURL;

                                    return(oauthToken);
                                }
                            }
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                throw new SDKException(Constants.TOKEN_STORE, Constants.GET_TOKEN_DB_ERROR, ex);
            }

            return(null);
        }
Esempio n. 9
0
        public MultiThread(UserSignature user, DataCenter.Environment environment, Token token, string moduleAPIName)
        {
            this.environment = environment;

            this.user = user;

            this.token = token;

            this.moduleAPIName = moduleAPIName;
        }
Esempio n. 10
0
        private Comment(Mediator mediator, Node node, string body)
        {
            Id        = Guid.NewGuid().ToString();
            Node      = new NodeFootPrint(node);
            Signature = new UserSignature(mediator.SessionUser);
            Body      = body;

            // Register comment on the node
            node.RegisterSessionComment(this);
        }
Esempio n. 11
0
        public void Authenticate(APIHTTPConnector urlConnection)
        {
            lock (this)
            {
                try
                {
                    Initializer initializer = Initializer.GetInitializer();

                    TokenStore store = initializer.Store;

                    UserSignature user = initializer.User;

                    OAuthToken oauthToken = null;

                    if (this.accessToken == null)
                    {
                        if (this.id != null)
                        {
                            oauthToken = (OAuthToken)store.GetTokenById(this.id, this);
                        }
                        else
                        {
                            oauthToken = (OAuthToken)store.GetToken(user, this);
                        }
                    }
                    else
                    {
                        oauthToken = this;
                    }

                    string token = "";

                    if (oauthToken == null)//first time
                    {
                        token = this.refreshToken != null?this.RefreshAccessToken(user, store).AccessToken : this.GenerateAccessToken(user, store).AccessToken;
                    }
                    else if (oauthToken.ExpiresIn != null && GetExpiryLapseInMillis(oauthToken.ExpiresIn) < 5L)//access token will expire in next 5 seconds or less
                    {
                        SDKLogger.LogInfo(Constants.REFRESH_TOKEN_MESSAGE);

                        token = oauthToken.RefreshAccessToken(user, store).AccessToken;
                    }
                    else
                    {
                        token = oauthToken.AccessToken;
                    }

                    urlConnection.AddHeader(Constants.AUTHORIZATION, Constants.OAUTH_HEADER_PREFIX + token);
                }
                catch (System.Exception ex) when(!(ex is SDKException))
                {
                    throw new SDKException(ex);
                }
            }
        }
Esempio n. 12
0
        public Token GetToken(UserSignature user, Token token)
        {
            try
            {
                string[] allContents = File.ReadAllLines(this.filePath);

                if (allContents == null || allContents.Length < 1)
                {
                    return(null);
                }

                if (token is OAuthToken)
                {
                    OAuthToken oauthToken = (OAuthToken)token;

                    foreach (string line in allContents)
                    {
                        string[] nextRecord = line.Split(',');

                        if (CheckTokenExists(user.Email, oauthToken, nextRecord))
                        {
                            string grantToken = !string.IsNullOrEmpty(nextRecord[6]) ? nextRecord[6] : null;

                            string redirectURL = !string.IsNullOrEmpty(nextRecord[8]) ? nextRecord[8] : null;

                            oauthToken.Id = nextRecord[0];

                            oauthToken.UserMail = nextRecord[1];

                            oauthToken.ClientId = nextRecord[2];

                            oauthToken.ClientSecret = nextRecord[3];

                            oauthToken.RefreshToken = nextRecord[4];

                            oauthToken.AccessToken = nextRecord[5];

                            oauthToken.GrantToken = grantToken;

                            oauthToken.ExpiresIn = nextRecord[7];

                            oauthToken.RedirectURL = redirectURL;

                            return(oauthToken);
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                throw new SDKException(Constants.TOKEN_STORE, Constants.GET_TOKEN_FILE_ERROR, ex);
            }

            return(null);
        }
Esempio n. 13
0
        private Attachment(Mediator mediator, Node node, string name, string extension, byte[] filebytes)
        {
            Id        = Guid.NewGuid().ToString();
            Name      = name;
            Extension = extension;
            Signature = new UserSignature(mediator.SessionUser);
            OwnerNode = new NodeFootPrint(node);
            Uri       = "https:\\iamfara.com";

            node.RegisterSessionAttachment(this);
        }
Esempio n. 14
0
        public void SaveToken(UserSignature user, Token token)
        {
            try
            {
                List <string> data = null;

                if (token is OAuthToken)
                {
                    OAuthToken oauthToken = (OAuthToken)token;

                    oauthToken.UserMail = user.Email;

                    DeleteToken(oauthToken);

                    data = new List <string>
                    {
                        oauthToken.Id,

                        user.Email,

                        oauthToken.ClientId,

                        oauthToken.ClientSecret,

                        oauthToken.RefreshToken,

                        oauthToken.AccessToken,

                        oauthToken.GrantToken,

                        oauthToken.ExpiresIn,

                        oauthToken.RedirectURL
                    };
                }

                using (FileStream outFile = new FileStream(this.filePath, FileMode.Append))
                {
                    using (StreamWriter writer = new StreamWriter(outFile))
                    {
                        writer.WriteLine(string.Join(",", data));

                        writer.Close();
                    }

                    outFile.Close();
                }
            }
            catch (System.Exception ex) when(ex is UnauthorizedAccessException || ex is DirectoryNotFoundException)
            {
                throw new SDKException(Constants.TOKEN_STORE, Constants.SAVE_TOKEN_FILE_ERROR, ex);
            }
        }
        public async Task <UserSignature> SaveSignatureAsync(UserSignature sign)
        {
            var existingsign = await database.Table <UserSignature>().Where(x => x.SalesOrderID == sign.SalesOrderID).FirstOrDefaultAsync();

            if (existingsign != null)
            {
                await database.UpdateAsync(sign);
            }
            else
            {
                await database.InsertAsync(sign);
            }
            return(sign);
        }
Esempio n. 16
0
        public async Task <bool> UpdateUserSignatureInfo(CreateUserSignatureDto userSignatureDto)
        {
            using (var scope = _dbContextScopeFactory.Create())
            {
                var userSignature = UserSignature.CreateUserSignature(userSignatureDto.SignServerId,
                                                                      userSignatureDto.UserId, userSignatureDto.Title,
                                                                      userSignatureDto.CertificateBin, userSignatureDto.SignImage,
                                                                      userSignatureDto.SignImageType, userSignatureDto.StampImage, userSignatureDto.StampImageType,
                                                                      userSignatureDto.Account, userSignatureDto.Password);
                _signatureRepository.Add(userSignature);
                await scope.SaveChangesAsync();

                return(true);
            }
        }
Esempio n. 17
0
        public void SaveToken(UserSignature user, Token token)
        {
            try
            {
                using (MySqlConnection connection = new MySqlConnection(this.connectionString))
                {
                    if (token is OAuthToken)
                    {
                        OAuthToken oauthToken = (OAuthToken)token;

                        oauthToken.UserMail = user.Email;

                        DeleteToken(oauthToken);

                        string query = "insert into " + this.tableName + "(id,user_mail,client_id,client_secret,refresh_token,access_token,grant_token,expiry_time,redirect_url) values (@id, @user_mail, @client_id, @client_secret, @refresh_token, @access_token, @grant_token, @expiry_time, @redirect_url);";

                        connection.Open();

                        using (MySqlCommand statement = new MySqlCommand(query, connection))
                        {
                            statement.Parameters.AddWithValue("@id", oauthToken.Id);

                            statement.Parameters.AddWithValue("@user_mail", user.Email);

                            statement.Parameters.AddWithValue("@client_id", oauthToken.ClientId);

                            statement.Parameters.AddWithValue("@client_secret", oauthToken.ClientSecret);

                            statement.Parameters.AddWithValue("@refresh_token", oauthToken.RefreshToken);

                            statement.Parameters.AddWithValue("@access_token", oauthToken.AccessToken);

                            statement.Parameters.AddWithValue("@grant_token", oauthToken.GrantToken);

                            statement.Parameters.AddWithValue("@expiry_time", oauthToken.ExpiresIn);

                            statement.Parameters.AddWithValue("@redirect_url", oauthToken.RedirectURL);

                            statement.ExecuteNonQuery();
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                throw new SDKException(Constants.TOKEN_STORE, Constants.SAVE_TOKEN_DB_ERROR, ex);
            }
        }
Esempio n. 18
0
        public Token GetToken(UserSignature user, Token token)
        {
            try
            {
                using (MySqlConnection connection = new MySqlConnection(this.connectionString))
                {
                    connection.Open();

                    if (token is OAuthToken)
                    {
                        OAuthToken oauthToken = (OAuthToken)token;

                        string query = ConstructDBQuery(user.Email, oauthToken, false);

                        using (MySqlCommand statement = new MySqlCommand(query, connection))
                        {
                            using (MySqlDataReader result = statement.ExecuteReader())
                            {
                                while (result.Read())
                                {
                                    oauthToken.AccessToken = result[Constants.ACCESS_TOKEN].ToString();

                                    oauthToken.ExpiresIn = result[Constants.EXPIRY_TIME].ToString();

                                    oauthToken.RefreshToken = result[Constants.REFRESH_TOKEN].ToString();

                                    return(oauthToken);
                                }
                            }
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                throw new SDKException(Constants.TOKEN_STORE, Constants.GET_TOKEN_DB_ERROR, ex);
            }

            return(null);
        }
Esempio n. 19
0
        public Token GetToken(UserSignature user, Token token)
        {
            try
            {
                string[] allContents = File.ReadAllLines(this.filePath);

                if (allContents == null || allContents.Length < 1)
                {
                    return(null);
                }

                if (token is OAuthToken)
                {
                    OAuthToken oauthToken = (OAuthToken)token;

                    foreach (string line in allContents)
                    {
                        string[] nextRecord = line.Split(',');

                        if (CheckTokenExit(user.Email, oauthToken, nextRecord))
                        {
                            oauthToken.AccessToken = nextRecord[3];

                            oauthToken.ExpiresIn = nextRecord[5];

                            oauthToken.RefreshToken = nextRecord[2];

                            return(oauthToken);
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                throw new SDKException(Constants.TOKEN_STORE, Constants.GET_TOKEN_FILE_ERROR, ex);
            }

            return(null);
        }
Esempio n. 20
0
        public static void SDKInitialize()
        {
            /*
             * Create an instance of Logger Class that takes two parameters
             * 1 -> Level of the log messages to be logged. Can be configured by typing Levels "." and choose any level from the list displayed.
             * 2 -> Absolute file path, where messages need to be logged.
             */
            Logger logger = Logger.GetInstance(Logger.Levels.ALL, "/Users/Documents/GitLab/csharp_sdk_log.log");

            //Create an UserSignature instance that takes user Email as parameter
            UserSignature user = new UserSignature("*****@*****.**");

            /*
             * Configure the environment
             * which is of the pattern Domain.Environment
             * Available Domains: USDataCenter, EUDataCenter, INDataCenter, CNDataCenter, AUDataCenter
             * Available Environments: PRODUCTION, DEVELOPER, SANDBOX
             */
            Environment environment = USDataCenter.PRODUCTION;

            /*
             * Create a Token instance
             * 1 -> OAuth client id.
             * 2 -> OAuth client secret.
             * 3 -> OAuth redirect URL.
             * 4 -> REFRESH/GRANT token.
             * 5 -> token type.
             */
            //Token token = new OAuthToken("1000.xxxxx", "xxxxxx", "1000.xxxxxx.xxxxxx", TokenType.REFRESH, "https://www.zoho.com");

            //Token token = new OAuthToken("1000.xxxx", "xxxxxx", "1000.xxxxxx.xxxxxx", TokenType.GRANT, "https://www.zoho.com");

            Token token = new OAuthToken("1000.xxxxxx", "xxxxxx", "1000.xxxxxx.xxxxxx", TokenType.GRANT, "https://www.zoho.com");

            /*
             * Create an instance of TokenStore.
             * 1 -> DataBase host name. Default "jdbc:mysql://localhost"
             * 2 -> DataBase name. Default "zohooauth"
             * 3 -> DataBase user name. Default "root"
             * 4 -> DataBase password. Default ""
             * 5 -> DataBase port number. Default "3306"
             */
            //TokenStore tokenstore = new DBStore();

            TokenStore tokenstore = new DBStore(null, null, null, null, null);

            //TokenStore tokenstore = new FileStore("/Users/Documents/GitLab/csharp_sdk_token.txt");

            /*
             * autoRefreshFields
             * if true - all the modules' fields will be auto-refreshed in the background, every    hour.
             * if false - the fields will not be auto-refreshed in the background. The user can manually delete the file(s) or refresh the fields using methods from ModuleFieldsHandler(com.zoho.crm.api.util.ModuleFieldsHandler)
             *
             * pickListValidation
             * if true - value for any picklist field will be validated with the available values.
             * if false - value for any picklist field will not be validated, resulting in creation of a new value.
             */
            SDKConfig config = new SDKConfig.Builder().SetAutoRefreshFields(true).SetPickListValidation(false).Build();

            string resourcePath = "/Users/Documents/GitLab/SampleApp/zohocrm-csharp-sdk-sample-application";

            /**
             * Create an instance of RequestProxy class that takes the following parameters
             * 1 -> Host
             * 2 -> Port Number
             * 3 -> User Name
             * 4 -> Password
             * 5 -> User Domain
             */
            //RequestProxy requestProxy = new RequestProxy("http://171.0.0.1", 3128, "", "", "");

            //RequestProxy requestProxy = new RequestProxy("http://171.0.0.1", 3128, "", null);

            /*
             * Call static initialize method of Initializer class that takes the arguments
             * 1 -> UserSignature instance
             * 2 -> Environment instance
             * 3 -> Token instance
             * 4 -> TokenStore instance
             * 5 -> SDKConnfig
             * 6 -> The path containing the absolute directory path to store user specific JSON files containing module fields information.
             * 7 -> Logger instance
             * 8 -> RequestProxy instance
             */

            // The following are the available initialize methods

            //SDKInitializer.Initialize(user, environment, token, tokenstore, config, resourcePath);

            SDKInitializer.Initialize(user, environment, token, tokenstore, config, resourcePath, logger);

            //SDKInitializer.Initialize(user, environment, token, tokenstore, config, resourcePath, requestProxy);

            //SDKInitializer.Initialize(user, environment, token, tokenstore, config, resourcePath, logger, requestProxy);

            //foreach (Token token1 in ((DBStore)tokenstore).GetTokens())
            //{
            //    OAuthToken authToken = (OAuthToken)token1;

            //    Console.WriteLine(authToken.AccessToken);

            //    Console.WriteLine(authToken.RefreshToken);

            //    Console.WriteLine(authToken.ExpiresIn);

            //    Console.WriteLine(authToken.GrantToken);
            //}
        }
Esempio n. 21
0
 /// <summary>
 /// Set the save date on the tracker
 /// </summary>
 internal void StopTracking()
 {
     RemoveRedundantChanges();
     Signature = new UserSignature(this.user);
 }
Esempio n. 22
0
        public async Task <Guid> CreateUserAsync(CreateUserDto createUserDto)
        {
            using (var scope = _dbContextScopeFactory.Create())
            {
                // create user
                var createUser = _userRepository.GetUserByEmail(createUserDto.Email.ToLower());
                if (createUser == null)
                {
                    createUser = User.CreateUser(createUserDto.UserName, createUserDto.FullName,
                                                 createUserDto.Gender, createUserDto.Email, createUserDto.Mobile,
                                                 createUserDto.Address, createUserDto.HomePhone, createUserDto.Ext,
                                                 createUserDto.BirthDate, createUserDto.UserCode, null,
                                                 createUserDto.Language, createUserDto.UserIndex);
                    _userRepository.Add(createUser);
                }
                else
                {
                    createUser.Update(createUserDto.FullName,
                                      createUserDto.Gender, createUserDto.Email, createUserDto.Mobile,
                                      createUserDto.Address, createUserDto.HomePhone, createUserDto.Ext,
                                      createUserDto.BirthDate, createUserDto.UserCode, null,
                                      createUserDto.Language, createUserDto.UserIndex);
                }

                // create user depart
                foreach (var deptId in createUserDto.Departments)
                {
                    var createUserDept = _userDepartmentRepository
                                         .Get(w => w.UserID == createUser.Id && w.DeptID == deptId)
                                         .FirstOrDefault();
                    if (createUserDept == null)
                    {
                        createUserDept = UserDepartment.CreateUserDepartment(
                            createUser.Id, deptId, createUserDto.JobDescription,
                            createUserDto.OrderNumber, createUserDto.JobTitleId,
                            createUserDto.IsManager);
                        _userDepartmentRepository.Add(createUserDept);
                    }
                    else
                    {
                        createUserDept.Update(createUserDto.JobDescription,
                                              createUserDto.OrderNumber, createUserDto.JobTitleId,
                                              createUserDto.IsManager);
                    }
                }

                // create signature
                if (createUserDto.UserSignatures != null && createUserDto.UserSignatures.Count > 0)
                {
                    foreach (var signature in createUserDto.UserSignatures)
                    {
                        var createSignature = UserSignature.CreateUserSignature(
                            signature.SignServerId, createUser.Id,
                            signature.Title, signature.CertificateBin,
                            signature.SignImage, signature.SignImageType,
                            signature.StampImage, signature.StampImageType,
                            signature.Account, signature.Password);
                        _signatureRepository.Add(createSignature);
                    }
                }

                // create notification setting
                if (createUserDto.NotificationSettings != null && createUserDto.NotificationSettings.Count > 0)
                {
                    foreach (var notifySetting in createUserDto.NotificationSettings)
                    {
                        var createMotifySetting = NotificationSetting.Create(createUser.Id,
                                                                             notifySetting.NotificationTypeId, notifySetting.IsUrgent);
                        _notificationSettingRepository.Add(createMotifySetting);
                    }
                }

                await scope.SaveChangesAsync();

                return(createUser.Id);
            }
        }
Esempio n. 23
0
        public static void SDKInitialize()
        {
            /*
             * Create an instance of Logger Class that takes two parameters
             * 1 -> Level of the log messages to be logged. Can be configured by typing Levels "." and choose any level from the list displayed.
             * 2 -> Absolute file path, where messages need to be logged.
             */
            Logger logger = new Logger.Builder()
                            .Level(Logger.Levels.ALL)
                            .FilePath("/Users/Documents/csharp_sdk_log.log")
                            .Build();

            //Create an UserSignature instance that takes user Email as parameter
            UserSignature user = new UserSignature("*****@*****.**");

            /*
             * Configure the environment
             * which is of the pattern Domain.Environment
             * Available Domains: USDataCenter, EUDataCenter, INDataCenter, CNDataCenter, AUDataCenter
             * Available Environments: PRODUCTION, DEVELOPER, SANDBOX
             */
            Environment environment = USDataCenter.PRODUCTION;

            /*
             * Create a Token instance
             * 1 -> OAuth client id.
             * 2 -> OAuth client secret.
             * 3 -> OAuth redirect URL.
             * 4 -> REFRESH/GRANT token.
             * 5 -> token type.
             */
            Token token = new OAuthToken.Builder()
                          //.Id("csharp_abc_us_prd_aec1")
                          .ClientId("ClientId")
                          .ClientSecret("ClientSecret")
                          .GrantToken("GrantToken")
                          .RefreshToken("RefreshToken")
                          .RedirectURL("RedirectURL")
                          .AccessToken("AccessToken")
                          .Build();

            /*
             * Create an instance of TokenStore.
             * 1 -> DataBase host name. Default "localhost"
             * 2 -> DataBase name. Default "zohooauth"
             * 3 -> DataBase user name. Default "root"
             * 4 -> DataBase password. Default ""
             * 5 -> DataBase port number. Default "3306"
             */
            //TokenStore tokenstore = new DBStore.Builder().Build();

            //    TokenStore tokenstore = new DBStore.Builder()
            //      .Host("Host")
            //      .DatabaseName("DatabaseName")
            //      .TableName("TableName")
            //      .UserName("UserName")
            //      .Password("Password")
            //      .PortNumber("PortNumber")
            //      .Build();

            TokenStore tokenstore = new FileStore("/Users/Documents/csharp_sdk_token.txt");

            /*
             * autoRefreshFields
             * if true - all the modules' fields will be auto-refreshed in the background, every    hour.
             * if false - the fields will not be auto-refreshed in the background. The user can manually delete the file(s) or refresh the fields using methods from ModuleFieldsHandler(com.zoho.crm.api.util.ModuleFieldsHandler)
             *
             * pickListValidation
             * if true - value for any picklist field will be validated with the available values.
             * if false - value for any picklist field will not be validated, resulting in creation of a new value.
             */
            SDKConfig config = new SDKConfig.Builder()
                               .AutoRefreshFields(true)
                               .PickListValidation(false)
                               .Build();

            string resourcePath = "/Users/Documents";

            /**
             * Create an instance of RequestProxy class that takes the following parameters
             * 1 -> Host
             * 2 -> Port Number
             * 3 -> User Name
             * 4 -> Password
             * 5 -> User Domain
             */
            RequestProxy requestProxy = new RequestProxy.Builder()
                                        .Host("Host")
                                        .Port(Port)
                                        .User("User")
                                        .Password("")
                                        .UserDomain("UserDomain")
                                        .Build();

            /*
             * Call static initialize method of Initializer class that takes the arguments
             * 1 -> UserSignature instance
             * 2 -> Environment instance
             * 3 -> Token instance
             * 4 -> TokenStore instance
             * 5 -> SDKConnfig
             * 6 -> The path containing the absolute directory path to store user specific JSON files containing module fields information.
             * 7 -> Logger instance
             * 8 -> RequestProxy instance
             */
            // The following are the available initialize methods
            new SDKInitializer.Builder()
            .User(user)
            .Environment(environment)
            .Token(token)
            .Store(tokenstore)
            .SDKConfig(config)
            .ResourcePath(resourcePath)
            .Logger(logger)
            .Initialize();

            // foreach (Token token1 in ((DBStore)tokenstore).GetTokens())
            // {
            //    OAuthToken authToken = (OAuthToken)token1;

            //    Console.WriteLine(JsonConvert.SerializeObject(authToken));
            // }
        }
Esempio n. 24
0
        public async Task <bool> UpdateUserAsync(UpdateUserDto updateUserDto)
        {
            using (var scope = _dbContextScopeFactory.Create())
            {
                // update user
                var createUser = await _userRepository.FindAsync(
                    f => f.Id == updateUserDto.UserId);

                if (createUser == null)
                {
                    throw new Exception("User not found !");
                }
                else
                {
                    createUser.Update(updateUserDto.FullName,
                                      updateUserDto.Gender, updateUserDto.Email, updateUserDto.Mobile,
                                      updateUserDto.Address, updateUserDto.HomePhone, updateUserDto.Ext,
                                      updateUserDto.BirthDate, updateUserDto.UserCode, null,
                                      updateUserDto.Language, updateUserDto.UserIndex);
                }

                // remove
                if (updateUserDto.RemovedDepartments != null)
                {
                    foreach (var removeDeptId in updateUserDto.RemovedDepartments)
                    {
                        var delDept = _userDepartmentRepository.Get
                                          (w => w.UserID == updateUserDto.UserId && w.DeptID == removeDeptId)
                                      .FirstOrDefault();
                        _userDepartmentRepository.Delete(delDept);
                    }
                }

                if (updateUserDto.AddedDepartments != null)
                {
                    // create user depart
                    foreach (var deptId in updateUserDto.AddedDepartments)
                    {
                        var createUserDept = _userDepartmentRepository
                                             .Get(w => w.UserID == createUser.Id && w.DeptID == deptId)
                                             .FirstOrDefault();
                        if (createUserDept == null)
                        {
                            createUserDept = UserDepartment.CreateUserDepartment(
                                createUser.Id, deptId, updateUserDto.JobDescription,
                                updateUserDto.OrderNumber, updateUserDto.JobTitleId,
                                updateUserDto.IsManager);
                            _userDepartmentRepository.Add(createUserDept);
                        }
                        else
                        {
                            createUserDept.Update(updateUserDto.JobDescription,
                                                  updateUserDto.OrderNumber, updateUserDto.JobTitleId,
                                                  updateUserDto.IsManager);
                        }
                    }
                }

                if (updateUserDto.RemovedUserSignatures != null && updateUserDto.RemovedUserSignatures.Count > 0)
                {
                    foreach (var removeSignatureId in updateUserDto.RemovedUserSignatures)
                    {
                        var removeSign = await _signatureRepository.FindAsync(f => f.Id == removeSignatureId);

                        _signatureRepository.Delete(removeSign);
                    }
                }

                // create signature
                if (updateUserDto.AddedUserSignatures != null && updateUserDto.AddedUserSignatures.Count > 0)
                {
                    foreach (var signature in updateUserDto.AddedUserSignatures)
                    {
                        var createSignature = UserSignature.CreateUserSignature(
                            signature.SignServerId, createUser.Id,
                            signature.Title, signature.CertificateBin,
                            signature.SignImage, signature.SignImageType,
                            signature.StampImage, signature.StampImageType,
                            signature.Account, signature.Password);
                        _signatureRepository.Add(createSignature);
                    }
                }

                // create notification setting
                //if (updateUserDto.NotificationSettings != null && updateUserDto.NotificationSettings.Count > 0)
                //{
                //    foreach (var notifySetting in updateUserDto.NotificationSettings)
                //    {
                //        var createMotifySetting = NotificationSetting.Create(createUser.Id,
                //            notifySetting.NotificationTypeId, notifySetting.IsUrgent);
                //        _notificationSettingRepository.Add(createMotifySetting);
                //    }
                //}

                await scope.SaveChangesAsync();

                return(true);
            }
        }
 public SignaturePageViewModel(INavigationService navigationService) : base(navigationService)
 {
     _navigation    = navigationService;
     _userSignature = new UserSignature();
 }