Ejemplo n.º 1
0
        public IEnumerable <JobView> GetJobs()
        {
            var jr = new JsonSerializer();

            if (RedisService.HasKey("*"))
            {
                return(jr.Deserialize <List <JobView> >
                           (new JsonTextReader(new StringReader(RedisService.ReadKey("*")))));
            }
            else
            {
                var jobViewList =
                    JobBoardStoreService.GetAll().
                    ToList().
                    Select((item) =>
                           new JobView {
                    Title       = item.Title,
                    Description = item.Description,
                    Location    = item.Location
                });

                var sb = new StringBuilder();
                jr.Serialize(new JsonTextWriter(new StringWriter(sb)), jobViewList);
                RedisService.WriteKey("*", sb.ToString());

                return(jobViewList);
            }
        }
Ejemplo n.º 2
0
        public IEnumerable <Job> GetCSVPayload(string csvJobs)
        {
            var lines  = csvJobs.TrimEnd().Split('\n').ToList();
            var titles = new List <string> {
                "Title", "Description", "PostingDate", "Location", "Applicants"
            };                                                                                                 //lines[0].Split(',').ToList();
            var contents = lines.
                           Skip(1).
                           Select((s) => s.TrimEnd()).ToList();


            var json =
                contents.
                Select((line) =>
            {
                if (line.EndsWith('"'))
                {
                    var indx    = line.Substring(0, line.Length - 1).LastIndexOf('"');
                    var lastCol = line.Substring(indx + 1, line.Length - indx - 2).Replace(',', ';');;
                    line        = line.Remove(indx) + lastCol;
                }
                return(line);
            }).
                Select(
                    (content) =>
            {
                var result =
                    content.Split(',').
                    Select((item, i) =>
                {
                    var res = "";
                    if (i < titles.Count - 1)
                    {
                        if (titles[i] == "PostingDate")
                        {
                            //item = DateTime.Parse(item).ToString("yyyy-MM-dd");
                            item = new DateTime(int.Parse(item.Substring(6, 4)),
                                                int.Parse(item.Substring(3, 2)),
                                                int.Parse(item.Substring(0, 2)))
                                   .ToString("yyyy-MM-dd");
                        }
                        res = $"\"{titles[i]}\":\"{item}\"";
                    }
                    else
                    {
                        if (item.StartsWith('"'))
                        {
                            item = item.Remove(0);
                        }
                        ;
                        if (item.EndsWith('"'))
                        {
                            item = item.Remove(item.Length - 1);
                        }
                        res =
                            item.Split(';').
                            Distinct().
                            Select((name) => $"{{\"name\":\"{name}\"}}").
                            Aggregate("_", (acc, _item) => acc == "_" ? _item : acc + "," + _item);
                        res = $"\"{titles[i]}\":[{res}]";
                    }
                    return(res);
                }).
                    Aggregate("_", (acc, _item) => (acc == "_") ? _item : acc + "," + _item);
                return($"{{{result}}}");
            }
                    ).
                Aggregate("_", (acc, _item) => (acc == "_") ? _item : acc + "," + _item);

            json = $"[{json}]";

            //json = "[{\"Title\":\"Ahmad\", \"PostingDate\":\"2019-09-29\", \"Applicants\": [{\"Name\":\"Ali\"}]}]";

            JsonSerializer js   = new JsonSerializer();
            var            objs = js.Deserialize <List <Job> >(new JsonTextReader(new StringReader(json)));

            foreach (var obj in objs)
            {
                JobBoardStoreService.Create(obj);
            }

            RedisService.WriteKey("*", json);

            return(objs);
        }
Ejemplo n.º 3
0
 public Job GetJob(string id)
 {
     return(JobBoardStoreService.Get(id));
 }
Ejemplo n.º 4
0
 public JobService(JobBoardStoreService _jobBoardStoreService, RedisService _redisService)
 {
     JobBoardStoreService = _jobBoardStoreService;
     RedisService         = _redisService;
 }