Esempio n. 1
0
        public async Task <FurnitureViewModel> CreateAsync(FurnitureBindingModel model)
        {
            //TODO refactor in separate class
            var user = await this.db.Users
                       .FirstOrDefaultAsync(x => x.Email == model.UserEmail);

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

            var furniture = this.mapper.Map <Furniture>(model);

            furniture.UserId = user.Id;

            await this.db.Furnitures.AddAsync(furniture);

            await this.db.SaveChangesAsync();

            return(this.mapper.Map <FurnitureViewModel>(furniture));
        }
Esempio n. 2
0
        public async Task <IActionResult> Create(FurnitureBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid furniture"));
            }

            var email = this.User.Claims.FirstOrDefault(x => x.Type.Contains("emailaddress", StringComparison.InvariantCultureIgnoreCase));

            if (email == null)
            {
                return(this.Unauthorized());
            }
            model.UserEmail = email.Value;

            var createdFurniture = await this.furnitureService.CreateAsync(model);

            if (createdFurniture == null)
            {
                return(UnprocessableEntity());
            }

            return(StatusCode(201, createdFurniture));
        }