Ejemplo n.º 1
0
        public async Task <IEnumerable <ActionResponse> > ParseStreamAsync(DirectoryReaderContext streamContext)
        {
            string text = null;
            IEnumerable <ActionResponse> actions = Enumerable.Empty <ActionResponse>();

            try
            {
                using (StreamReader streamReader = new StreamReader(streamContext.Stream))
                {
                    text = await streamReader.ReadToEndAsync().ConfigureAwait(false);
                }
            }
            catch
            {
                return(actions);
            }
            if (!string.IsNullOrEmpty(text))
            {
                try
                {
                    JToken val = JToken.Parse(text);
                    if (val is JArray)
                    {
                        actions = val.ToObject <IEnumerable <FileActionResponse> >();
                    }
                    else
                    {
                        if (!(val is JObject))
                        {
                            throw new JsonException("Stream was neither an array nor object");
                        }
                        actions = new ActionResponse[1]
                        {
                            val.ToObject <FileActionResponse>()
                        };
                    }
                }
                catch (Exception ex)
                {
                    throw new TargetedNotificationsException(ex.Message, ex);
                }
            }
            foreach (ActionResponse item in actions)
            {
                item.Origin = streamContext.DirectoryName + "-" + streamContext.FileName;
            }
            return(actions);
        }
Ejemplo n.º 2
0
        public IEnumerable <DirectoryReaderContext> ReadAllFiles()
        {
            logger.LogInfo("Reading all files from " + path);
            List <DirectoryReaderContext> list = new List <DirectoryReaderContext>();

            try
            {
                if (!Directory.Exists(path))
                {
                    return(list);
                }
                string[] files = Directory.GetFiles(path, "*.json");
                foreach (string text in files)
                {
                    logger.LogVerbose("Opening file for reading: " + text);
                    try
                    {
                        string text2 = text;
                        if (markProcessed)
                        {
                            logger.LogVerbose("Renaming file to .processed: " + text);
                            string text3 = text + ".processed";
                            File.Move(text, text3);
                            text2 = text3;
                        }
                        DirectoryReaderContext item = new DirectoryReaderContext
                        {
                            DirectoryName = directoryName,
                            FileName      = Path.GetFileNameWithoutExtension(text),
                            Stream        = File.OpenRead(text2)
                        };
                        list.Add(item);
                    }
                    catch (Exception exception)
                    {
                        logger.LogError("Processing file failed", exception);
                    }
                }
                return(list);
            }
            catch (Exception exception2)
            {
                logger.LogError("Checking directory failed", exception2);
                return(list);
            }
        }