MVC5 Add 1 value работает, но при добавлении нескольких настроек его правильно - PullRequest
0 голосов
/ 18 июня 2019

У меня есть программа, в которую я добавляю номер детали, и она отлично работает для 1 значения. Мне нужно проверить столбец last4numbers, чтобы увидеть, если его 9999, и если нет, я могу добавить его.

У меня есть текстовое поле на мой взгляд, так что вы можете выбрать, сколько раз вам нужно будет добавить этот номер и каждый раз, когда это будет last4numbers + 1.

Пока не будет 9999, я смогу добавить номер детали. У меня есть цикл, который будет принимать это число, чтобы увидеть, сколько раз его нужно добавить.

Я проверяю, если его 9999, и если нет, я не могу добавить, но в моей текущей части его настройки должны быть добавлены, то в следующем цикле мне нужно добавить 1 к значению.

Мой код не настроен правильно, он также автоматически добавит 1 в начале.

Как мне установить и сделать это? Вот что у меня есть:

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult TakeOutPart(PartNumberViewModel model)
        {
            if (ModelState.IsValid)
            {
                var valDescription = "";
                var valUnit = "";
                var valNextNum = Request.Form["txtNextPart"];
                var valGroup = Request.Form["txtjsongroup"];
                var valLast4 = Request.Form["txtjsonlast4"];
                var valAmount = Request.Form["txtNumberNeeded"];

                if(valNextNum == "")
                {
                    if(model.PartBook != null || model.PartBook != "")
                    {
                        int.TryParse(model.PartBook, out int parseId);

                        var book = (from pb in context.PartBooks
                                    where pb.ID == parseId
                                    select pb).FirstOrDefault();

                        if(book != null)
                        {
                            var recordsPNum = (from pn in context.PartNumbers
                                               where pn.PartGroup == book.Series
                                               orderby pn.Last4Number descending
                                               select pn).Take(10).ToList();

                            var recordBiggestPN = recordsPNum.FirstOrDefault();

                            if(int.TryParse(recordBiggestPN.Last4Number, out int last4))
                            {
                                valGroup = recordBiggestPN.PartGroup;
                                var nextNumber = last4 + 1;
                                valLast4 = nextNumber.ToString();
                            }
                            else    /* FIGURE OUT HOW TO GET NEXTNUMBER IF 'NAN' (ex. G41) */
                            {
                                //model.PartGroup = recordBiggestPN.PartGroup;
                                //model.Last4Number = recordBiggestPN.Last4Number;
                                valGroup = recordBiggestPN.PartGroup;
                                valLast4 = recordBiggestPN.Last4Number;
                            }

                            valNextNum = valGroup + "." + valLast4;
                        }
                    }
                    else
                    {
                        //Error Getting PartBook
                        TempData["Error"] = "Couldn't find PartGroup|Series|ParkBook number";
                        return RedirectToAction("TakeOutPart");
                    }
                }

                // Update to other method in future (Whole DROPDOWNLIST [Value/Text])
                if(model.Description != null || model.Description != "")
                {
                    // Currently have 'DESCRIPTION ID' lets change it to TEXT
                    if(int.TryParse(model.Description, out int descID))
                    {
                        valDescription = GetDescriptionNoun(descID);
                    }
                }

                // Update to other method in future (Whole DROPDOWNLIST [Value/Text])
                if(model.Units != null || model.Units != "")
                {
                    // Currently have 'UNIT ID' lets change it to TEXT
                    if(int.TryParse(model.Units, out int unitID))
                    {
                        valUnit = GetUnitsSelection(unitID);
                    }
                }
                //else
                //{
                //    valUnit = null;
                //}

                PartNumber partNumber = new PartNumber
                    {
                        PartGroup = valGroup,                        
                        //PartGroup = model.PartGroup,
                        Last4Number = valLast4,
                        //Last4Number = model.Last4Number,
                        PartNumber1 = valNextNum,

                        DateEntered = model.DateEntered,
                        EnteredBy = model.EnteredBy,
                        SoftwareType = model.SoftwareType,
                        UsedOnAssembly = model.UsedOnAssembly,
                        GlobalPart = model.GlobalPart,
                        Source = model.Source,
                        Manufacturer = model.Manufacturer,
                        ManufacturerPartNumber = model.ManufacturerPartNumber,
                        Description = valDescription,
                        Usage = model.Usage,
                        ReqOnProject = model.RequiredProject,
                        Quantity = model.Quantity,
                        Units = valUnit, // ?? Convert.DBNull.ToString(),
                        MachineTypes = model.MachineTypes,
                        Comment = model.Comments,
                        Released = false
                    };

                if (valLast4 != "9999" || valLast4 != null || valLast4 != "" || !string.IsNullOrEmpty(valLast4))
                {
                    if(valAmount == "1")
                    {
                        if (CheckValidPartNumber(partNumber.PartNumber1))
                        {
                            context.PartNumbers.Add(partNumber);
                            context.SaveChanges();
                            TempData["Success"] = "PartNumber Added Successfully";
                            return RedirectToAction("Index");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Multiples");
                        int counter = Convert.ToInt32(valAmount);
                        int nextLast4 = 0;
                        string nextPartNum = "";

                        for(int i=0; i<=counter; i++)
                        {
                            if (CheckValidPartNumber(partNumber.PartNumber1))
                            {
                                if(int.TryParse(partNumber.Last4Number, out int last4))
                                {

                                }
                                else  /* FIGURE OUT HOW TO GET NEXTNUMBER IF 'NAN' (ex. G41) */
                                {

                                }
                            }
                            else
                            {
                                TempData["Error"] = "This PartNumber already EXISTS in the Database.";
                                break;
                            }
                        }

                    }
                }

            }

            CreatePartBookSelectList();
            CreateEnteredBySelectList();
            CreateSoftwareTypeSelectList();
            CreateSourceSelectList();
            CreateManufacturerSelectList();
            CreateDescriptionSelectList();
            CreateUsageSelectList();
            CreateUnitsSelectList();
            model.ListMachTypes = GetMachineTypes();

            return View(model);
        } 


  public bool CheckValidPartNumber(string partNumber)
        {
            bool isValid = false;

            if(partNumber != null || partNumber != "")
            {
                var newNumber = context.PartNumbers.Where(x => x.PartNumber1.Equals(partNumber)).FirstOrDefault();

                if (newNumber == null)
                {
                    isValid = true;
                }
                else
                {
                    isValid = false;
                    TempData["Error"] = "This PartNumber already EXISTS in the Database.";
                }
            }

            return isValid;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...