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; using Microsoft.EntityFrameworkCore; using cy_scdz.Model; namespace cy_scdz.ViewModel._Admin.FrameworkUserVMs { public partial class FrameworkUserBatchVM : BaseBatchVM { public FrameworkUserBatchVM() { ListVM = new FrameworkUserListVM(); LinkedVM = new FrameworkUser_BatchEdit(); } public override bool DoBatchEdit() { var entityList = DC.Set().AsNoTracking().CheckIDs(Ids.ToList()).ToList(); List todelete = new List(); foreach (var entity in entityList) { if (LinkedVM.SelectedFrameworkUserRolesIDs != null) { var newids = LinkedVM.SelectedFrameworkUserRolesIDs; todelete = new List(); todelete.AddRange(DC.Set().AsNoTracking().Where(x => x.UserCode == entity.ITCode).Select(x => x.ID)); foreach (var item in todelete) { DC.DeleteEntity(new FrameworkUserRole { ID = item }); } foreach (var id in newids) { FrameworkUserRole r = new FrameworkUserRole { RoleCode = id, UserCode = entity.ITCode }; r.SetPropertyValue("TenantCode", LoginUserInfo.CurrentTenant); DC.AddEntity(r); } } if (LinkedVM.SelectedFrameworkUserGroupsIDs != null) { var newids = LinkedVM.SelectedFrameworkUserGroupsIDs; todelete = new List(); todelete.AddRange(DC.Set().AsNoTracking().Where(x => x.UserCode == entity.ITCode).Select(x => x.ID)); foreach (var item in todelete) { DC.DeleteEntity(new FrameworkUserGroup { ID = item }); } foreach (var id in newids) { FrameworkUserGroup r = new FrameworkUserGroup { GroupCode = id, UserCode = entity.ITCode }; r.SetPropertyValue("TenantCode", LoginUserInfo.CurrentTenant); DC.AddEntity(r); } } } return base.DoBatchEdit(); } } /// /// Class to define batch edit fields /// public class FrameworkUser_BatchEdit : BaseVM { public List _AdminFrameworkUserBTempSelected { get; set; } [Display(Name = "_Model._FrameworkUser._Email")] public string Email { get; set; } [Display(Name = "_Model._FrameworkUser._Gender")] public GenderEnum? Gender { get; set; } [Display(Name = "_Model._FrameworkUser._CellPhone")] public string CellPhone { get; set; } [Display(Name = "_Model._FrameworkUser._HomePhone")] public string HomePhone { get; set; } [Display(Name = "_Model._FrameworkUser._Address")] public string Address { get; set; } [Display(Name = "_Model._FrameworkUser._ZipCode")] public string ZipCode { get; set; } [Display(Name = "_Model._FrameworkUser._Role")] public string RoleId { get; set; } [Display(Name = "_Model.FrameworkRole")] public List SelectedFrameworkUserRolesIDs { get; set; } [Display(Name = "_Model._FrameworkUser._Group")] public string GroupId { get; set; } [Display(Name = "_Model.FrameworkGroup")] public List SelectedFrameworkUserGroupsIDs { get; set; } protected override void InitVM() { } } }