Example #1
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            StockReagent stockreagent = _uow.StockReagentRepository.Get(id);

            if (stockreagent == null)
            {
                return(HttpNotFound());
            }

            StockReagentEditViewModel model = new StockReagentEditViewModel()
            {
                ReagentId             = stockreagent.ReagentId,
                Grade                 = stockreagent.Grade,
                GradeAdditionalNotes  = stockreagent.GradeAdditionalNotes,
                LotNumber             = stockreagent.LotNumber,
                ReagentName           = stockreagent.ReagentName,
                IdCode                = stockreagent.IdCode,
                ExpiryDate            = stockreagent.ExpiryDate,
                CertificateOfAnalysis = stockreagent.InventoryItems.Where(x => x.StockReagent.ReagentId == stockreagent.ReagentId).Select(x => x.CertificatesOfAnalysis.OrderBy(y => y.DateAdded).First()).First(),
                MSDS = stockreagent.InventoryItems.Where(x => x.StockReagent.ReagentId == stockreagent.ReagentId).Select(x => x.MSDS.OrderBy(y => y.DateAdded).First()).First()
            };

            foreach (var item in stockreagent.InventoryItems)
            {
                model.SupplierName = item.SupplierName;
            }
            return(View(model));
        }
Example #2
0
        public ActionResult Topup(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            StockReagent stockreagent = _uow.StockReagentRepository.Get(id);

            if (stockreagent == null)
            {
                return(HttpNotFound());
            }

            var devices        = _uow.DeviceRepository.Get().ToList();
            var userDepartment = _uow.GetUserDepartment();

            var vReagent = new StockReagentTopUpViewModel()
            {
                ReagentId            = stockreagent.ReagentId,
                LotNumber            = stockreagent.LotNumber,
                IdCode               = stockreagent.IdCode,
                ReagentName          = stockreagent.ReagentName,
                LastModifiedBy       = stockreagent.LastModifiedBy,
                Grade                = stockreagent.Grade,
                GradeAdditionalNotes = stockreagent.GradeAdditionalNotes,
                DateReceived         = stockreagent.DateReceived,
                DateCreated          = stockreagent.DateCreated,
                CreatedBy            = stockreagent.CreatedBy,
                ExpiryDate           = stockreagent.ExpiryDate,
                DateModified         = stockreagent.DateModified,
                BalanceDevices       = devices.Where(item => item.DeviceType.Equals("Balance") && item.Department == userDepartment && !item.IsArchived).ToList(),
                VolumetricDevices    = devices.Where(item => item.DeviceType.Equals("Volumetric") && item.Department == userDepartment && !item.IsArchived).ToList()
            };

            foreach (var invItem in stockreagent.InventoryItems)
            {
                if (stockreagent.ReagentId == invItem.StockReagent.ReagentId)
                {
                    vReagent.CatalogueCode         = invItem.CatalogueCode;
                    vReagent.CertificateOfAnalysis = invItem.CertificatesOfAnalysis.Where(x => x.InventoryItem.InventoryItemId == invItem.InventoryItemId).First();
                    vReagent.MSDS                      = invItem.MSDS.Where(x => x.InventoryItem.InventoryItemId == invItem.InventoryItemId).First();
                    vReagent.UsedFor                   = invItem.UsedFor;
                    vReagent.Department                = invItem.Department;
                    vReagent.CatalogueCode             = invItem.CatalogueCode;
                    vReagent.AllCertificatesOfAnalysis = invItem.CertificatesOfAnalysis.OrderByDescending(x => x.DateAdded).Where(x => x.InventoryItem.InventoryItemId == invItem.InventoryItemId).ToList();
                    vReagent.MSDSNotes                 = invItem.MSDS.Where(x => x.InventoryItem.InventoryItemId == invItem.InventoryItemId).First().MSDSNotes;
                    vReagent.SupplierName              = invItem.SupplierName;
                    vReagent.NumberOfBottles           = invItem.NumberOfBottles;
                    vReagent.InitialAmount             = invItem.InitialAmount == null ? invItem.InitialAmount = "N/A" : invItem.InitialAmount.Contains("Other") ? invItem.InitialAmount + " (" + invItem.OtherUnitExplained + ")" : invItem.InitialAmount;
                }
            }
            return(View(vReagent));
        }
