public void CloseOtherOpenedMode(ModeItem currentItem) { foreach (ModeItem modeItem in modeItems) { if (modeItem != currentItem && modeItem.IsDetailVisible) { modeItem.HideModeDetail(); } } }
public async Task <ModeAccessDto> GetModesTreeAsync(int idRole) { List <ModeItem> modes = new List <ModeItem>(); List <int> selected = new List <int>(); int i = 1; foreach (var t in _crmDbContext.typeForm) { var mode = new ModeItem() { Id = i++, ModeId = -1, TypeId = t.Id, IsMode = false, Text = t.DisplayName, ParentId = 0 }; modes.Add(mode); } foreach (var m in _crmDbContext.formModel) { var typeForm = modes.FirstOrDefault(t => t.TypeId == m.TypeFormId); var parent = typeForm != null ? typeForm.Id : 0; var mode = new ModeItem() { Id = i++, ModeId = m.Id, TypeId = -1, IsMode = true, Text = m.Caption, ParentId = parent }; modes.Add(mode); } foreach (var s in _crmDbContext.accessForm.Where(ur => ur.UserRoleId == idRole)) { // if (modes.FirstOrDefault(m => m.ModeId == s.FormModelId) != null) // { //selected.Add((int)s.FormModelId); selected.AddRange(modes.Where(m => m.ModeId == s.FormModelId).Select(el => el.Id)); //} // else // continue; } return(new ModeAccessDto() { Data = modes, Selected = selected }); }
void onChangePage() { if (items.Count == 0) { for (int i = 0; i < Shared.Constants.NUMBER_RENDER; i++) { if ((Global.CurrentPage * Shared.Constants.NUMBER_RENDER) + i < Global.NumberOfMap) { bool isLock = (Global.CurrentPage * Shared.Constants.NUMBER_RENDER) + i > currentLevel; ModeItem item = new ModeItem(Game); Vector2 ir = new Vector2(); ir.X = 106 + (i % (Shared.Constants.NUMBER_RENDER / 2)) * 123; ir.Y = 38 + (int)i / (Shared.Constants.NUMBER_RENDER / 2) * 146; item.onInit(services.SpriteBatch, resourceManager.GetResource<Texture2D>(Shared.Resources.ItemChooseGame), ir, font, (Global.CurrentPage * Shared.Constants.NUMBER_RENDER + i).ToString(), isLock); items.Add(item); dispatcher.AddTarget(item); } } } else { for (int i = 0; i < Shared.Constants.NUMBER_RENDER; i++) { if ((Global.CurrentPage * Shared.Constants.NUMBER_RENDER) + i < Global.NumberOfMap) { items[i].Text = (Global.CurrentPage * Shared.Constants.NUMBER_RENDER + i).ToString(); items[i].IsLock = (Global.CurrentPage * Shared.Constants.NUMBER_RENDER) + i > currentLevel; items[i].Visible = true; } else { items[i].Visible = false; } } } if ((Global.CurrentPage+1) * Shared.Constants.NUMBER_RENDER >= Global.NumberOfMap) btnNext.Visible = false; else btnNext.Visible = true; if (Global.CurrentPage * Shared.Constants.NUMBER_RENDER <= 0) btnPrev.Visible = false; else btnPrev.Visible = true; }