示例#1
0
        private static void elaborateQueue(Dictionary <string, List <string> > listFile, string token, bool pretty)
        {
            int totalfile      = listFile.Sum(x => x.Value.Count);
            int partialOfTotal = 0;

            foreach (KeyValuePair <string, List <string> > c in listFile)
            {
                int progress = 0;

                foreach (string item in c.Value)
                {
                    log.Info($"Processing file {++progress} of {c.Value.Count} in collection: {c.Key}");

                    string contentFile = File.ReadAllText(item);

                    log.Request(contentFile);

                    RestSharp.IRestResponse responseRawCMS = RawCmsHelper.CreateElement(new CreateRequest
                    {
                        Collection = c.Key,
                        Data       = contentFile,
                        Token      = token
                    });

                    log.Debug($"RawCMS response code: {responseRawCMS.StatusCode}");

                    if (!responseRawCMS.IsSuccessful)
                    {
                        //log.Error($"Error occurred: \n{responseRawCMS.Content}");
                        log.Error($"Error: {responseRawCMS.ErrorMessage}");
                    }
                    else
                    {
                        log.Response(responseRawCMS.Content);
                    }

                    //switch (responseRawCMS.ResponseStatus)
                    //{
                    //    case RestSharp.ResponseStatus.Completed:
                    //        log.Response(responseRawCMS.Content);

                    //        break;

                    //    case RestSharp.ResponseStatus.None:
                    //    case RestSharp.ResponseStatus.Error:
                    //    case RestSharp.ResponseStatus.TimedOut:
                    //    case RestSharp.ResponseStatus.Aborted:

                    //    default:
                    //        log.Error($"Error response: {responseRawCMS.ErrorMessage}");
                    //        break;
                    //}

                    log.Info($"File processed\n\tCollection progress: {progress} of {c.Value.Count}\n\tTotal progress: {++partialOfTotal} of {totalfile}\n\tFile: {item}\n\tCollection: {c.Key}");
                }
            }
        }
示例#2
0
        private static int RunInsertOptionsCode(InsertOptions opts)
        {
            bool   Verbose    = opts.Verbose;
            bool   Recursive  = opts.Recursive;
            bool   DryRun     = opts.DryRun;
            bool   Pretty     = opts.Pretty;
            string collection = opts.Collection;
            string filePath   = opts.FilePath;
            string folderPath = opts.FolderPath;

            // setting log/console Output
            log.SetVerbose(Verbose);
            log.SetPretty(Pretty);

            // check token befare action..
            string token = TokenHelper.getTokenFromFile();

            if (string.IsNullOrEmpty(token))
            {
                log.Warn("No token found. Please login before continue.");
                log.Warn("Program aborted.");
                return(0);
            }
            ;

            log.Debug($"Working into collection: {collection}");

            Dictionary <string, List <string> > listFile = new Dictionary <string, List <string> >();

            // pass a file to options
            if (!string.IsNullOrEmpty(filePath))
            {
                // check if file exists
                if (!File.Exists(filePath))
                {
                    log.Warn($"File not found: {filePath}");
                    return(0);
                }

                // check if file is valid json

                int check = RawCmsHelper.CheckJSON(filePath);

                if (check != 0)
                {
                    log.Warn("Json is not well-formatted. Skip file.");
                    return(0);
                }
                List <string> filelist = new List <string>
                {
                    filePath
                };
                listFile.Add(collection, filelist);
            }
            else if (!string.IsNullOrEmpty(folderPath))
            {
                string cwd = Directory.GetCurrentDirectory();
                log.Info($"Current working directory: {cwd}");

                // get all file from folder
                if (!Directory.Exists(folderPath))
                {
                    log.Warn($"File not found: {filePath}");
                    return(0);
                }

                // This path is a directory
                // get first level path,
                // folder => collection
                DirectoryInfo   dInfo   = new DirectoryInfo(folderPath);
                DirectoryInfo[] subdirs = dInfo.GetDirectories();

                foreach (DirectoryInfo subDir in subdirs)
                {
                    RawCmsHelper.ProcessDirectory(Recursive, listFile, subDir.FullName, subDir.Name);
                }
            }
            else
            {
                log.Warn("At least one of the two options -f (file) or -d (folder) is mandatory.");
                return(0);
            }

            elaborateQueue(listFile, token, Pretty);

            log.Info($"Processing file complete.");
            return(0);
        }
示例#3
0
        private static int RunListOptionsCode(ListOptions opts)
        {
            bool Verbose = opts.Verbose;

            log.SetVerbose(Verbose);

            bool Pretty = opts.Pretty;

            log.SetPretty(Pretty);

            int    PageSize   = opts.PageSize;
            int    PageNumber = opts.PageNumber;
            string RawQuery   = opts.RawQuery;

            string id         = opts.Id;
            string collection = opts.Collection;

            // check token befare action..
            string token = TokenHelper.getTokenFromFile();

            if (string.IsNullOrEmpty(token))
            {
                log.Warn("No token found. Please login.");
                return(0);
            }
            ;

            log.Debug($"Perform action in collection: {collection}");

            ListRequest req = new ListRequest
            {
                Collection = collection,
                Token      = token,
                PageNumber = PageNumber < 1 ? 1 : PageNumber,
                PageSize   = PageSize < 1 ? 10 : PageSize,
                RawQuery   = RawQuery,
            };

            if (!string.IsNullOrEmpty(id))
            {
                req.Id = id;
            }

            RestSharp.IRestResponse responseRawCMS = RawCmsHelper.GetData(req);

            log.Debug($"RawCMS response code: {responseRawCMS.StatusCode}");

            if (!responseRawCMS.IsSuccessful)
            {
                //log.Error($"Error occurred: \n{responseRawCMS.Content}");
                log.Error($"Error: {responseRawCMS.ErrorMessage}");
            }
            else
            {
                log.Response(responseRawCMS.Content);
            }

            //switch (responseRawCMS.ResponseStatus)
            //{
            //    case RestSharp.ResponseStatus.Completed:

            //        break;

            //    case RestSharp.ResponseStatus.None:
            //    case RestSharp.ResponseStatus.Error:
            //    case RestSharp.ResponseStatus.TimedOut:
            //    case RestSharp.ResponseStatus.Aborted:

            //    default:
            //        log.Error($"Error response: {responseRawCMS.ErrorMessage}");
            //        break;
            //}

            return(0);
        }