Example #3
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StockReagent stockreagent = _uow.StockReagentRepository.Get(id);

            if (stockreagent == null)
            {
                return(HttpNotFound());
            }

            _uow.Commit();
            return(View(stockreagent));
        }
Example #4
0
        public ActionResult Details(int?id)
        {
            if (Request.UrlReferrer == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }
            else if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (Request.UrlReferrer.AbsolutePath.Contains("IntermediateStandard"))
            {
                ViewBag.ReturnUrl = Request.UrlReferrer.AbsolutePath;
            }

            StockReagent reagent    = _uow.StockReagentRepository.Get(id);
            var          deviceRepo = _uow.DeviceRepository;

            if (reagent == null)
            {
                return(HttpNotFound());
            }

            var vReagent = new StockReagentDetailsViewModel()
            {
                ReagentId            = reagent.ReagentId,
                LotNumber            = reagent.LotNumber,
                IdCode               = reagent.IdCode,
                ReagentName          = reagent.ReagentName,
                LastModifiedBy       = reagent.LastModifiedBy,
                Grade                = reagent.Grade,
                GradeAdditionalNotes = reagent.GradeAdditionalNotes,
                DateReceived         = reagent.DateReceived,
                DateCreated          = reagent.DateCreated,
                CreatedBy            = reagent.CreatedBy,
                ExpiryDate           = reagent.ExpiryDate,
                DateModified         = reagent.DateModified,
                DateOpened           = reagent.DateOpened
            };

            foreach (var invItem in reagent.InventoryItems)
            {
                if (reagent.ReagentId == invItem.StockReagent.ReagentId)
                {
                    vReagent.CatalogueCode         = invItem.CatalogueCode;
                    vReagent.CertificateOfAnalysis = invItem.CertificatesOfAnalysis.Where(x => x.InventoryItem.InventoryItemId == invItem.InventoryItemId).First();
                    vReagent.MSDS                      = invItem.MSDS.Where(x => x.InventoryItem.InventoryItemId == invItem.InventoryItemId).First();
                    vReagent.UsedFor                   = invItem.UsedFor;
                    vReagent.Department                = invItem.Department;
                    vReagent.CatalogueCode             = invItem.CatalogueCode;
                    vReagent.AllCertificatesOfAnalysis = invItem.CertificatesOfAnalysis.OrderByDescending(x => x.DateAdded).Where(x => x.InventoryItem.InventoryItemId == invItem.InventoryItemId).ToList();
                    vReagent.MSDSNotes                 = invItem.MSDS.Where(x => x.InventoryItem.InventoryItemId == invItem.InventoryItemId).First().MSDSNotes;
                    vReagent.IsExpired                 = invItem.StockReagent.ExpiryDate < DateTime.Today;
                    vReagent.IsExpiring                = invItem.StockReagent.ExpiryDate < DateTime.Today.AddDays(30) && !(invItem.StockReagent.ExpiryDate < DateTime.Today);
                    vReagent.SupplierName              = invItem.SupplierName;
                    vReagent.NumberOfBottles           = invItem.NumberOfBottles;
                    vReagent.InitialAmount             = invItem.InitialAmount.Contains("Other") ? invItem.InitialAmount + " (" + invItem.OtherUnitExplained + ")" : invItem.InitialAmount;
                    vReagent.DeviceOne                 = invItem.FirstDeviceUsed == null ? null : deviceRepo.Get().Where(item => item == invItem.FirstDeviceUsed).First();
                    vReagent.DeviceTwo                 = invItem.SecondDeviceUsed == null ? null : deviceRepo.Get().Where(item => item == invItem.SecondDeviceUsed).First();
                }
            }
            return(View(vReagent));
        }
