コード例 #1
0
        public void CreateTagDictionary()
        {
            if (String.IsNullOrEmpty(this.CurrentDirectory))
            {
                return;
            }

            string tagsFolderName = Path.Combine(this.CurrentDirectory, _gitFolder, _refsTagsFolder);

            string[] fileNames = Directory.GetFiles(tagsFolderName);

            foreach (string fileName in fileNames)
            {
                using (StreamReader reader = new StreamReader(fileName))
                {
                    string gitID = reader.ReadLine();

                    if (!TagsDictionary.ContainsKey(gitID))
                    {
                        TagsDictionary.Add(gitID, new List <string>());
                    }

                    TagsDictionary[gitID].Add(new FileInfo(fileName).Name);
                }
            }
        }
コード例 #2
0
        private void ProceedLogFile(string fileName)
        {
            using (StreamReader reader = new StreamReader(fileName))
            {
                string[] lines = reader.ReadToEnd().Split(new string[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries);

                foreach (string line in lines)
                {
                    GitEntry gitEntry = new GitEntry();

                    string[] lineParts   = line.Split(new string[] { "\t" }, StringSplitOptions.RemoveEmptyEntries);
                    string   data        = lineParts[0];
                    string   description = lineParts[1].Replace("commit:", "").Trim();

                    string[] cells = data.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);

                    gitEntry.Number      = 0;
                    gitEntry.ID          = cells[1];
                    gitEntry.Author      = cells[2];
                    gitEntry.Description = description;
                    gitEntry.Branch      = new FileInfo(fileName).Name;

                    long  unixSeconds  = Int64.Parse(cells[4]);
                    float hourOffset   = Single.Parse(cells[5].Substring(0, 3));
                    float minuteOffset = Single.Parse(cells[5].Substring(3, 2));

                    DateTimeOffset dto = DateTimeOffset.FromUnixTimeSeconds(unixSeconds);

                    gitEntry.DateTime = dto.DateTime.AddHours(hourOffset).AddMinutes(minuteOffset);

                    gitEntry.Tags = TagsDictionary.ContainsKey(gitEntry.ID)? TagsDictionary[gitEntry.ID] : new List <string>();

                    this.GitEntries.Add(gitEntry);
                }
            }
        }
コード例 #3
0
        public ParseResults TextParser(string parsetext)
        {
            var FullParsingStr = parsetext.Replace("\n", " ").Replace("\r", " ");
            //var FullParsingStr = parsetext;// nvc["StrText"];
            List <TagsDictionary> objTagsDictionary = new List <TagsDictionary>();
            ParseResults          objparseItem      = new ParseResults();

            var data = Context.TagDictionary.ToList();

            try
            {
                foreach (var item in data)
                {
                    if (FullParsingStr.ToLower().Contains(item.TagTitle.ToLower()))
                    {
                        TagsDictionary tagitem = new TagsDictionary();
                        tagitem.TagId     = item.TagId;
                        tagitem.TagTitle  = item.TagTitle;
                        tagitem.Action    = item.Action;
                        tagitem.ActionAPI = item.ActionAPI;
                        objTagsDictionary.Add(tagitem);
                    }
                }

                List <UsersData> matchedUsers = new List <UsersData>();
                var UserData = Context.SignUp.ToList();
                foreach (var Useritem in UserData)
                {
                    if (FullParsingStr.ToLower().Contains(Useritem.FullName.ToLower()) && Useritem.FullName != "")
                    {
                        UsersData uitem = new UsersData();
                        uitem.UserId   = Useritem.SignUpId;
                        uitem.FullName = Useritem.FullName;
                        uitem.Address  = Useritem.Address;
                        uitem.EmailId  = Useritem.EmailId;
                        matchedUsers.Add(uitem);
                    }
                }

                //date parser


                String   strtext   = Convert.ToString(FullParsingStr);
                string[] TextArray = strtext.Split(' ');

                List <string> objdateStr = new List <string>();

                foreach (String text in TextArray)
                {
                    //var regex1 = new Regex(@"\b\d{2}\/\d{2}/\d{4}\b");
                    //foreach (Match m in regex1.Matches(text))
                    //{
                    //    DateTime dt;
                    //    if (DateTime.TryParseExact(m.Value, "dd/MM/yyyy", null, DateTimeStyles.None, out dt))
                    //        objdateStr.Add(text);
                    //}

                    var regex3 = new Regex(@"^((31(?!\ (Feb(ruary)?|Apr(il)?|June?|(Sep(?=\b|t)t?|Nov)(ember)?)))|((30|29)(?!\ Feb(ruary)?))|(29(?=\ Feb(ruary)?\ (((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8])\ (Jan(uary)?|Feb(ruary)?|Ma(r(ch)?|y)|Apr(il)?|Ju((ly?)|(ne?))|Aug(ust)?|Oct(ober)?|(Sep(?=\b|t)t?|Nov|Dec)(ember)?)\ ((1[6-9]|[2-9]\d)\d{2})$");
                    foreach (Match m in regex3.Matches(text.ToUpper()))
                    {
                        // DateTime dt;
                        // if (DateTime.TryParseExact(m.Value, "DD-MMM-YYYY", null, DateTimeStyles.None, out dt))
                        objdateStr.Add(text);
                    }

                    var regex5 = new Regex(@"\b\d{4}\-(Jan(uary)?|Feb(ruary)?|Ma(r(ch)?|y)|Apr(il)?|Ju((ly?)|(ne?))|Aug(ust)?|Oct(ober)?|(Sep(?=\b|t)t?|Nov|Dec)(ember)?|\d{2})-\d{2}\b");
                    foreach (Match m in regex5.Matches(text))
                    {
                        objdateStr.Add(text);
                    }

                    var regex11 = new Regex(@"\b\d{4}\/(JAN|FEB|MAR|MAY|APR|JUL|JUN|AUG|OCT|SEP|NOV|DEC|\d{2})/\d{2}\b");
                    foreach (Match m in regex11.Matches(text))
                    {
                        objdateStr.Add(text);
                    }
                    var regex6 = new Regex(@"^((31(?! (FEB|APR|JUN|SEP|NOV)))|((29)(?! FEB))|(29(?= FEB (((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8])(-|/)(JAN|FEB|MAR|MAY|APR|JUL|JUN|AUG|OCT|SEP|NOV|DEC|\d{2})(-|/)((1[6-9]|[2-9]\d)\d{2}|\d{2})$");
                    foreach (Match m in regex6.Matches(text.ToUpper()))
                    {
                        // DateTime dt;
                        // if (DateTime.TryParseExact(m.Value, "DD-MMM-YYYY", null, DateTimeStyles.None, out dt))
                        objdateStr.Add(text);
                    }



                    //Use the Parse() method
                    try
                    {
                        //dateTime = DateTime.Parse(text);
                        //hasDate = true;
                        //if (hasDate)
                        //{
                        //    objdateStr.Add(text);
                        //}
                        // break;//no need to execute/loop further if you have your date
                    }
                    catch (Exception ex)
                    {
                    }
                }

                objparseItem.TagsData     = objTagsDictionary;
                objparseItem.UserData     = matchedUsers;
                objparseItem.MatchedDates = objdateStr;
            }
            catch
            {
                // HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.ExpectationFailed);
                //return response;
            }
            return(objparseItem);
        }