示例#1
0
        public IHttpActionResult Put([FromUri] int id, [FromBody] SpecificLiquorCreate model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (_service.GetById(id) is null)
            {
                return(NotFound());
            }

            if (!_service.IsLiquorInDatabase(model))
            {
                return(InternalServerError(new SystemException("Liquor is not in the database.")));
            }

            if (_service.NoChangesWereMade(id, model))
            {
                return(Ok("No changes were made."));
            }

            if (_service.IsSpecificLiquorInDatabase(model))
            {
                return(Conflict());
            }

            if (!_service.Update(id, model))
            {
                return(InternalServerError());
            }

            return(Ok());
        }
示例#2
0
        // helper
        public bool IsLiquorInDatabase(SpecificLiquorCreate model)
        {
            var liquor = ConvertFromStringToLiquor(model.Liquor);

            if (liquor != null)
            {
                return(true);
            }

            return(false);
        }
示例#3
0
        //-- Update
        public bool Update(int id, SpecificLiquorCreate updatedSpecificLiquor)
        {
            SpecificLiquor specificLiquor = _context.SpecificLiquors.Find(id);

            specificLiquor.Name            = updatedSpecificLiquor.Name;
            specificLiquor.Liquor          = ConvertFromStringToLiquor(updatedSpecificLiquor.Liquor);
            specificLiquor.Brand           = updatedSpecificLiquor.Brand;
            specificLiquor.CountryOfOrigin = updatedSpecificLiquor.CountryOfOrigin;

            return(_context.SaveChanges() == 1);
        }
示例#4
0
        //-- Create
        public bool AddSpecificLiquor(SpecificLiquorCreate model)
        {
            var entity = new SpecificLiquor
            {
                Name            = model.Name,
                Liquor          = ConvertFromStringToLiquor(model.Liquor),
                Brand           = model.Brand,
                CountryOfOrigin = model.CountryOfOrigin
            };

            _context.SpecificLiquors.Add(entity);
            return(_context.SaveChanges() == 1);
        }
示例#5
0
        // helper
        public bool IsSpecificLiquorInDatabase(SpecificLiquorCreate model)
        {
            var liquor = ConvertFromStringToLiquor(model.Liquor);

            SpecificLiquor query = _context.SpecificLiquors.SingleOrDefault(q => q.Name == model.Name && q.Brand == model.Brand && q.CountryOfOrigin == model.CountryOfOrigin && q.Liquor.Type == liquor.Type && q.Liquor.Subtype == liquor.Subtype);

            if (query != null)
            {
                return(true);
            }

            return(false);
        }
示例#6
0
        public IHttpActionResult Post(SpecificLiquorCreate model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!_service.IsLiquorInDatabase(model))
            {
                return(InternalServerError(new SystemException($"{model.Liquor} does not exist in database")));
            }

            if (_service.IsSpecificLiquorInDatabase(model))
            {
                return(Conflict());
            }

            if (!_service.AddSpecificLiquor(model))
            {
                return(InternalServerError());
            }

            return(Ok());
        }
示例#7
0
        // helper
        public bool NoChangesWereMade(int id, SpecificLiquorCreate model)
        {
            SpecificLiquor liquor = _context.SpecificLiquors.Find(id);

            return(liquor.Name == model.Name && liquor.Brand == model.Brand && liquor.CountryOfOrigin == model.CountryOfOrigin && ConvertFromLiquorToString(liquor.Liquor) == model.Liquor);
        }