У меня есть программа, в которую я добавляю номер детали, и она отлично работает для 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;
}