// WTM默认页面 Wtm buidin page using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; namespace WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkGroupVMs { public class FrameworkGroupVM : BaseCRUDVM { public override DuplicatedInfo SetDuplicatedCheck() { var rv = CreateFieldsInfo(SimpleField(x => x.GroupName)); rv.AddGroup(SimpleField(x => x.GroupCode)); return rv; } public override void Validate() { if (string.IsNullOrEmpty(Entity.Manager) == false) { var user = DC.Set().Where(x => x.ITCode == Entity.Manager).FirstOrDefault(); if (user == null) { MSD.AddModelError("Entity.Manager", Localizer["Sys.CannotFindUser", Entity.Manager]); } } base.Validate(); } public override void DoAdd() { base.DoAdd(); Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); } public override void DoEdit(bool updateAllFields = false) { base.DoEdit(updateAllFields); Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant).Wait(); } public override async Task DoDeleteAsync() { using (var tran = DC.BeginTransaction()) { try { await base.DoDeleteAsync(); var ur = DC.Set().Where(x => x.GroupCode == Entity.GroupCode); DC.Set().RemoveRange(ur); DC.SaveChanges(); tran.Commit(); await Wtm.RemoveUserCacheByGroup(Entity.GroupCode); await Wtm.RemoveGroupCache(LoginUserInfo.CurrentTenant); } catch { tran.Rollback(); } } } } }