示例#1
0
        public void TestDistributeExpiredPackages()
        {
            IPackageRepository  packageRepository  = new MockPackageRepository();
            IEmployeeRepository employeeRepository = new MockEmployeeRepository();
            var controller = new PackageController(employeeRepository, packageRepository);

            Package package = packageRepository.GetPackageWidthBarCode("65985438786");

            List <SelectedPackage> spList = new List <SelectedPackage>();

            SelectedPackage sp = new SelectedPackage();

            sp.BarCode                 = package.BarCode;
            sp.CentreId                = package.CurrentLocation.CentreId;
            sp.ExpirationDate          = package.ExpirationDate;
            sp.PackageId               = package.PackageId;
            sp.PackageTypeId           = package.PackageType.PackageTypeId;
            sp.CurrentEmployeeUserName = "******";

            spList.Add(sp);

            var model = new PackageDistributeViewModel()
            {
                SelectedPackages = spList,
            };

            var result = controller.DistributeSave(model) as ViewResult;

            var modelReturned = result.Model as PackageDistributeViewModel;

            Assert.AreEqual("DistributeComplete", result.ViewName);
            Assert.AreEqual(PackageResult.PackageHasExpired, modelReturned.SelectedPackages[0].ProcessResultMessage);
        }
示例#2
0
        public ActionResult Distribute()
        {
            var model = new PackageDistributeViewModel();

            model.SelectedPackages = new List <SelectedPackage>();

            return(View(model));
        }
示例#3
0
        public ActionResult DistributeRemove(PackageDistributeViewModel model)
        {
            string buttonValue = HttpContext.Request["action"];

            var operations = new DistributeSelectedBarCodesOperations();

            operations.Remove(model, buttonValue);

            return(View("Distribute", model));
        }
示例#4
0
        public ActionResult DistributeAdd(PackageDistributeViewModel model)
        {
            var operations = new DistributeSelectedBarCodesOperations();

            var result = operations.Add(model);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", result.ErrorMessage);
            }

            return(View("Distribute", model));
        }
示例#5
0
        public ActionResult DistributeSave(PackageDistributeViewModel model)
        {
            var packageService  = GetPackageService();
            var employeeService = GetEmployeeService();

            Result result = new Result();

            if (ModelState.IsValid && model.SelectedPackages != null && model.SelectedPackages.Any())
            {
                foreach (var package in model.SelectedPackages)
                {
                    DistributionCentre  selectedCentre = employeeService.GetDistributionCentre(package.CentreId);
                    StandardPackageType spt            = packageService.GetStandardPackageType(package.PackageTypeId);
                    Employee            employee       = employeeService.GetEmployeeByUserName(package.CurrentEmployeeUserName);

                    result = packageService.Distribute(package.BarCode, selectedCentre, employee, package.ExpirationDate, spt, package.PackageId);
                    if (result.Success)
                    {
                        package.ProcessResultMessage = "Succeeded";
                    }
                    else
                    {
                        package.ProcessResultMessage = result.ErrorMessage;
                    }
                }

                return(View("DistributeComplete", model));
            }

            if (model.SelectedPackages == null || !model.SelectedPackages.Any())
            {
                model.SelectedPackages = new List <SelectedPackage>();
                ModelState.AddModelError("", PackageResult.NoBarCodesSelected);
            }
            return(View("Distribute", model));
        }
示例#6
0
 public ActionResult DistributeClose(PackageDistributeViewModel model)
 {
     return(RedirectToAction("Index", "Home"));
 }