public async Task <IActionResult> Create(CreateViewModel viewModel, string connectionId) { // Индикатор добавления группы для станка bool groupAdded = false; //Добавление элемента в базу try { //Проверка введенных данных if (ModelState.IsValid) { // Добавление группы станков при отсутствии аналога if (viewModel.MachineTypeId == 0) { viewModel.MachineTypeId = await _machineTypeRepository.AddMachineType(viewModel.MachineType); groupAdded = true; } // if await _machineRepository.AddMachine(new Machine { Name = viewModel.Name, MachineTypeId = viewModel.MachineTypeId }); await _hub.Clients.Client(connectionId).SendAsync("Success", Messages.successCreateMessage); return(RedirectToAction("Index", new { ajaxLoad = true })); } //if } catch (DbUpdateException ex) { _message = DbErrorsInterpreter.GetDbUpdateExceptionMessage(ex); } catch { _message = Messages.createErrorMessage; } // try-catch // Удаление созданной группы для станка if (groupAdded) { await _machineTypeRepository.RemoveMachineType(viewModel.MachineTypeId); } // Подгрузка вспомогательных коллекция viewModel.Machines = await _machineRepository.GetMachines(); viewModel.MachineTypes = await _machineTypeRepository.GetMachineTypes(); if (_message != null) { await _hub.Clients.Client(connectionId).SendAsync("Error", _message); } return(PartialView(viewModel)); } // Create
public async Task <IActionResult> Create(CreateViewModel viewModel, string connectionId, bool more) { //Добавление элемента в базу try { // Проверка номера телефона на кол-во цифр Regex regex = new Regex(@"\D+"); viewModel.Phone = regex.Replace(viewModel.Phone, ""); if (viewModel.Phone.Length < 7) { ModelState.AddModelError("Phone", Messages.phoneMinLengthErrorMessage); } //Проверка введенных данных if (ModelState.IsValid) { // Добавление станка при отсутствии в базе var machine = await _machineRepository.GetMachine(viewModel.Machine); if (machine == null) { machine = await _machineRepository.AddMachine(viewModel.Machine, await _machineTypeRepository.AddMachineType("Без группы")); } // Добавляемый элемент var requisition = new Requisition { UserName = User.Identity.Name, CreateDate = DateTime.Now, Phone = viewModel.Phone, ContactName = viewModel.ContactName, Location = viewModel.Location, MachineId = machine.Id, Comment = viewModel.Comment }; await _requisitionRepository.AddRequisition(requisition); await _hub.Clients.Client(connectionId).SendAsync("Success", Messages.successCreateMessage); // Добавление дополнительной записи if (more) { return(RedirectToAction("Create", new { ajaxLoad = true, phone = viewModel.Phone, contactName = viewModel.ContactName, location = viewModel.Location })); } // if return(RedirectToAction("Details", new { id = requisition.Id, ajaxLoad = true })); } //if } catch (DbUpdateException ex) { _message = DbErrorsInterpreter.GetDbUpdateExceptionMessage(ex); } catch { _message = Messages.createErrorMessage; } // try-catch viewModel.Machines = await _machineRepository.GetMachines(); if (_message != null) { await _hub.Clients.Client(connectionId).SendAsync("Error", _message); } return(PartialView(viewModel)); } // Create
public async Task <IActionResult> Create(CreateViewModel viewModel, string connectionId, bool more) { //Добавление элемента в базу try { // Проверка количества загруженных фото if (viewModel.Images != null && viewModel.Images.Count > 7) { ModelState.AddModelError("", "Максимальное кол-во фото в предложении - 7 шт."); } //Проверка введенных данных if (ModelState.IsValid) { // Добавление станка при отсутствии в базе var machine = await _machineRepository.GetMachine(viewModel.Machine); if (machine == null) { machine = await _machineRepository.AddMachine(viewModel.Machine, await _machineTypeRepository.AddMachineType("Без группы")); } // Добавляемый элемент var proposal = new Proposal { UserName = User.Identity.Name, CreateDate = DateTime.Now, Location = viewModel.Location, MachineId = machine.Id, PurshasePrice = (int)viewModel.PurshasePrice, SellingPrice = (int)viewModel.SellingPrice, Comment = viewModel.Comment }; await _proposalRepository.AddProposal(proposal); try { await _proposalImageRepository.AddProposalImages(proposal.Id, viewModel.Images, _environment); } catch { } await _hub.Clients.Client(connectionId).SendAsync("Success", Messages.successCreateMessage); // Добавление дополнительной записи if (more) { return(RedirectToAction("Create", new { ajaxLoad = true, location = viewModel.Location })); } // if return(RedirectToAction("Details", new { id = proposal.Id, ajaxLoad = true })); } //if } catch (DbUpdateException ex) { _message = DbErrorsInterpreter.GetDbUpdateExceptionMessage(ex); } catch { _message = Messages.createErrorMessage; } // try-catch if (_message != null) { if (_message != null) { await _hub.Clients.Client(connectionId).SendAsync("Error", _message); } } return(PartialView(viewModel)); } // Create