Я создал класс, который использует другой Enum для поля.Когда я создаю объект этого типа класса в моем контроллере, мне нужно знать это поле и использовать его для определения конечного количества перед сохранением объекта в моем контроллере.Он оценивается как логическое значение и сохраняет ноль для всего, кроме Stuff = 0.
Enum
public enum StuffMeasureSystem
{
Stuff = 0,
[Display(Name = "16\" Stuff")]
Stuff16 = 1,
[Display(Name = "24\" Stuff")]
Stuff24 = 2
}
Класс
public class Stuff
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime Created { get; set; }
[JsonIgnore]
public Company Company { get; set; }
public Guid CompanyId { get; set; }
[JsonIgnore]
public ApplicationUser CreatedBy { get; set; }
public string CreatedById { get; set; }
public StuffMeasureSystem MeasureSystem { get; set; }
public double Quantity { get; set; }
public double Quantity_Stuff_16 (double Quantity)
{
return Quantity * (1 / 3);
}
public double Quantity_Stuff_24(double Quantity)
{
return Quantity * .5;
}
public Location Location { get; set; }
public int? LocationId { get; set; }
}
Контроллер
if (ModelState.IsValid)
{
if (stuff.MeasureSystem == StuffMeasureSystem.Stuff16)
{
stuff.Quantity = stuff.Quantity_Stuff_16(stuff.Quantity);
}
else if (stuff.MeasureSystem == StuffMeasureSystem.Stuff24)
{
stuff.Quantity = stuff.Quantity_Stuff_24(stuff.Quantity);
}
else
{
stuff.Quantity = stuff.Quantity;
}
_context.Add(stuff);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}