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)); }
public UnitHierarchy SaveUnitHierarchy(UnitHierarchy uh) { if (uh.ParentUnit != null) { BackgroundJob.Enqueue <IOrganizationTasks>(x => x.LuceneUpdateUnitQueueable(uh.ParentUnit.Id)); } if (uh.Unit != null) { BackgroundJob.Enqueue <IOrganizationTasks>(x => x.LuceneUpdateUnitQueueable(uh.Unit.Id)); } return(this.unitHierarchyRepo.SaveOrUpdate(uh)); }
public ActionResult Delete(int currentUnitId, int id) { UnitHierarchy uh = this.orgTasks.GetUnitHierarchy(id); Unit u = this.orgTasks.GetUnit(currentUnitId); if (uh != null && u != null) { this.orgTasks.DeleteUnitHierarchy(uh); return(RedirectToAction("Details", "Units", new { id = currentUnitId })); } else { return(new HttpNotFoundResult()); } }
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()); } }
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)); }
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()); } }
public void DeleteUnitHierarchy(UnitHierarchy uh) { if (uh != null) { if (uh.ParentUnit != null) { uh.ParentUnit.RemoveUnitHierarchy(uh); BackgroundJob.Enqueue <IOrganizationTasks>(x => x.LuceneUpdateUnitQueueable(uh.ParentUnit.Id)); } if (uh.Unit != null) { uh.Unit.RemoveUnitHierarchy(uh); BackgroundJob.Enqueue <IOrganizationTasks>(x => x.LuceneUpdateUnitQueueable(uh.Unit.Id)); } this.unitHierarchyRepo.Delete(uh); } }
public UnitHierarchyViewModel(UnitHierarchy uh) { if (uh != null) { this.Children = new List <UnitHierarchyViewModel>(); this.Commanders = new List <string>(); this.DeputyCommanders = new List <string>(); this.Id = uh.Id; if (uh.Unit != null) { this.UnitId = uh.Unit.Id; this.UnitName = uh.Unit.UnitName; this.NumCareers = uh.Unit.Careers.Count(); foreach (UnitHierarchy child in uh.Unit.UnitHierarchyChildren) { this.Children.Add(new UnitHierarchyViewModel(child)); } this.Commanders = uh.Unit.GetCommanders(false).Select(x => x.Person.Name).Distinct().ToList(); this.DeputyCommanders = uh.Unit.GetDeputyCommanders(false).Select(x => x.Person.Name).Distinct().ToList(); } if (uh.ParentUnit != null) { this.ParentUnitId = uh.ParentUnit.Id; this.ParentUnitName = uh.ParentUnit.UnitName; } if (uh.UnitHierarchyType != null) { this.UnitHierarchyTypeId = uh.UnitHierarchyType.Id; this.UnitHierarchyTypeName = uh.UnitHierarchyType.UnitHierarchyTypeName; } Mapper.Map <UnitHierarchy, UnitHierarchyViewModel>(uh, this); this.AsOfDate = new DateLabel(this.YearAsOf, this.MonthAsOf, this.DayAsOf, false).ToString(); } }