Ejemplo n.º 1
0
        public async Task <IActionResult> CreateUser(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function 'CreateUser' processed a request.");

            string    requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic   data        = JsonConvert.DeserializeObject(requestBody);
            UserModel user        = UserModelFactory.CreateUserModel(data);

            if (!user.DataIsValid)
            {
                var result = new ObjectResult(user.InvalidReason);
                //according to https://www.bennadel.com/blog/2434-http-status-codes-for-invalid-data-400-vs-422.htm
                //if data is formattede correct but not valid a 422 is the correct answer
                result.StatusCode = StatusCodes.Status422UnprocessableEntity;
                return(result);
            }

            await _context.Users.AddAsync(user);

            await _context.SaveChangesAsync();

            string responseMessage = "User: "******" " + user.LastName + " created";

            return(new OkObjectResult(responseMessage));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> UpdateUser(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function 'UpdateUser' processed a request.");

            string  requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data        = JsonConvert.DeserializeObject(requestBody);

            if (String.IsNullOrEmpty(requestBody))
            {
                var result = new ObjectResult("Empty requestbody recieved");
                //according to https://www.bennadel.com/blog/2434-http-status-codes-for-invalid-data-400-vs-422.htm
                //if data is formattede correct but not valid a 422 is the correct answer
                result.StatusCode = StatusCodes.Status404NotFound;
                return(result);
            }
            //UserModel user = UserModelFactory.UpdateUserModel(data);
            int id   = (int)data.id;
            var user = _context.Users.First(c => c.Id == id);

            if (user == null)
            {
                user = new UserModel()
                {
                    Id = id
                };
                _context.Users.Attach(user);
            }
            else
            {
                UserModelFactory.UpdateUserModel(data, ref user);
            }

            _context.Users.Update(user);
            await _context.SaveChangesAsync();

            string responseMessage = "User updated";

            return(new OkObjectResult(responseMessage));
        }