コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }