예제 #1
0
 public ActionResult CreateChild(int currentUnitId, UnitHierarchyViewModel vm)
 {
     if (ModelState.IsValid)
     {
         UnitHierarchy uh = new UnitHierarchy();
         Mapper.Map(vm, uh);
         uh.ParentUnit        = this.orgTasks.GetUnit(vm.ParentUnitId);
         uh.Unit              = this.orgTasks.GetUnit(vm.UnitId);
         uh.UnitHierarchyType = this.orgTasks.GetUnitHierarchyType(vm.UnitHierarchyTypeId);
         this.orgTasks.SaveUnitHierarchy(uh);
         return(RedirectToAction("Details", "Units", new { id = currentUnitId, area = "Profiling" }));
     }
     return(CreateChild(currentUnitId));
 }
예제 #2
0
        public ActionResult CreateChild(int currentUnitId)
        {
            Unit u = this.orgTasks.GetUnit(currentUnitId);

            if (u != null)
            {
                ViewBag.CurrentUnit = u;
                UnitHierarchyViewModel vm = new UnitHierarchyViewModel();
                vm.ParentUnitId        = u.Id;
                vm.ParentUnitName      = u.UnitName;
                vm.UnitHierarchyTypeId = this.orgTasks.GetUnitHierarchyType(UnitHierarchyType.NAME_HIERARCHY).Id;
                return(View(vm));
            }
            return(new HttpNotFoundResult());
        }
예제 #3
0
        public ActionResult Edit(int currentUnitId, int id)
        {
            UnitHierarchy uh = this.orgTasks.GetUnitHierarchy(id);
            Unit          u  = this.orgTasks.GetUnit(currentUnitId);

            if (uh != null && u != null)
            {
                ViewBag.CurrentUnit = u;
                UnitHierarchyViewModel vm = new UnitHierarchyViewModel(uh);
                vm.PopulateDropDowns(this.orgTasks.GetUnitHierarchyTypes());
                return(View(vm));
            }
            else
            {
                return(new HttpNotFoundResult());
            }
        }
예제 #4
0
 public ActionResult EditNameChange(int currentUnitId, UnitHierarchyViewModel vm)
 {
     if (ModelState.IsValid)
     {
         UnitHierarchy uh = this.orgTasks.GetUnitHierarchy(vm.Id);
         if (uh != null)
         {
             Mapper.Map(vm, uh);
             uh.ParentUnit        = this.orgTasks.GetUnit(vm.ParentUnitId);
             uh.Unit              = this.orgTasks.GetUnit(vm.UnitId);
             uh.UnitHierarchyType = this.orgTasks.GetUnitHierarchyType(vm.UnitHierarchyTypeId);
             this.orgTasks.SaveUnitHierarchy(uh);
             return(RedirectToAction("Details", "Units", new { id = currentUnitId, area = "Profiling" }));
         }
     }
     return(EditNameChange(currentUnitId, vm.Id));
 }
예제 #5
0
        public ActionResult EditNameChange(int currentUnitId, int id)
        {
            UnitHierarchy uh = this.orgTasks.GetUnitHierarchy(id);
            Unit          u  = this.orgTasks.GetUnit(currentUnitId);

            if (uh != null && u != null)
            {
                ViewBag.CurrentUnit = u;
                UnitHierarchyViewModel vm = new UnitHierarchyViewModel(uh);
                vm.UnitHierarchyTypeId = this.orgTasks.GetUnitHierarchyType(UnitHierarchyType.NAME_CHANGED_NAME_TO).Id;
                return(View(vm));
            }
            else
            {
                return(new HttpNotFoundResult());
            }
        }
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value != null)
            {
                UnitHierarchyViewModel vm = (UnitHierarchyViewModel)value;

                // no hierarchy type should allow both units to be the same
                if (vm.ParentUnitId == vm.UnitId)
                {
                    return(new ValidationResult(this.ErrorMessage));
                }

                // don't allow duplicates or reverse relationships if already exists
                if (ServiceLocator.Current.GetInstance <IOrganizationTasks>().GetUnitHierarchy(vm.UnitId, vm.ParentUnitId) != null ||
                    ServiceLocator.Current.GetInstance <IOrganizationTasks>().GetUnitHierarchy(vm.ParentUnitId, vm.UnitId) != null)
                {
                    return(new ValidationResult(this.ErrorMessage));
                }
            }
            return(ValidationResult.Success);
        }