Example #5
0
        public ActionResult Edit([Bind(Include = "ReagentId,LotNumber,ExpiryDate,SupplierName,ReagentName,IdCode,Grade,GradeAdditionalNotes")] StockReagentEditViewModel stockreagent, HttpPostedFileBase uploadCofA, HttpPostedFileBase uploadMSDS)
        {
            var errors = ModelState.Values.SelectMany(v => v.Errors);

            if (ModelState.IsValid)
            {
                var user    = _uow.GetCurrentUser();
                var invRepo = _uow.InventoryItemRepository;

                InventoryItem invItem = invRepo.Get()
                                        .Where(item => item.StockReagent != null && item.StockReagent.ReagentId == stockreagent.ReagentId)
                                        .FirstOrDefault();

                StockReagent updateReagent = invItem.StockReagent;
                updateReagent.LotNumber            = stockreagent.LotNumber;
                updateReagent.LastModifiedBy       = user.UserName;
                updateReagent.Grade                = stockreagent.Grade;
                updateReagent.GradeAdditionalNotes = stockreagent.GradeAdditionalNotes;
                updateReagent.ExpiryDate           = stockreagent.ExpiryDate;
                updateReagent.DateModified         = DateTime.Today;
                updateReagent.ReagentName          = stockreagent.ReagentName;

                _uow.StockReagentRepository.Update(updateReagent);
                //_uow.Commit();

                if (uploadCofA != null)
                {
                    var cofa = new CertificateOfAnalysis()
                    {
                        FileName    = uploadCofA.FileName,
                        ContentType = uploadCofA.ContentType,
                        DateAdded   = DateTime.Today
                    };

                    using (var reader = new System.IO.BinaryReader(uploadCofA.InputStream)) {
                        cofa.Content = reader.ReadBytes(uploadCofA.ContentLength);
                    }
                    stockreagent.CertificateOfAnalysis = cofa;

                    //add certificate analysis
                    invItem.CertificatesOfAnalysis.Add(cofa);
                }
                if (uploadMSDS != null)
                {
                    var msds = new MSDS()
                    {
                        FileName    = uploadMSDS.FileName,
                        ContentType = uploadMSDS.ContentType,
                        DateAdded   = DateTime.Today
                    };
                    using (var reader = new System.IO.BinaryReader(uploadMSDS.InputStream)) {
                        msds.Content = reader.ReadBytes(uploadMSDS.ContentLength);
                    }
                    stockreagent.MSDS = msds;

                    var msdsRepo = new MSDSRepository();

                    var oldSDS = msdsRepo.Get()
                                 .Where(item => item.InventoryItem.StockReagent != null && item.InventoryItem.StockReagent.ReagentId == stockreagent.ReagentId)
                                 .First();

                    oldSDS.Content     = msds.Content;
                    oldSDS.FileName    = msds.FileName;
                    oldSDS.ContentType = msds.ContentType;
                    oldSDS.DateAdded   = DateTime.Today;

                    msdsRepo.Update(oldSDS);
                }

                invItem.SupplierName = stockreagent.SupplierName;
                invRepo.Update(invItem);
                _uow.Commit();
                return(RedirectToAction("Details", new { id = stockreagent.ReagentId }));
            }
            return(View(stockreagent));
        }
