Example #1
0
        public async Task <IActionResult> CreateUser(OrdUser ordUserMod)
        {
            var user = await _userService.GetOrdUserByOAuthIdAsync(ordUserMod.OauthId);

            if (user != null)
            {
                return(Conflict(new { Error = $"A user with the Oath Id '{ordUserMod.OauthId}' already exists." }));
            }

            var userEnt = new Entities.OrdUser
            {
                OauthId        = ordUserMod.OauthId,
                FullName       = ordUserMod.FullName,
                MobileNumber   = ordUserMod.MobileNumber,
                EmailAddress   = ordUserMod.EmailAddress,
                CanPlaceOrders = true
            };

            _userService.CreateUser(userEnt);
            if (!await _userService.SaveChangesAsync())
            {
                throw new Exception($"Could not create user '{ordUserMod.FullName}'.");
            }

            return(Ok(userEnt));
        }
Example #2
0
        public async Task <IActionResult> PatchUpdateUser(int userId,
                                                          [FromBody] JsonPatchDocument <OrdUser> patchDoc)
        {
            if (patchDoc == null)
            {
                return(BadRequest());
            }

            var userEnt = await _userService.GetOrdUserAsync(userId);

            if (userEnt == null)
            {
                return(NotFound(new { Error = $"A user with an Id of '{userId}' could not be found." }));
            }

            var userMod = new OrdUser
            {
                OauthId      = userEnt.OauthId,
                FullName     = userEnt.FullName,
                MobileNumber = userEnt.MobileNumber,
                EmailAddress = userEnt.EmailAddress,
                DeviceToken  = userEnt.DeviceToken
            };

            patchDoc.ApplyTo(userMod);

            TryValidateModel(userMod);

            // Validation
            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            userEnt.FullName     = userMod.FullName;
            userEnt.MobileNumber = userMod.MobileNumber;
            userEnt.EmailAddress = userMod.EmailAddress;
            userEnt.DeviceToken  = userMod.DeviceToken;

            _userService.UpdateUser(userEnt);

            if (!await _userService.SaveChangesAsync())
            {
                throw new Exception($"Error updating user '{userMod.FullName}'.");
            }

            return(NoContent());
        }
Example #3
0
 public void UpdateUser(OrdUser ordUser)
 => _userRepo.UpdateEntity(ordUser);
Example #4
0
 public void DeleteUser(OrdUser ordUser)
 => _userRepo.DeleteEntity(ordUser);
Example #5
0
 public void CreateUser(OrdUser ordUser)
 => _userRepo.AddEntity(ordUser);