entity framework core mysql_使用 EntityFrameworkCore CodeFirst 操作 Mysql 数据库

///

/// 用户帮助类,用于将用户组,Tag等信息转换到具体的用户

/// 该类可能在通知中用到

///

public class UserHelper

{

private static string corpID = "";

private static string corpSecret = "";

///

/// Get the wechat users and save to database.

///

///

public static bool GetWechatUserToDB()

{

string token = AccessTokenContainer.TryGetToken(corpID, corpSecret);

WechatContext context = new WechatContext();

//todo: 清空现有用户数据

//获取微信企业号内的用户架构信息

Dictionary> _userTags = new Dictionary>();

Dictionary> _partyTags = new Dictionary>();

Dictionary Users = new Dictionary();

//查找所有Tag并插入数据库

GetTagListResult tagList = MailListApi.GetTagList(token);

if (tagList != null && tagList.taglist != null && tagList.taglist.Count > 0)

{

foreach (var tag in tagList.taglist)

{

int tagId = -1;

if (Int32.TryParse(tag.tagid, out tagId))

{

Tag tempTag = new Tag() { TagId = tagId, TagName = tag.tagname };

GetTagMemberResult tagMemberResult = MailListApi.GetTagMember(token, tagId);

if (tagMemberResult != null && tagMemberResult.partylist != null && tagMemberResult.partylist.Length > 0)

{

foreach (int party in tagMemberResult.partylist)

{

if (!_partyTags.ContainsKey(party))

_partyTags[party] = new List();

_partyTags[party].Add(tempTag);

}

}

if (tagMemberResult != null && tagMemberResult.userlist != null && tagMemberResult.userlist.Count > 0)

{

foreach (var tagUser in tagMemberResult.userlist)

{

if (!_userTags.ContainsKey(tagUser.userid))

_userTags[tagUser.userid] = new List();

_userTags[tagUser.userid].Add(tempTag);

}

}

context.Tags.Add(tempTag);

}

}

context.SaveChanges();

}

//查找所有部门并插入数据库

GetDepartmentListResult departmentList = MailListApi.GetDepartmentList(token);

if (departmentList != null && departmentList.department != null)

{

foreach (var party in departmentList.department)

{

var tempParty = new Party() { PartyId = party.id, Name = party.name, Order = party.order, ParentPartyId = party.parentid };

//此处需要查询所有的Tag保存到库中

if (_partyTags.ContainsKey(party.id))

{

tempParty.PartyTags = _partyTags[party.id].Select(f => new PartyTag() { PartyId = tempParty.PartyId, TagId = f.TagId }).ToList();

}

//根据部门查找所有用户并存入缓存

GetDepartmentMemberInfoResult memberInfos = MailListApi.GetDepartmentMemberInfo(token, party.id, 1, 0);

if (memberInfos != null && memberInfos.userlist != null && memberInfos.userlist.Count > 0)

{

foreach (var member in memberInfos.userlist)

{

if (!Users.ContainsKey(member.userid))

{

Users[member.userid] = new User()

{

Avatar = member.avatar,

Email = member.email,

Gender = member.gender,

Mobile = member.mobile,

Name = member.name,

Position = member.position,

Status = member.status,

UserId = member.userid,

Weixinid = member.weixinid,

UserTags = (_userTags.ContainsKey(member.userid)&& _userTags[member.userid].Count > 0) ? _userTags[member.userid].Select(f => new UserTag() { UserId = member.userid, TagId = f.TagId }).ToList() : null

};

}

Users[member.userid].UserPartys.Add(new UserParty() { PartyId = tempParty.PartyId, UserId = member.userid });

}

}

context.Partys.Add(tempParty);

}

context.SaveChanges();

}

if (Users != null && Users.Count > 0)

{

foreach(var user in  Users.Values)

context.Users.Add(user);

context.SaveChanges();

}

return true;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值