Example #6
0
        public ActionResult Topup([Bind(Include = "ReagentId,NewMSDSNotes,NewLotNumber,NewExpiryDate,NewDateReceived,IsExpiryDateBasedOnDays,DaysUntilExpired,CatalogueCode")]
                                  StockReagentTopUpViewModel model, HttpPostedFileBase uploadCofA, HttpPostedFileBase uploadMSDS)
        {
            var reagent = _uow.StockReagentRepository.Get(model.ReagentId);

            if (reagent == null)
            {
                return(HttpNotFound());
            }

            if (!ModelState.IsValid)
            {
                //handle error
                var errors = ModelState.Values.SelectMany(v => v.Errors);
                return(View(SetTopupReagent(model, reagent)));
            }

            var user       = _uow.GetCurrentUser();
            var invRepo    = _uow.InventoryItemRepository;
            var department = user.Department;
            var numOfItems = invRepo.Get().Count();

            model.NumberOfBottles = reagent.InventoryItems.Where(item => item.CatalogueCode.Equals(reagent.CatalogueCode)).First().NumberOfBottles;

            //upload CofA and MSDS
            if (uploadCofA != null)
            {
                var cofa = new CertificateOfAnalysis()
                {
                    FileName    = uploadCofA.FileName,
                    ContentType = uploadCofA.ContentType,
                    DateAdded   = DateTime.Today
                };
                using (var reader = new System.IO.BinaryReader(uploadCofA.InputStream)) {
                    cofa.Content = reader.ReadBytes(uploadCofA.ContentLength);
                }
                //model.CertificateOfAnalysis = cofa;
                reagent.InventoryItems.Where(item => item.CatalogueCode.Equals(reagent.CatalogueCode)).First().CertificatesOfAnalysis.Add(cofa);
            }

            if (uploadMSDS != null)
            {
                var msds = new MSDS()
                {
                    FileName    = uploadMSDS.FileName,
                    ContentType = uploadMSDS.ContentType,
                    DateAdded   = DateTime.Today,
                    MSDSNotes   = model.MSDSNotes
                };
                using (var reader = new System.IO.BinaryReader(uploadMSDS.InputStream)) {
                    msds.Content = reader.ReadBytes(uploadMSDS.ContentLength);
                }
                //model.MSDS = msds;
                //reagent.InventoryItems.Where(item => item.CatalogueCode.Equals(model.CatalogueCode)).First().MSDS.Add(msds);

                var msdsRepo = _uow.MSDSRepository;

                var oldSDS = msdsRepo.Get()
                             .Where(item => item.InventoryItem.StockReagent != null && item.InventoryItem.StockReagent.CatalogueCode == reagent.CatalogueCode)
                             .First();

                oldSDS.Content     = msds.Content;
                oldSDS.FileName    = msds.FileName;
                oldSDS.ContentType = msds.ContentType;
                oldSDS.DateAdded   = DateTime.Today;

                msdsRepo.Update(oldSDS);
            }

            //write record(s) to the db
            var result = CheckModelState.Invalid;//default to invalid to expect the worst
            //set new propeties to create new entity based on old
            StockReagent newReagent = null;

            if (model.NumberOfBottles > 1)
            {
                for (int i = 1; i <= model.NumberOfBottles; i++)
                {
                    newReagent = new StockReagent()
                    {
                        ExpiryDate           = model.NewExpiryDate,
                        IdCode               = department.Location.LocationCode + "-" + (numOfItems + 1) + "-" + model.NewLotNumber + "/" + i,//append number of bottles
                        LotNumber            = model.NewLotNumber,
                        DateCreated          = DateTime.Today,
                        CreatedBy            = user.UserName,
                        CatalogueCode        = reagent.CatalogueCode,
                        Grade                = reagent.Grade,
                        GradeAdditionalNotes = reagent.GradeAdditionalNotes,
                        DateModified         = null,
                        DaysUntilExpired     = model.DaysUntilExpired,
                        LastModifiedBy       = null,
                        ReagentName          = reagent.ReagentName,
                        //InventoryItems = reagent.InventoryItems,
                        DateOpened   = null,
                        DateReceived = model.NewDateReceived
                    };
                    //reagent.InventoryItems.Add(reagent.InventoryItems.Where(x => x.CatalogueCode.Equals(model.CatalogueCode)).First());
                    _uow.StockReagentRepository.Create(newReagent);
                    result = _uow.Commit();
                    //creation wasn't successful - break from loop and let switch statement handle the problem
                    if (result != CheckModelState.Valid)
                    {
                        break;
                    }
                }
            }
            else
            {
                newReagent = new StockReagent()
                {
                    ExpiryDate           = model.NewExpiryDate,
                    IdCode               = department.Location.LocationCode + "-" + (numOfItems + 1) + "-" + model.NewLotNumber,//only 1 bottle, no need to concatenate
                    LotNumber            = model.NewLotNumber,
                    DateCreated          = DateTime.Today,
                    CreatedBy            = user.UserName,
                    CatalogueCode        = reagent.CatalogueCode,
                    Grade                = reagent.Grade,
                    GradeAdditionalNotes = reagent.GradeAdditionalNotes,
                    DateModified         = null,
                    DaysUntilExpired     = model.DaysUntilExpired,
                    LastModifiedBy       = null,
                    ReagentName          = reagent.ReagentName,
                    InventoryItems       = reagent.InventoryItems,
                    DateOpened           = null,
                    DateReceived         = model.NewDateReceived
                };

                //reagent.InventoryItems.Add(inventoryItem);
                _uow.StockReagentRepository.Create(newReagent);
                result = _uow.Commit();
            }


            switch (result)
            {
            case CheckModelState.Invalid:
                ModelState.AddModelError("", "The creation of " + reagent.ReagentName + " failed. Please double check all inputs and try again.");
                return(View(SetTopupReagent(model, reagent)));

            case CheckModelState.DataError:
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists please contact your system administrator.");
                return(View(SetTopupReagent(model, reagent)));

            case CheckModelState.Error:
                ModelState.AddModelError("", "There was an error. Please try again.");
                return(View(SetTopupReagent(model, reagent)));

            case CheckModelState.Valid:
                //save pressed
                return(RedirectToAction("Index"));

            default:
                ModelState.AddModelError("", "An unknown error occurred.");
                return(View(SetTopupReagent(model, reagent)));
            }
        }
