Exemple #1
0
        public async Task <IActionResult> Post([FromBody] MemberRegistryCreateModel model)
        {
            var accountMicroService = new AccountMicroService(_AppConfig.APIGatewayServer);
            var inviteUser          = await accountMicroService.GetById(model.Inviter);

            if (inviteUser == null)
            {
                ModelState.AddModelError("Inviter", $"邀请人{model.Inviter}记录不存在");
                return(new ValidationFailedResult(ModelState));
            }

            var refMember = await _Context.MemberRegistries.FirstOrDefaultAsync(x => x.Mail == model.Mail.Trim() && x.OrganizationId == inviteUser.OrganizationId);

            var mapping = new Func <MemberRegistry, Task <MemberRegistry> >(async(entity) =>
            {
                entity.Name           = model.Name;
                entity.Description    = model.Remark;
                entity.ActiveFlag     = AppConst.Active;
                entity.Phone          = model.Phone;
                entity.Mail           = model.Mail;
                entity.Company        = model.Company;
                entity.Province       = model.Province;
                entity.City           = model.City;
                entity.County         = model.County;
                entity.BusinessCard   = model.BusinessCard;
                entity.Inviter        = model.Inviter;
                entity.Creator        = model.Inviter;
                entity.Modifier       = model.Inviter;
                entity.OrganizationId = inviteUser.OrganizationId;
                return(await Task.FromResult(entity));
            });

            return(await _PostRequest(refMember, mapping));
        }
        public async Task <IActionResult> Post([FromBody] MemberRegistryCreateModel model)
        {
            var refMember = await _Repository._DbContext.MemberRegistries.FirstOrDefaultAsync(x => x.Mail == model.Mail.Trim());

            var member = refMember != null ? refMember : new MemberRegistry();

            if (refMember == null)
            {
                member.Id = GuidGen.NewGUID();
            }
            member.Name        = model.Name;
            member.Description = model.Remark;
            member.Phone       = model.Phone;
            member.Mail        = model.Mail;
            member.Company     = model.Company;
            member.Province    = model.Province;
            member.City        = model.City;
            member.Area        = model.Area;
            member.Inviter     = model.Inviter;
            if (refMember == null)
            {
                member.CreatedTime = DateTime.Now;
            }
            member.ModifiedTime = DateTime.Now;
            if (!string.IsNullOrWhiteSpace(member.Inviter))
            {
                var inviter = await _Repository._DbContext.Accounts.FirstOrDefaultAsync(x => x.Id == member.Inviter);

                if (inviter != null)
                {
                    member.OrganizationId = inviter.OrganizationId;
                }
            }
            if (refMember == null)
            {
                _Repository._DbContext.MemberRegistries.Add(member);
            }
            else
            {
                _Repository._DbContext.MemberRegistries.Update(member);
            }
            await _Repository._DbContext.SaveChangesAsync();

            return(Ok());
        }