public override async Task <AccountRsp> FindByNameAsync(FindAccountReq request) { AccountRsp rsp = new AccountRsp(); try { Account account = await this._accountRep.FindByNameAsync(request.Current); Assert.IsNull(account, "account not found"); List <Item> incomes = await this._accountRep.FindIncomesAsync(account.Name); List <Item> expenses = await this._accountRep.FindExpensesAsync(account.Name); account.Saving = await this._accountRep.FindSavingAsync(account.Name); account.Incomes.Add(incomes); account.Expenses.Add(expenses); rsp.Data = account; } catch (Exception ex) { rsp.Status = -1; rsp.Message = ex.Message; } return(rsp); }
public override async Task <AccountRsp> CreateAsync(UserReq user) { AccountRsp rsp = new AccountRsp(); try { Logger.Debug("receive CreateAsync,data=" + Google.Protobuf.JsonFormatter.Default.Format(user)); Account existing = await this._accountRep.FindByNameAsync(user.Account); Assert.IsNotNull(existing, "用户已经存在了"); Logger.Debug("start call AuthService"); //调用远端 var authClient = ClientProxy.GetClient <AuthServiceClient>(); var voidRsp = await authClient.CreateAsync(user); if (voidRsp.Status != 0) { rsp.Status = voidRsp.Status; rsp.Message = voidRsp.Message; return(rsp); } Logger.Debug("end call AuthService"); Saving saving = new Saving() { Amount = 0, Currency = Currency.Usd, Interest = 0, Deposit = false, Capitalization = false, Account = user.Account }; Account account = new Account(); account.Name = user.Account; account.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); account.LastSeenTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); Logger.Debug("start save to db"); await this._accountRep.SaveUserAsync(account); await this._accountRep.SaveAccountSavingAsync(saving); Logger.Info("new account has been created:{0} ", user.Account); rsp.Data = account; } catch (Exception ex) { rsp.Status = -1; rsp.Message = ex.Message; } return(rsp); }