예제 #1
0
파일: TSVParser.cs 프로젝트: Guillemsc/Fast
        public static string Compose(Data.GridData data)
        {
            string ret = "";

            if (data != null)
            {
                for (int i = 0; i < data.RowsCount; ++i)
                {
                    List <object> row_data = data.GetRowData(i);

                    for (int y = 0; y < row_data.Count; ++y)
                    {
                        object column_object = row_data[y];

                        ret += column_object.ToString() + "\t";
                    }

                    ret += "\n";
                }
            }
            else
            {
                Debug.LogError("[Fast.Parsers.TSVParser] GridData is null and cannot be parsed");
            }

            return(ret);
        }
예제 #2
0
파일: TSVParser.cs 프로젝트: Guillemsc/Fast
        public static Data.GridData Parse(List <string> lines)
        {
            Data.GridData ret = null;

            List <List <object> > data = new List <List <object> >();

            for (int i = 0; i < lines.Count; ++i)
            {
                string curr_line = lines[i];

                List <object> column_data = new List <object>();

                List <string> sliced_data = curr_line.Split('\t').ToList();

                for (int y = 0; y < sliced_data.Count; ++y)
                {
                    string final_str = sliced_data[y].Replace("\t", "");

                    column_data.Add(final_str);
                }

                data.Add(column_data);
            }

            ret = new Data.GridData(data);

            return(ret);
        }
예제 #3
0
        protected override async Task RunRequestInternal()
        {
            // For Google Drive Api documentation visit https://developers.google.com/sheets/api/quickstart/dotnet

            string[] scopes = { SheetsService.Scope.SpreadsheetsReadonly };

            ClientSecrets secrets = new ClientSecrets();

            secrets.ClientId     = client_id;
            secrets.ClientSecret = client_secret;

            Task <UserCredential> user_credential_task        = GoogleWebAuthorizationBroker.AuthorizeAsync(secrets, scopes, "user", CancellationToken.None);
            AwaitResult           user_credential_task_result = await AwaitUtils.AwaitTask(user_credential_task);

            if (user_credential_task_result.HasErrors)
            {
                has_errors   = true;
                error_result = new DownloadSpreadsheetErrorObject(
                    user_credential_task_result.Exception.Message, user_credential_task_result.Exception);

                return;
            }

            UserCredential credential = user_credential_task.Result;

            if (credential == null)
            {
                has_errors   = true;
                error_result = new DownloadSpreadsheetErrorObject("Credentials are null", null);

                return;
            }

            BaseClientService.Initializer service_in = new BaseClientService.Initializer();
            service_in.HttpClientInitializer = credential;
            service_in.ApplicationName       = "Download spreadhseet GoogleDrive";

            SheetsService service = new SheetsService(service_in);

            SpreadsheetsResource.ValuesResource.GetRequest get_values_request =
                service.Spreadsheets.Values.Get(document_id, document_data_range);

            Task <Google.Apis.Sheets.v4.Data.ValueRange> get_values_task = get_values_request.ExecuteAsync();
            AwaitResult get_values_task_result = await AwaitUtils.AwaitTask(get_values_task);

            if (get_values_task_result.HasErrors)
            {
                has_errors   = true;
                error_result = new DownloadSpreadsheetErrorObject(
                    get_values_task_result.Exception.Message, get_values_task_result.Exception);

                return;
            }

            Google.Apis.Sheets.v4.Data.ValueRange values = get_values_task.Result;

            if (values == null)
            {
                has_errors   = true;
                error_result = new DownloadSpreadsheetErrorObject("Values are null", null);

                return;
            }

            IList <IList <object> > values_data = values.Values;

            List <List <object> > data = new List <List <object> >();

            List <IList <object> > values_data_list = values_data.ToList();

            for (int i = 0; i < values_data_list.Count; ++i)
            {
                List <object> data_row = values_data_list[i].ToList();

                data.Add(data_row);
            }

            Data.GridData grid_data = new Data.GridData(data);

            success_result = new DownloadSpreadsheetSuccessObject(grid_data);
        }
예제 #4
0
 public DownloadSpreadsheetSuccessObject(Data.GridData data)
 {
     this.data = data;
 }
예제 #5
0
        public void ExecuteGetQuery(SQLQuery sql_query, Action <Data.GridData> on_success = null, Action <SQLError> on_fail = null)
        {
            if (connection != null && sql_query != null)
            {
                if (connected)
                {
                    MySqlCommand adapter = new MySqlCommand(sql_query.Query, connection);

                    foreach (KeyValuePair <string, object> entry in sql_query.Parameters)
                    {
                        adapter.Parameters.AddWithValue(entry.Key, entry.Value);
                    }

                    adapter.ExecuteReaderAsync().ContinueWith(delegate(Task <DbDataReader> task)
                    {
                        string error_msg    = "";
                        Exception exception = null;

                        bool has_errors = task.HasErrors(out error_msg, out exception);

                        if (!has_errors)
                        {
                            List <List <object> > query_data = new List <List <object> >();

                            if (task.Result.HasRows)
                            {
                                while (task.Result.Read())
                                {
                                    List <object> row = new List <object>(task.Result.FieldCount);

                                    int fields = task.Result.FieldCount;

                                    for (int i = 0; i < fields; ++i)
                                    {
                                        object curr_field = task.Result.GetValue(i);

                                        row.Add(curr_field);
                                    }

                                    query_data.Add(row);
                                }
                            }

                            task.Result.Close();

                            Data.GridData ret = new Data.GridData(query_data);

                            if (on_success != null)
                            {
                                on_success.Invoke(ret);
                            }
                        }
                        else
                        {
                            SQLError ret       = new SQLError();
                            ret.ErrorMessage   = error_msg;
                            ret.ErrorException = exception;

                            if (on_fail != null)
                            {
                                on_fail.Invoke(ret);
                            }
                        }
                    });
                }
            }
        }