public override async Task <APIResultVM> Add(GroupAddVM model, Guid?userId = null, bool isCommit = true) { if (model.IsMain) { model.IsMain = false; } var result = await base.Add(model, userId, true); if (Validation.ResultIsNotTrue(result)) { return(result); } if (model.Users != null && model.Users.Count > 0) { foreach (var id in model.Users) { GroupUserAddVM item = new GroupUserAddVM(); item.GroupId = result.RecId.Value; item.UserId = id; var userResult = await groupUserService.Add(item, userId, true); if (Validation.ResultIsNotTrue(userResult)) { return(userResult); } } } return(result); }
public override async Task <APIResultVM> Update(Guid id, GroupUpdateVM model, Guid?userId = null, bool isCommit = true) { if (model.IsMain && Repository.Query().Any(a => a.Id != id && a.IsMain)) { return(APIResult.CreateVM(false, id, AppStatusCode.WRG01005)); } var result = await base.Update(id, model, userId, true); if (Validation.ResultIsNotTrue(result)) { return(result); } if (model.Users != null && model.Users.Count > 0) { foreach (var item in model.Users) { var groupUser = groupUserService.GetById(item); if (groupUser == null) { GroupUserAddVM rec = new GroupUserAddVM(); rec.GroupId = id; rec.UserId = item; var userResult = await groupUserService.Add(rec, userId, true); if (Validation.ResultIsNotTrue(userResult)) { return(userResult); } } } } var removedUsers = groupUserService.Repository.Query().Where(a => a.GroupId == id && (model.Users == null || !model.Users.Any(x => x == a.UserId))).Select(a => a.Id).ToList(); if (removedUsers != null) { foreach (var item in removedUsers) { await groupUserService.Delete(item, userId, true); } } return(result); }