コード例 #1
0
        public ActionResult DelegateRepair(int id, DelegateRepairModel delegateRepairModel)
        {
            if (!User.IsInRole("buildingmanager")) { return new HttpUnauthorizedResult(); }

            var maintenance = maintenancesRepository.GetById(id);
            if (maintenance == null) { return HttpNotFound(); }
            if(maintenance.StatusOfMaintenance == StatusOfMaintenance.InProgress) {
                return new HttpStatusCodeResult(405);
            }

            BuildingManager buildingManager = maintenance.BuildingManager;

            if(ModelState.IsValid) {
                var contractor = contractorsRepository.GetById(delegateRepairModel.Contractor);
                if(contractor != null) {
                    try {
                        maintenance.SetContractor(contractor);
                        if (!string.IsNullOrEmpty(delegateRepairModel.Maintenance.Instructions)) {
                            maintenance.Instructions = delegateRepairModel.Maintenance.Instructions;
                        }

                        var url = Url.Action("maintenance", "contractor", new {Id = maintenance.Id}, "http");
                        emailNotifier.NotifyOfMaintenanceDelegation(maintenance, url);
                        return RedirectToAction("details", new { Id = maintenance.Id });

                    } catch (BusinessRulesException ex) {
                        ex.CopyTo(ModelState);
                    }
                } else {
                    ModelState.AddModelError("Contractor", "Niste odabrali izvođača radova.");
                }

            }

            var contractors = contractorsRepository.GetContractorsByRepairService(maintenance.ServiceType, buildingManager);
            delegateRepairModel.Maintenance = Mapper.Map<Maintenance, MaintenanceDetailModel>(maintenance);
            delegateRepairModel.Roles = Roles.GetRolesForUser();
            delegateRepairModel.CurrentRole = "buildingmanager";
            delegateRepairModel.Links = new LinksModel() {
                Id = maintenance.Building.Id,
                Links = NavLinksGenerator.GetManagerLinks(maintenance.Building, "Kvarovi")
            };
            delegateRepairModel.Contractors = Mapper.Map<IList<Contractor>, IList<ContractorModel>>(contractors);

            return View(delegateRepairModel);
        }
コード例 #2
0
        public ActionResult DelegateRepair(int id)
        {
            if(!User.IsInRole("buildingmanager")) { return new HttpUnauthorizedResult(); }

            var maintenance = maintenancesRepository.GetById(id);
            if (maintenance == null) { return HttpNotFound(); }

            BuildingManager buildingManager = maintenance.BuildingManager;
            var contractors = contractorsRepository.GetContractorsByRepairService(maintenance.ServiceType, buildingManager);

            var model = new DelegateRepairModel() {
                Maintenance = Mapper.Map<Maintenance, MaintenanceDetailModel>(maintenance),
                Contractors = Mapper.Map<IList<Contractor>, IList<ContractorModel>>(contractors),
                Roles = Roles.GetRolesForUser(),
                CurrentRole = "buildingmanager",
                Links = new LinksModel() { Id = maintenance.Building.Id, Links = NavLinksGenerator.GetManagerLinks(maintenance.Building, "Kvarovi")}
            };

            return View(model);
        }