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); } } }
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); } } }
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); }