Пример #1
0
        public void DeleteWorkplace(Guid guid)
        {
            var workplace = WorkPlaces.SingleOrDefault(w => w.Guid == guid);

            if (workplace == null)
            {
                throw new CvException($"There is no workplace associated this id -> {guid}");
            }

            WorkPlaces.Remove(workplace);
        }
        public void Compare(DataModel model)
        {
            Clear();

            if (model.Person == null || model.Employee == null)
            {
                return;
            }

            var person   = model.Person;
            var employee = model.Employee;
            var card     = model.PersonCard;

            if (!(person.Nickname ?? String.Empty).Equals(employee.FullName))
            {
                Data.Add(new Difference {
                    Field = "Псевдоним", Source = employee.FullName, Target = person.Nickname
                });
            }

            if (card != null)
            {
                if (employee.LastName != card.LastNameRus)
                {
                    Data.Add(new Difference {
                        Field = "Фамилия", Source = employee.LastName, Target = card.LastNameRus
                    });
                }

                if (employee.FirstName != card.FirstNameRus)
                {
                    Data.Add(new Difference {
                        Field = "Имя", Source = employee.FirstName, Target = card.FirstNameRus
                    });
                }

                if (employee.MiddleName != card.MiddleNameRus)
                {
                    Data.Add(new Difference {
                        Field = "Отчество", Source = employee.MiddleName, Target = card.MiddleNameRus
                    });
                }

                if (employee.Gender != card.Sex)
                {
                    Data.Add(new Difference {
                        Field = "Пол", Source = employee.Gender, Target = card.Sex
                    });
                }
            }

            if (model.EmployeePositions != null && model.EmployeePositions.Count > 0)
            {
                model.EmployeePositions.ForEach((position) => {
                    var filtered = model.PersonPositions.Where(
                        pos => pos.PersonID == position.PersonID && pos.Position.Equals(position.Position, StringComparison.InvariantCultureIgnoreCase)
                        ).ToList();
                    if (filtered == null || filtered.Count() == 0)
                    {
                        WorkPlaces.Add(new WorkPlaceDifference {
                            PersonID       = position.PersonID,
                            PersonNickname = position.Organization,
                            PersonLinkID   = position.PersonLinkID,
                            Position       = position.Position
                        });
                    }
                    else
                    {
                        filtered.ForEach(personPos => {
                            if (personPos.Position.ToLower() != position.Position.ToLower())
                            {
                                WorkPlaces.Add(new WorkPlaceDifference {
                                    PersonID       = position.PersonID,
                                    PersonNickname = position.Organization,
                                    PersonLinkID   = position.PersonLinkID,
                                    Position       = position.Position
                                });
                            }
                        });
                    }
                });
            }
        }
 public void Clear()
 {
     Data.Clear();
     WorkPlaces.Clear();
 }