public IEnumerable<Person> ParseFile(byte[] csvFile, int summaryId) { List<Person> persons = new List<Person>(); using(MemoryStream ms = new MemoryStream(csvFile)) { using(TextReader reader = new StreamReader(ms, Encoding.UTF8)) { string line; while ((line = reader.ReadLine())!= null) { string[] array = line.Split(';'); Person person = new Person(); person.SummaryId = summaryId; string[] activityParts = GetString(array[0]).Split('.'); person.ActivityId = this.Activities.First(x => x.Part_1.ToString(CultureInfo.InvariantCulture) == activityParts[0] && String.Format("{0}{1}", x.Part_2, x.Part_3) == activityParts[1] && String.Format("{0}{1}", x.Part_4, x.Part_5) == activityParts[2] ).Id; person.Title = GetString(array[1]); person.Post = array[2]; person.PostLevelId = GetInt(array[3]); person.EducationLevelId = GetInt(array[4]); person.YearSalary = GetDecimal(array[5]); person.Gender = GetBoolean(array[6]); person.WasQualificationIncrease = GetBoolean(array[7]); person.WasValidate = GetBoolean(array[8]); person.BirthYear = GetInt(array[9]); person.HiringYear = GetInt(array[10]); person.StartPostYear = GetInt(array[11]); person.DismissalYear = GetInt(array[12]); persons.Add(person); } } } return persons; }
public void CopySummary(int enterpriseId, string title, int summaryId) { #region Pre-conditions if (title == null) { throw new ArgumentNullException("title"); } if (!_context.Summaries.Any(x => x.Id == summaryId && x.EnterpriseId == enterpriseId)) { throw new ArgumentException("Wrong summary id", summaryId.ToString(CultureInfo.InvariantCulture)); } #endregion Summary summaryTo = new Summary(); summaryTo.Title = title; summaryTo.CreateDate = DateTime.Now; summaryTo.Published = false; summaryTo.EnterpriseId = enterpriseId; _context.Summaries.Add(summaryTo); Summary summaryFrom = _context.Summaries.First(x => x.Id == summaryId); IEnumerable<SummaryActivity> summaryActivities = _context.SummaryActivities.Where(x => x.SummaryId == summaryFrom.Id); foreach (SummaryActivity summaryActivity in summaryActivities) { _context.SummaryActivities.Add(new SummaryActivity { SummaryId = summaryTo.Id, ActivityId = summaryActivity.ActivityId }); } IEnumerable<Person> people = _context.People.Where(x => x.SummaryId == summaryFrom.Id); foreach (var person in people) { if (person.DismissalYear != null) { Person newPerson = new Person { BirthYear = person.BirthYear, ActivityId = person.ActivityId, DismissalYear = person.DismissalYear, EducationLevelId = person.EducationLevelId, Gender = person.Gender, HiringYear = person.HiringYear, Post = person.Post, PostLevelId = person.PostLevelId, StartPostYear = person.StartPostYear, SummaryId = summaryTo.Id, Title = person.Title, WasQualificationIncrease = person.WasQualificationIncrease, WasValidate = person.WasValidate, YearSalary = person.YearSalary }; _context.People.Add(newPerson); } } _context.SaveChanges(); }
public void CreatePerson(int summaryId, int activityId, string title, string post, int postLevelId, int educationLevelId, decimal yearSalary, bool gender, bool wasQualificationIncrease, bool wasValidate, int birthYear, int hiringYear, int startPostYear, int dismissalYear) { #region Pre-conditions if (_context.Summaries.All(x => x.Id != summaryId)) { throw new ArgumentException("Wrong summary Id", summaryId.ToString(CultureInfo.InvariantCulture)); } if (_context.Activities.All(x => x.Id != activityId)) { throw new ArgumentException("Wrong activity Id", activityId.ToString(CultureInfo.InvariantCulture)); } if (_context.EducationLevels.All(x => x.Id != educationLevelId)) { throw new ArgumentException("Wrong education level id", educationLevelId.ToString(CultureInfo.InvariantCulture)); } if (_context.PostLevels.All(x => x.Id != postLevelId)) { throw new ArgumentException("Wrong post level Id", postLevelId.ToString(CultureInfo.InvariantCulture)); } if (!_context.SummaryActivities.Any(x => x.ActivityId == activityId && x.SummaryId == summaryId)) { throw new ArgumentException("No such SummaryActivity"); } #endregion Person person = new Person { ActivityId = activityId, BirthYear = birthYear, DismissalYear = dismissalYear, EducationLevelId = educationLevelId, Gender = gender, HiringYear = hiringYear, Post = post, PostLevelId = postLevelId, StartPostYear = startPostYear, SummaryId = summaryId, Title = title, WasQualificationIncrease = wasQualificationIncrease, WasValidate = wasValidate, YearSalary = yearSalary }; _context.People.Add(person); _context.SaveChanges(); }