Example #7
0
        public ActionResult Create([Bind(Include = "CatalogueCode,MSDSNotes,SupplierName,ReagentName,StorageRequirements,Grade,UsedFor,LotNumber,GradeAdditionalNotes,NumberOfBottles,ExpiryDate,InitialAmount,DateReceived,IsExpiryDateBasedOnDays,DaysUntilExpired,OtherUnitExplained")]
                                   StockReagentCreateViewModel model, string[] Unit, HttpPostedFileBase uploadCofA, HttpPostedFileBase uploadMSDS, string submit)
        {
            //model isn't valid, return to the form
            if (!ModelState.IsValid)
            {
                return(View(SetStockReagent(model)));
            }

            var invRepo = _uow.InventoryItemRepository;

            //catalogue code must be unique - let's verify
            bool doesCatalogueCodeExist = invRepo.Get()
                                          .Any(item => item.CatalogueCode != null && item.CatalogueCode.Equals(model.CatalogueCode));

            if (doesCatalogueCodeExist)
            {
                ModelState.AddModelError("", "The Catalogue Code provided is not unique. If the Catalogue Code provided is in fact correct, add the item as a new Lot Number under the existing Catalogue Code.");
                return(View(SetStockReagent(model)));
            }

            //last line of defense for number of bottles
            if (model.NumberOfBottles == 0)
            {
                model.NumberOfBottles = 1;
            }

            model.InitialAmountUnits = Unit[0];

            if (Unit.Length > 1)
            {
                model.InitialAmountUnits += "/" + Unit[1];
            }

            var devicesUsed = Request.Form["Devices"];
            var deviceRepo  = _uow.DeviceRepository;


            if (devicesUsed == null)
            {
                ModelState.AddModelError("", "You must select a device that was used.");
                return(View(SetStockReagent(model)));
            }

            if (devicesUsed.Contains(","))
            {
                model.DeviceOne = deviceRepo.Get().Where(item => item.DeviceCode.Equals(devicesUsed.Split(',')[0])).FirstOrDefault();
                model.DeviceTwo = deviceRepo.Get().Where(item => item.DeviceCode.Equals(devicesUsed.Split(',')[1])).FirstOrDefault();
            }
            else
            {
                model.DeviceOne = deviceRepo.Get().Where(item => item.DeviceCode.Equals(devicesUsed.Split(',')[0])).FirstOrDefault();
            }

            var user       = _uow.GetCurrentUser();
            var numOfItems = invRepo.Get().Count();

            if (uploadCofA != null)
            {
                var cofa = new CertificateOfAnalysis()
                {
                    FileName    = uploadCofA.FileName,
                    ContentType = uploadCofA.ContentType,
                    DateAdded   = DateTime.Today
                };
                using (var reader = new System.IO.BinaryReader(uploadCofA.InputStream)) {
                    cofa.Content = reader.ReadBytes(uploadCofA.ContentLength);
                }
                model.CertificateOfAnalysis = cofa;
            }

            if (uploadMSDS != null)
            {
                var msds = new MSDS()
                {
                    FileName    = uploadMSDS.FileName,
                    ContentType = uploadMSDS.ContentType,
                    DateAdded   = DateTime.Today,
                    MSDSNotes   = model.MSDSNotes
                };
                using (var reader = new System.IO.BinaryReader(uploadMSDS.InputStream)) {
                    msds.Content = reader.ReadBytes(uploadMSDS.ContentLength);
                }
                model.MSDS = msds;
            }

            InventoryItem inventoryItem = new InventoryItem()
            {
                CatalogueCode       = model.CatalogueCode.ToUpper(),
                Department          = user.Department,
                UsedFor             = model.UsedFor,
                Type                = "Reagent",
                StorageRequirements = model.StorageRequirements,
                SupplierName        = model.SupplierName,
                NumberOfBottles     = model.NumberOfBottles,
                InitialAmount       = model.InitialAmount.ToString() + " " + model.InitialAmountUnits,
                OtherUnitExplained  = model.OtherUnitExplained,
                FirstDeviceUsed     = model.DeviceOne,
                SecondDeviceUsed    = model.DeviceTwo
            };

            inventoryItem.MSDS.Add(model.MSDS);
            inventoryItem.CertificatesOfAnalysis.Add(model.CertificateOfAnalysis);
            //getting the enum result

            //CheckModelState result = CheckModelState.Invalid;//default to invalid to expect the worst
            StockReagent reagent = new StockReagent()
            {
                LotNumber            = model.LotNumber,
                IdCode               = user.Department.Location.LocationCode + "-" + (numOfItems + 1) + "-" + model.LotNumber + "/" + model.NumberOfBottles,//append number of bottles
                ReagentName          = model.ReagentName,
                Grade                = model.Grade,
                GradeAdditionalNotes = model.GradeAdditionalNotes,
                DateReceived         = model.DateReceived,
                DateOpened           = null,
                DaysUntilExpired     = model.DaysUntilExpired,
                ExpiryDate           = model.ExpiryDate,
                DateCreated          = DateTime.Today,
                CreatedBy            = user.UserName,
                DateModified         = null,
                CatalogueCode        = model.CatalogueCode.ToUpper()
            };

            reagent.InventoryItems.Add(inventoryItem);
            _uow.StockReagentRepository.Create(reagent);

            var result = _uow.Commit();

            //if (model.NumberOfBottles > 1) {
            //    for (int i = 1; i <= model.NumberOfBottles; i++) {
            //        reagent = new StockReagent() {
            //            LotNumber = model.LotNumber,
            //            IdCode = department.Location.LocationCode + "-" + (numOfItems + 1) + "-" + model.LotNumber + "/" + i,//append number of bottles
            //            ReagentName = model.ReagentName,
            //            Grade = model.Grade,
            //            GradeAdditionalNotes = model.GradeAdditionalNotes,
            //            DateReceived = model.DateReceived,
            //            DateOpened = null,
            //            DaysUntilExpired = model.DaysUntilExpired,
            //            ExpiryDate = model.ExpiryDate,
            //            DateCreated = DateTime.Today,
            //            CreatedBy = user.UserName,
            //            DateModified = null,
            //            CatalogueCode = model.CatalogueCode
            //        };

            //        reagent.InventoryItems.Add(inventoryItem);
            //        result = repo.Create(reagent);

            //        //creation wasn't successful - break from loop and let switch statement handle the problem
            //        if (result != CheckModelState.Valid) { break; }
            //    }
            //} else {
            //    reagent = new StockReagent() {
            //        LotNumber = model.LotNumber,
            //        IdCode = department.Location.LocationCode + "-" + (numOfItems + 1) + "-" + model.LotNumber,//only 1 bottle, no need to concatenate
            //        ReagentName = model.ReagentName,
            //        Grade = model.Grade,
            //        GradeAdditionalNotes = model.GradeAdditionalNotes,
            //        DateReceived = model.DateReceived,
            //        DateOpened = null,
            //        DaysUntilExpired = model.DaysUntilExpired,
            //        ExpiryDate = model.ExpiryDate,
            //        DateCreated = DateTime.Today,
            //        CreatedBy = user.UserName,
            //        DateModified = null,
            //        CatalogueCode = model.CatalogueCode
            //    };

            //    reagent.InventoryItems.Add(inventoryItem);
            //    result = repo.Create(reagent);
            //}


            switch (result)
            {
            case CheckModelState.Invalid:
                ModelState.AddModelError("", "The creation of " + reagent.ReagentName + " failed. Please double check all inputs and try again.");
                return(View(SetStockReagent(model)));

            case CheckModelState.DataError:
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists please contact your system administrator.");
                return(View(SetStockReagent(model)));

            case CheckModelState.Error:
                ModelState.AddModelError("", "There was an error. Please try again.");
                return(View(SetStockReagent(model)));

            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(SetStockReagent(model)));
            }
        }