public async Task <int> TransformAsync(string email, float money, string safety) { var user = User.Identity.GetUserId(); try { Safety sf = new MangerRepository().GetValid(user); var tfuser = await UserManager.FindByEmailAsync(email); if (tfuser != null && money >= 100000 && safety.ToMD5Comparison(sf.SafetyHash)) { TransferRecords tf = new TransferRecords { UserId = user, Transfer = tfuser.Id, type = 0, credit = money, createDate = DateTime.Now, rake = 5, unitSn = 1 }; //new MangerRepository().TransferRecordsCreate(tf); new AssetsRepository().AddAssetsByTransfer(tf); return(1); } else { return(0); } } catch { return(0); } }
//轉帳系統功能 public bool AddAssetsByTransfer(TransferRecords tr) { //轉出方增加 Assets assDb = db.Assets.Where(p => p.UserId == tr.Transfer && p.unitSn == tr.unitSn).FirstOrDefault(); double fAssets = (assDb == null ? 0 : assDb.assets); if (assDb == null) { assDb = new Assets { UserId = tr.Transfer, unitSn = tr.unitSn, assets = fAssets + tr.credit * (100 - (double)tr.rake) / 100 }; db.Assets.Add(assDb); } else { assDb.assets += tr.credit * (100 - (double)tr.rake) / 100; } try { db.SaveChanges(); } catch (Exception ex) { throw; } //支出方扣除 assDb = db.Assets.Where(p => p.UserId == tr.UserId && p.unitSn == tr.unitSn).FirstOrDefault(); fAssets = (assDb == null ? 0 : assDb.assets); assDb.assets -= tr.credit; try { db.SaveChanges(); } catch (Exception ex) { throw; } TransferRecords assr = new TransferRecords { UserId = tr.UserId, Transfer = tr.Transfer, unitSn = tr.unitSn, credit = tr.credit, type = tr.type, createDate = DateTime.Now, rake = tr.rake }; db.TransferRecords.Add(assr); db.SaveChanges(); return(true); }
/// <summary> /// Перегружаем для отладки /// </summary> /// <returns></returns> public override string ToString() { var position = TransferRecords != null && TransferRecords.GetLast() != null ? TransferRecords.GetLast().Position : ""; var res = Aircraft; res += BaseComponentType.ShortName != "" ? " " + BaseComponentType.ShortName : ""; res += position != "" ? " " + position : ""; res += " S/N " + SerialNumber; return(res); }