コード例 #1
0
        public async Task <IHttpActionResult> PostBalance(string id, BalanceViewModel model)
        {
            var self = await SelfUser();

            if (self == null)
            {
                return(Unauthorized());
            }

            User user = await Db.Users.FirstOrDefaultAsync(u => u.Id == id);

            if (user == null)
            {
                return(NotFound());
            }

            var entry = new MoneyHistory
            {
                UserId   = user.Id,
                Amount   = model.Amount,
                Datetime = DateTime.UtcNow
            };

            Db.MoneyHistory.Add(entry);
            await Db.SaveChangesAsync();

            return(Ok(entry));
        }
コード例 #2
0
        public async Task <IHttpActionResult> Register(RegisterViewModel info)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = Db.Users.Add(new User
            {
                UserName         = info.Username,
                Email            = info.Email,
                RegisterDatetime = DateTime.UtcNow
            });

            var userRole = await Db.Roles.FirstOrDefaultAsync(r => r.Name == Roles.User);

            user.Roles.Add(new IdentityUserRole {
                RoleId = userRole.Id
            });
            await new MyUserStore().SetPasswordHashAsync(user, new MyUserManager().PasswordHasher.HashPassword(info.Password));

            try
            {
                await Db.SaveChangesAsync();

                var entry = new MoneyHistory
                {
                    UserId   = user.Id,
                    Amount   = 10000,
                    Datetime = DateTime.UtcNow
                };
                Db.MoneyHistory.Add(entry);
                await Db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (UserWithIdExists(user.Id))
                {
                    return(Conflict());
                }
                throw;
            }

            return(CreatedAtRoute("DefaultApi", new { controller = "Users", id = user.Id }, user));
        }