// добавить нового клиента
        public async Task AppendCar(CarViewData carViewData)
        {
            // проверка данных по персоне
            Person person = new Person {
                Surname    = carViewData.Surname,
                Name       = carViewData.Name,
                Patronymic = carViewData.Patronymic,
                Passport   = carViewData.Passport
            };

            // проверяем есть ли уже человек с таким паспортом но с другими ФИО. Если есть то мы будем кидать исключение
            if (_context.Persons.Any(p =>
                                     p.Passport == person.Passport && (p.Surname != person.Surname || p.Patronymic != person.Patronymic ||
                                                                       p.Name != person.Name)))
            {
                throw new WebApiException("Человек с таким паспортом уже существует. Проверьте корректность данных");
            }

            // если у нас нет такого человека с такими данными, то мы добавляем его
            if (!_context.Persons.Any(p => p.Passport == person.Passport))
            {
                await _personProcess.AppendPerson(person);
            }

            // проверка данных по адресу
            Mark mark = new Mark {
                Title = carViewData.MarkTitle,
                Model = carViewData.MarkModel
            };

            // в случае если мы не нашли такой адрес, то мы просто будем добавлять его
            if (!_context.Marks.Any(m => m.Title == mark.Title && m.Model == mark.Model))
            {
                await AppendMark(mark);
            }

            // создание и добавление клиента в БД
            Car car = new Car {
                Color       = carViewData.Color,
                StateNumber = carViewData.StateNumber,
                YearOfIssue = carViewData.YearOfIssue,
                OwnerId     = _context.Persons.First(p => p.Passport == person.Passport).Id,
                MarkId      = _context.Marks.First(m => m.Title == mark.Title && m.Model == mark.Model).Id
            };

            _context.Cars.Add(car);
            await _context.SaveChangesAsync();
        }
        // добавление нового обращения
        public async Task AppendPersonRequest(PersonRequestViewData personRequestViewData)
        {
            Person person = new Person {
                Surname    = personRequestViewData.Surname,
                Name       = personRequestViewData.Name,
                Patronymic = personRequestViewData.Patronymic,
                Passport   = personRequestViewData.Passport
            };

            // проверяем есть ли уже человек с таким паспортом но с другими ФИО. Если есть то мы будем кидать исключение
            if (_context.Persons.Any(p =>
                                     p.Passport == person.Passport && (p.Surname != person.Surname || p.Patronymic != person.Patronymic ||
                                                                       p.Name != person.Name)))
            {
                throw new WebApiException("Человек с таким паспортом уже существует. Проверьте корректность данных");
            }

            // если у нас нет такого человека с такими данными, то мы добавляем его
            if (!_context.Persons.Any(p => p.Passport == person.Passport))
            {
                await _personProcess.AppendPerson(person);
            }

            PersonRequest personRequest = new PersonRequest {
                PersonId = _context.Persons.First(p => p.Passport == person.Passport).Id,
                PersonRequestStatusId   = _context.PersonRequestStatuses.First(prs => prs.Title == "Необходимо перезвонить!").Id,
                DescriptionOfTheProblem = personRequestViewData.DescriptionOfTheProblem,
                TelephoneNumber         = personRequestViewData.Telephone
            };

            _context.PersonRequests.Add(personRequest);
            await _context.SaveChangesAsync();
        }
Exemplo n.º 3
0
        // добавление нового работника
        public async Task AppendWorker(WorkerViewData workerViewData)
        {
            Person person = new Person {
                Surname  = workerViewData.Surname, Name = workerViewData.Name, Patronymic = workerViewData.Patronymic,
                Passport = workerViewData.Passport
            };

            // проверяем есть ли уже человек с таким паспортом но с другими ФИО. Если есть то мы будем кидать исключение
            if (_context.Persons.Any(p =>
                                     p.Passport == person.Passport && (p.Surname != person.Surname || p.Patronymic != person.Patronymic ||
                                                                       p.Name != person.Name)))
            {
                throw new Exception("Человек с таким паспортом уже существует. Проверьте корректность данных");
            }

            // если у нас нет такого человека с такими данными, то мы добавляем его
            if (_context.Persons.Any(p =>
                                     p.Passport == person.Passport && p.Surname == person.Surname && p.Name == person.Name &&
                                     p.Patronymic == person.Patronymic || p.Passport != person.Passport))
            {
                _personProcess.AppendPerson(person);
            }

            // ищем данные о статусе. если мы не находим, то кидаем исклчение
            WorkerStatus status = _context.WorkerStatuses.First(ws => ws.Status == workerViewData.Status);

            if (status == null)
            {
                throw new Exception("Данный статус не существует. Данные недействительны");
            }

            // ищем специальность. если не находим то кидаем исключение
            Specialty specialty = _context.Specialties.First(s => s.Title == workerViewData.Specialty);

            if (specialty == null)
            {
                throw new Exception("Данной специальности не существует. Данные недействительны");
            }

            // создание и добавление нового работника
            Worker worker = new Worker {
                // поиск персоны. можно было найти его раньше, но данные могли быть недействительны
                PersonId       = _context.Persons.First(p => p.Passport == person.Passport).Id,
                SpecialtyId    = specialty.Id,
                StatusId       = status.Id,
                WorkExperience = workerViewData.WorkExperience,
                Discharge      = workerViewData.Discharge
            };

            _context.Workers.Add(worker);
            await _context.SaveChangesAsync();
        }
Exemplo n.º 4
0
        // добавить нового клиента
        public async Task AppendClient(ClientViewData clientViewData)
        {
            // проверка данных по персоне
            Person person = new Person {
                Surname    = clientViewData.Surname,
                Name       = clientViewData.Name,
                Patronymic = clientViewData.Patronymic,
                Passport   = clientViewData.Passport
            };

            // проверяем есть ли уже человек с таким паспортом но с другими ФИО. Если есть то мы будем кидать исключение
            if (_context.Persons.Any(p =>
                                     p.Passport == person.Passport && (p.Surname != person.Surname || p.Patronymic != person.Patronymic ||
                                                                       p.Name != person.Name)))
            {
                throw new WebApiException("Человек с таким паспортом уже существует. Проверьте корректность данных");
            }

            // если у нас нет такого человека с такими данными, то мы добавляем его
            if (!_context.Persons.Any(p => p.Passport == person.Passport))
            {
                await _personProcess.AppendPerson(person);
            }

            // проверка данных по адресу
            Address address = new Address {
                Building = clientViewData.Building,
                Street   = clientViewData.Street,
                Flat     = clientViewData.Flat
            };

            // в случае если мы не нашли такой адрес, то мы просто будем добавлять его
            if (!_context.Addresses.Any(a =>
                                        a.Street == address.Street && a.Building == address.Building && a.Flat == address.Flat))
            {
                await AppendAddress(address);
            }

            // создание и добавление клиента в БД
            Client client = new Client {
                PersonId        = _context.Persons.First(p => p.Passport == person.Passport).Id,
                AddressId       = _context.Addresses.First(a => a.Street == address.Street && a.Building == address.Building && a.Flat == address.Flat).Id,
                DateOfBorn      = clientViewData.DateOfBorn,
                TelephoneNumber = clientViewData.TelephoneNumber
            };

            _context.Clients.Add(client);
            await _context.SaveChangesAsync();
        }