Exemple #1
0
 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();
        }