public IActionResult Index() { var model = new UnitsIndexView(); model.Department = _departmentsService.GetDepartmentById(DepartmentId); model.CanUserAddUnit = _limitsService.CanDepartentAddNewUnit(DepartmentId); model.Groups = _departmentGroupsService.GetAllGroupsForDepartment(DepartmentId); model.Units = _unitsService.GetUnitsForDepartment(DepartmentId); model.States = _unitsService.GetAllLatestStatusForUnitsByDepartmentId(DepartmentId); model.UnitStatuses = _customStateService.GetAllActiveUnitStatesForDepartment(DepartmentId); model.UnitCustomStates = new Dictionary <int, CustomState>(); foreach (var unit in model.Units) { var type = _unitsService.GetUnitTypeByName(DepartmentId, unit.Type); if (type != null && type.CustomStatesId.HasValue) { var customStates = _customStateService.GetCustomSateById(type.CustomStatesId.Value); if (customStates != null) { model.UnitCustomStates.Add(unit.UnitId, customStates); } } } return(View(model)); }
public IActionResult Delete(int id) { var state = _customStateService.GetCustomSateById(id); if (state.DepartmentId != DepartmentId) { Unauthorized(); } _customStateService.Delete(state); return(RedirectToAction("Index")); }
public IActionResult GetUnitOptionsDropdown(int unitId) { string buttonHtml = string.Empty; var unit = _unitsService.GetUnitById(unitId); var type = _unitsService.GetUnitTypeByName(DepartmentId, unit.Type); if (type != null && type.CustomStatesId.HasValue) { var customStates = _customStateService.GetCustomSateById(type.CustomStatesId.Value); var activeCalls = _callsService.GetActiveCallsByDepartment(DepartmentId); var stations = _departmentGroupsService.GetAllStationGroupsForDepartment(DepartmentId); StringBuilder sb = new StringBuilder(); sb.Append($"<ul class='dropdown-menu multi-level unitStateList_{unitId}'>"); foreach (var state in customStates.GetActiveDetails().OrderBy(x => x.Order)) { if (state.DetailType == (int)CustomStateDetailTypes.None) { sb.Append("<li><a style='color:" + state.ButtonColor + ";' href='/User/Units/SetUnitState?unitId=" + unitId + "&stateType=" + state.CustomStateDetailId + "'>" + state.ButtonText + "</a></li>"); } else if (state.DetailType == (int)CustomStateDetailTypes.Calls) { sb.Append($"<li class='dropdown-submenu'><a style='color:{state.ButtonColor};' tabindex='-1' href='#'>{state.ButtonText}</a>"); sb.Append($"<ul class='dropdown-menu unitStateList_{unitId}'>"); sb.Append($"<li><a href='/User/Units/SetUnitState?unitId={unitId}&stateType={state.CustomStateDetailId}'>{state.ButtonText}</a></li>"); sb.Append("<li class='divider'></li>"); sb.Append("<li class='dropdown-header'>Calls</li>"); foreach (var call in activeCalls) { sb.Append($"<li><a href='/User/Units/SetUnitStateWithDest?unitId={unitId}&stateType={state.CustomStateDetailId}&type=2&destination={call.CallId}'>{call.GetIdentifier()}:{call.Name}</a></li>"); } sb.Append("</ul>"); } else if (state.DetailType == (int)CustomStateDetailTypes.Stations) { sb.Append($"<li class='dropdown-submenu'><a style='color:{state.ButtonColor};' tabindex='-1' href='#'>{state.ButtonText}</a>"); sb.Append($"<ul class='dropdown-menu unitStateList_{unitId}'>"); sb.Append($"<li><a href='/User/Units/SetUnitState?unitId={unitId}&stateType={state.CustomStateDetailId}'>{state.ButtonText}</a></li>"); sb.Append("<li class='divider'></li>"); sb.Append("<li class='dropdown-header'>Stations</li>"); foreach (var station in stations) { sb.Append("<li><a href='/User/Units/SetUnitStateWithDest?unitId=" + unitId + "&stateType=" + state.CustomStateDetailId + "&type=2&destination=" + station.DepartmentGroupId + "'>" + station.Name + "</a></li>"); } sb.Append("</ul>"); } else if (state.DetailType == (int)CustomStateDetailTypes.CallsAndStations) { sb.Append($"<li class='dropdown-submenu'><a style='color:{state.ButtonColor};' tabindex='-1' href='#'>{state.ButtonText}</a>"); sb.Append($"<ul class='dropdown-menu unitStateList_{unitId}'>"); sb.Append($"<li><a href='/User/Units/SetUnitState?unitId={unitId}&stateType={state.CustomStateDetailId}'>{state.ButtonText}</a></li>"); sb.Append("<li class='divider'></li>"); sb.Append("<li class='dropdown-header'>Calls</li>"); foreach (var call in activeCalls) { sb.Append($"<li><a href='/User/Units/SetUnitStateWithDest?unitId={unitId}&stateType={state.CustomStateDetailId}&type=2&destination={call.CallId}'>{call.GetIdentifier()}:{call.Name}</a></li>"); } sb.Append("<li class='dropdown-header'>Stations</li>"); foreach (var station in stations) { sb.Append($"<li><a href='/User/Units/SetUnitStateWithDest?unitId={unitId}&stateType={state.CustomStateDetailId}&type=2&destination={station.DepartmentGroupId}'>{station.Name}</a></li>"); } sb.Append("</ul>"); } } sb.Append("</ul>"); buttonHtml = sb.ToString(); } if (String.IsNullOrWhiteSpace(buttonHtml)) { StringBuilder sb = new StringBuilder(); sb.Append($"<ul class='dropdown-menu unitStateList_{unitId}'>"); sb.Append($"<li><a href='/User/Units/SetUnitState?unitId={unitId}&stateType=0'>Available</a></li>"); sb.Append($"<li><a href='/User/Units/SetUnitState?unitId={unitId}&stateType=3'>Committed</a></li>"); sb.Append($"<li><a href='/User/Units/SetUnitState?unitId={unitId}&stateType=1'>Delayed</a></li>"); sb.Append($"<li><a href='/User/Units/SetUnitState?unitId={unitId}&stateType=4'>Out Of Service</a></li>"); sb.Append($"<li><a href='/User/Units/SetUnitState?unitId={unitId}&stateType=2'>Unavailable</a></li>"); sb.Append("</ul>"); buttonHtml = sb.ToString(); } return(Content(buttonHtml)); }