/// <summary> /// 获取客户详情 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <Resp> GetDetail() { using var db = new MyForContext(); DB.Tables.Client client = await db.Clients.AsNoTracking() .Include(c => c.Avatar) .FirstOrDefaultAsync(c => c.Id == Id); if (client is null) { return(Resp.Fault(Resp.NONE, NOT_CLIENT)); } Results.ClientDetail detail = new Results.ClientDetail { AccountName = client.AccountName, Description = client.Description, Email = client.Email, Phone = client.Phone, Gender = new Share.KeyValue { Key = client.Gender, Value = ((User.Gender)client.Gender).GetDescription() }, Avatar = client.Avatar.Path, Thumbnail = client.Avatar.Thumbnail, CreateDate = client.CreateDate.ToStandardString() }; return(Resp.Success(detail, "")); }
/// <summary> /// 注册一个客户 /// </summary> /// <param name="info"></param> /// <returns></returns> public async Task <Resp> RegisterNewClient(Models.Register_Info info) { (bool isValid, string msg) = info.IsValid(); if (!isValid) { return(Resp.Fault(Resp.NONE, msg)); } using var db = new MyForContext(); if (await db.Clients.AnyAsync(c => c.AccountName == info.Account)) { return(Resp.Fault(Resp.NONE, "已被使用的账号")); } DB.Tables.Client newClient = new DB.Tables.Client { AccountName = info.Account, Password = info.Password }; db.Clients.Add(newClient); int suc = await db.SaveChangesAsync(); if (suc == 1) { return(Resp.Success(Resp.NONE, "")); } return(Resp.Fault(Resp.NONE, "")); }
public async Task <Resp> Login(Models.Login_Info info) { (bool isValid, string msg) = info.IsValid(); if (!isValid) { return(Resp.Fault(Resp.NONE, msg)); } using var db = new MyForContext(); DB.Tables.Client client = await db.Clients .Where(c => c.AccountName == info.Account && c.Password == info.Password) .FirstOrDefaultAsync(); if (client is null) { return(Resp.Fault(Resp.NONE, "账号不存在后密码错误")); } client.Token = Guid.NewGuid(); int suc = await db.SaveChangesAsync(); if (suc != 1) { return(Resp.Fault(Resp.NONE, "登录失败")); } Results.Login_Result result = new Results.Login_Result { Id = client.Id, Token = client.Token, Account = client.AccountName }; return(Resp.Success(result)); }
/// <summary> /// 根据账号用户名获取客户 /// </summary> /// <param name="account"></param> /// <returns></returns> public static Client GetClientByAccount(string account) { using var db = new MyForContext(); DB.Tables.Client client = db.Clients.AsNoTracking() .FirstOrDefault(c => c.AccountName == account); if (client is null) { return(Client.Empty); } return(new Client(client.Id)); }
public static Client GetClient(int id, string token) { using var db = new MyForContext(); DB.Tables.Client client = db.Clients.AsNoTracking() .FirstOrDefault(c => c.Id == id && (c.Token.ToString() == token || c.APPToken.ToString() == token)); if (client is null) { return(Client.Empty); } return(new Client(client.Id)); }
/// <summary> /// 登出 /// </summary> /// <returns></returns> public async Task <Resp> Logout() { using var db = new MyForContext(); DB.Tables.Client client = await db.Clients.FirstOrDefaultAsync(c => c.Id == Id); if (client is null) { return(Resp.Fault(Resp.NONE, NOT_CLIENT)); } client.Token = Guid.NewGuid(); int suc = await db.SaveChangesAsync(); if (suc == 1) { return(Resp.Success(Resp.NONE, "登出成功")); } return(Resp.Fault(Resp.NONE, "登出失败")); }
/// <summary> /// 启用客户 /// </summary> /// <param name="description">启用理由</param> /// <returns></returns> public async Task <Resp> EnabledAsync(string description) { using var db = new MyForContext(); DB.Tables.Client client = await db.Clients.FirstOrDefaultAsync(c => c.Id == Id); if (client is null) { return(Resp.Fault(Resp.NONE, NOT_CLIENT)); } client.State = (int)StandardStates.Enabled; int suc = await db.SaveChangesAsync(); if (suc == 1) { return(Resp.Success()); } return(Resp.Fault(Resp.NONE, "启用失败")); }