public async Task PostRepairOrder(RepairOrderViewForm repairOrder) =>
 await _repairOrderProcess.AppendRepairOrder(repairOrder);
        // добавление нового заказа
        public async Task AppendRepairOrder(RepairOrderViewForm repairOrderViewForm)
        {
            if (_context.Cars.FirstOrDefault(c => c.StateNumber == repairOrderViewForm.CarViewData.StateNumber && (
                                                 c.Mark.Model != repairOrderViewForm.CarViewData.MarkModel || c.Mark.Title != repairOrderViewForm.CarViewData.MarkModel
                                                 )) != null)
            {
                throw new WebApiException("Авто с таким гос. номер уже существует. Проверьте корректность данных");
            }

            // поиск авто. если не нашли то добавляем его
            if (!_carProcess.IsSetCat(repairOrderViewForm.CarViewData.StateNumber).Result)
            {
                await _carProcess.AppendCar(repairOrderViewForm.CarViewData);
            }

            // после добавления находим это авто
            Car car = _context.Cars.FirstOrDefault(c =>
                                                   c.StateNumber == repairOrderViewForm.CarViewData.StateNumber);

            // после поиска второй раз убеждаемся что мы все нашли и что все хорошо
            if (car == null)
            {
                throw new WebApiException("Данного авто не существует. Данные недействительны");
            }

            // поиск клиента. если не нашли, то добавляем
            if (!_clientProcess.IsSetClient(repairOrderViewForm.ClientViewData.Passport).Result)
            {
                await _clientProcess.AppendClient(repairOrderViewForm.ClientViewData);
            }

            // поиск после добавления клиента
            Client client = _context.Clients.Include(c => c.Person)
                            .FirstOrDefault(c => c.Person.Passport == repairOrderViewForm.ClientViewData.Passport);

            // убеждаемся что мы все нашли и что добавление прошло успешно
            if (client == null)
            {
                throw new WebApiException("Данного клиента не существует. Данные недействительны");
            }

            // поиск работника. если не нашли, то добавляем
            string[] wokerData = repairOrderViewForm.Worker.Split(' ', StringSplitOptions.RemoveEmptyEntries);
            Worker   worker    = _context.Workers.Include(w => w.Person).FirstOrDefault(w =>
                                                                                        w.Person.Surname == wokerData[0] && w.Person.Name == wokerData[1] &&
                                                                                        w.Person.Patronymic == wokerData[2]);

            if (worker == null)
            {
                throw new WebApiException("Данного работника не существует. Данные недействительны");
            }

            // создание новой заявки
            RepairOrder repairOrder = new RepairOrder {
                DateOfTheApplication = DateTime.Now, IsReady = false,
                CarId = car.Id, ClientId = client.Id, WorkerId = worker.Id
            };

            // добавляем неисправности
            for (int i = 0; i < repairOrderViewForm.MalfunctionViewModels.Count; i++)
            {
                repairOrder.Malfunctions.Add(_context.Malfunctions.FirstOrDefault(m =>
                                                                                  m.Title == repairOrderViewForm.MalfunctionViewModels[i].Title));
            }

            // добавляем и сохраняем изменения
            _context.RepairOrders.Add(repairOrder);

            worker.StatusId = _context.WorkerStatuses.First(ws => ws.Status == "Работает в данный момент").Id;

            await _context.SaveChangesAsync();
        }