public async Task PutCar(int id, CarViewData car) { if (id != car.Id) { throw new Exception("Данного авто не существует"); } await _carProcess.ChangeCar(car); }
public RepairOrderViewForm(int id, ClientViewData clientViewData, CarViewData carViewData, string worker, List <MalfunctionViewForm> malfunctionViewModels) { Id = id; ClientViewData = clientViewData; CarViewData = carViewData; Worker = worker; MalfunctionViewModels = malfunctionViewModels; }
// добавить нового клиента 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 ChangeCar(CarViewData carViewData) { // получаем клиента для изменения Car car = _context.Cars.FirstOrDefault(c => c.Id == carViewData.Id); if (car == null) { throw new WebApiException($"Автомобиль не был найден."); } // создание человека 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 && p.Surname == person.Surname && p.Name == person.Name && p.Patronymic == person.Patronymic || p.Passport != person.Passport)) { await _personProcess.AppendPerson(person); } car.Color = carViewData.Color; car.StateNumber = carViewData.StateNumber; var owner = _context.Persons.FirstOrDefault(p => p.Passport == person.Passport); if (owner == null) { throw new WebApiException("Владелец авто не был найден."); } car.OwnerId = owner.Id; await _context.SaveChangesAsync(); }
public async Task PostCar(CarViewData car) => await _carProcess.AppendCar(car);