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
Example #2
0
        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
Example #3
0
        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