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);
        }
Example #3
0
        /// <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);
        }