public async Task <ActionResult> Create(CreateViewModel viewModel, string connectionId) { //Добавление элемента в базу try { //Проверка введенных данных if (ModelState.IsValid) { // Добавление нового пользователя в базу var user = new AppUser { UserName = viewModel.UserName, Email = viewModel.Email, Role = viewModel.Role }; var result = await _userManager.CreateAsync(user, viewModel.Password); if (result.Succeeded) { await _userManager.AddToRoleAsync(user, user.Role); await _userImageRepository.AddUserImage(user.UserName, viewModel.Image, _environment); // Добавление счетчика прочитанных новостей await _readedNoticeRepository.AddUserReadedNoticesCounter(user.Id); return(RedirectToAction("Index", new { ajaxLoad = true })); } else { foreach (var item in result.Errors) { ModelState.AddModelError("", item.Description); } // foreach // Подгрузка вспомогательных коллекций viewModel.Roles = await _roleManager.Roles.ToListAsync(); return(PartialView(viewModel)); } // if } //if } catch (DbUpdateException ex) { _message = DbErrorsInterpreter.GetDbUpdateExceptionMessage(ex); } catch { _message = Messages.createErrorMessage; } // try-catch // Подгрузка вспомогательных коллекций viewModel.Roles = await _roleManager.Roles.ToListAsync(); // Отправка push up уведомления при наличии исключения if (_message != null) { if (_message != null) { await _hub.Clients.Client(connectionId).SendAsync("Error", _message); } } return(PartialView(viewModel)); } // Create
public async Task <IActionResult> Edit(EditViewModel viewModel, string connectionId) { //Редактирование элемента в базе try { // Проверка количества загруженных фото if ((viewModel.Images != null ? viewModel.Images.Count : 0) + (viewModel.ProposalImages != null ? viewModel.ProposalImages.Count : 0) > 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 = await _proposalRepository.GetProposal(viewModel.Id); proposal.Location = viewModel.Location; proposal.MachineId = machine.Id; proposal.PurshasePrice = (int)viewModel.PurshasePrice; proposal.SellingPrice = (int)viewModel.SellingPrice; proposal.Comment = viewModel.Comment; await _proposalRepository.EditProposal(proposal); try { await _proposalImageRepository.CheckProposalImages(proposal.Id, viewModel.ProposalImages, _environment); await _proposalImageRepository.AddProposalImages(proposal.Id, viewModel.Images, _environment); } catch { } await _hub.Clients.Client(connectionId).SendAsync("Success", Messages.successUpdateMessage); return(RedirectToAction("Details", new { id = proposal.Id, ajaxLoad = true })); } //if } catch (DbUpdateException ex) { _message = DbErrorsInterpreter.GetDbUpdateExceptionMessage(ex); } catch { _message = Messages.updateErrorMessage; } // try-catch if (_message != null) { await _hub.Clients.Client(connectionId).SendAsync("Error", _message); } return(PartialView(viewModel)); } // Edit
public async Task <IActionResult> Edit(EditViewModel viewModel, string connectionId) { // Индикатор добавления группы для станка bool groupAdded = false; //Редактирование элемента в базе try { //Проверка введенных данных if (ModelState.IsValid) { // Добавление группы станков при отсутствии аналога или уже созданной группы if (viewModel.MachineTypeId == 0) { viewModel.MachineTypeId = await _machineTypeRepository.AddMachineType(viewModel.MachineType); groupAdded = true; } // if // Изменение станка var machine = await _machineRepository.GetMachine(viewModel.Id); machine.Name = viewModel.Name; machine.MachineTypeId = viewModel.MachineTypeId; await _machineRepository.EditMachine(machine); await _machineTypeRepository.CheckEmptyGroups(); await _hub.Clients.Client(connectionId).SendAsync("Success", Messages.successUpdateMessage); return(RedirectToAction("Index", new { ajaxLoad = true })); } //if } catch (DbUpdateException ex) { _message = DbErrorsInterpreter.GetDbUpdateExceptionMessage(ex); } catch { _message = Messages.updateErrorMessage; } // 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)); } // Edit
public async Task <IActionResult> Edit(EditViewModel viewModel, string connectionId) { //Редактирование элемента в базе 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 = await _requisitionRepository.GetRequisition(viewModel.Id); requisition.Phone = viewModel.Phone; requisition.ContactName = viewModel.ContactName; requisition.Location = viewModel.Location; requisition.MachineId = machine.Id; requisition.Comment = viewModel.Comment; await _requisitionRepository.EditRequisition(requisition); await _hub.Clients.Client(connectionId).SendAsync("Success", Messages.successUpdateMessage); return(RedirectToAction("Details", new { id = requisition.Id, ajaxLoad = true })); } //if } catch (DbUpdateException ex) { _message = DbErrorsInterpreter.GetDbUpdateExceptionMessage(ex); } catch { _message = Messages.updateErrorMessage; } // try-catch viewModel.Machines = await _machineRepository.GetMachines(); if (_message != null) { await _hub.Clients.Client(connectionId).SendAsync("Error", _message); } return(PartialView(viewModel)); } // Edit
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 <ActionResult> Edit(EditViewModel viewModel, string connectionId, string previousUrl) { //Редактирование элемента в базе try { //Проверка введенных данных if (ModelState.IsValid) { var user = await _userManager.FindByIdAsync(viewModel.Id); var oldUserName = user.UserName; // старое имя пользователя user.UserName = viewModel.UserName; user.Email = viewModel.Email; user.Role = viewModel.Role; // Обновление пользователя var result = await _userManager.UpdateAsync(user); if (result.Succeeded) { // Роли в которых состоял пользователь var roles = await _userManager.GetRolesAsync(user); if (roles[0] != user.Role) { await _userManager.RemoveFromRolesAsync(user, roles); await _userManager.AddToRoleAsync(user, user.Role); } // if // Проверка замены фотографии пользователя if (viewModel.ImagePath == null) { // Удаление загруженного изображения пользователя try { if (oldUserName != user.UserName) { await _userImageRepository.RemoveUserImage(oldUserName, _environment); } else { await _userImageRepository.RemoveUserImage(user.UserName, _environment); } } catch { } // Загрузка нового изображения пользователя if (viewModel.Image != null) { await _userImageRepository.AddUserImage(user.UserName, viewModel.Image, _environment); } // if } // if // Изменение заявок и преложений при редактировании имени пользователя if (oldUserName != user.UserName) { await _requisitionRepository.EditRequisitions(oldUserName, user.UserName); await _proposalRepository.EditProposal(oldUserName, user.UserName); await _userImageRepository.EditUserImage(oldUserName, user.UserName, _environment); } // if } else { foreach (var item in result.Errors) { ModelState.AddModelError("", item.Description); } // foreach // Подгрузка вспомогательных коллекций viewModel.Roles = await _roleManager.Roles.ToListAsync(); ViewBag.PreviousUrl = previousUrl; return(PartialView(viewModel)); } // if if (User.Identity.Name == oldUserName) { await _signInManager.SignOutAsync(); await _signInManager.SignInAsync(user, true); } // if await _hub.Clients.Client(connectionId).SendAsync("Success", Messages.successUpdateMessage); return(Redirect(previousUrl + $"?ajaxLoad=true")); } // if } catch (DbUpdateException ex) { _message = DbErrorsInterpreter.GetDbUpdateExceptionMessage(ex); } catch { _message = Messages.updateErrorMessage; } // try-catch // Подгрузка вспомогательных коллекций viewModel.Roles = await _roleManager.Roles.ToListAsync(); ViewBag.PreviousUrl = previousUrl; if (_message != null) { await _hub.Clients.Client(connectionId).SendAsync("Error", _message); } return(PartialView(viewModel)); } // Edit
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