private BalanceCreateViewModel SetCreateBalance(BalanceCreateViewModel model) { var locations = _uow.LocationRepository.Get(); var departments = _uow.DepartmentRepository.Get(); model.LocationNames = locations.Select(item => item.LocationName).ToList(); model.Departments = departments .Where(item => !item.DepartmentName.Equals("Quality Assurance")) .GroupBy(item => item.DepartmentName) .Select(item => item.First()).ToList(); model.SubDepartments = departments .Where(item => !string.IsNullOrEmpty(item.SubDepartment) || !item.DepartmentName.Equals("Quality Assurance")) .ToList(); model.WeightUnits = _uow.UnitRepository.Get().Where(item => item.UnitType.Equals("Weight")).Select(item => item.UnitShorthandName).ToList(); return(model); }
public ActionResult Create([Bind(Include = "BalanceId,DeviceCode,LocationName,BalanceType,DepartmentName,SubDepartmentName,NumberOfDecimals,WeightLimitOne,WeightLimitTwo,WeightLimitThree,NumberOfTestsToVerify")] BalanceCreateViewModel balance, string submit) { var errors = ModelState.Values.SelectMany(v => v.Errors); if (ModelState.IsValid) { var doesDeviceAlreadyExist = _uow.BalanceDeviceRepository.Get().Any(item => item != null && item.DeviceCode.Equals(balance.DeviceCode)); if (doesDeviceAlreadyExist) { ModelState.AddModelError("", "The Device Code provided is not unique. Please try again."); return(View(SetCreateBalance(balance))); } var device = new Device() { AmountLimitOne = balance.WeightLimitOne.ToString(), AmountLimitTwo = balance.WeightLimitTwo.ToString(), AmountLimitThree = balance.WeightLimitThree.ToString(), DeviceCode = balance.DeviceCode, NumberOfDecimals = balance.NumberOfDecimals, Status = "Needs Verification", IsVerified = false, BalanceType = balance.BalanceType, DeviceType = "Balance", NumberOfTestsToVerify = balance.NumberOfTestsToVerify, Department = _uow.DepartmentRepository.Get().Where(item => item.DepartmentName.Equals(balance.DepartmentName) && item.SubDepartment.Equals(balance.SubDepartmentName)).First() }; _uow.BalanceDeviceRepository.Create(device); var result = _uow.Commit(); switch (result) { case CheckModelState.Invalid: ModelState.AddModelError("", "The creation of the balance failed. Please double check all inputs and try again."); return(View(SetCreateBalance(balance))); case CheckModelState.DataError: ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists please contact your system administrator."); return(View(SetCreateBalance(balance))); case CheckModelState.Error: ModelState.AddModelError("", "There was an error. Please try again."); return(View(SetCreateBalance(balance))); case CheckModelState.Valid: if (!string.IsNullOrEmpty(submit) && submit.Equals("Save")) { //save pressed return(RedirectToAction("Index")); } else { //save & new pressed return(RedirectToAction("Create")); } default: ModelState.AddModelError("", "An unknown error occurred."); return(View(SetCreateBalance(balance))); } } return(View(SetCreateBalance(new BalanceCreateViewModel()))); }