public HttpResponseMessage deleteShoppingCategoryItem(int id)
        {
            ShoppingCategoryList shoppingCategoryList = db.ShoppingCategoryLists.Find(id);
            if (shoppingCategoryList == null)
            {
                return Request.CreateResponse(HttpStatusCode.NotFound);
            }

            if (db.Entry(shoppingCategoryList).Entity.UserId != User.Identity.Name)
            {
                // Trying to delete a record that does not belong to the user
                return Request.CreateResponse(HttpStatusCode.Unauthorized);
            }

            ShoppingCategoryListDto shoppingCategoryListDto = new ShoppingCategoryListDto(shoppingCategoryList);
            db.ShoppingCategoryLists.Remove(shoppingCategoryList);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                return Request.CreateResponse(HttpStatusCode.InternalServerError);
            }

            return Request.CreateResponse(HttpStatusCode.OK, shoppingCategoryListDto);
        }
        public HttpResponseMessage PostShoppingCategoryList(ShoppingCategoryListDto shoppingCategoryListDto)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }

            shoppingCategoryListDto.UserId = User.Identity.Name;
            ShoppingCategoryList shoppingCategoryList = shoppingCategoryListDto.ToEntity();
            db.ShoppingCategoryLists.Add(shoppingCategoryList);
            db.SaveChanges();
            shoppingCategoryListDto.ShoppingCategoryListId = shoppingCategoryList.ShoppingCategoryListId;

            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, shoppingCategoryListDto);
            response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = shoppingCategoryListDto.ShoppingCategoryListId }));
            return response;
        }
        public HttpResponseMessage PutShoppingCategoryList(int id, ShoppingCategoryListDto shoppingCategoryListDto)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }

            if (id != shoppingCategoryListDto.ShoppingCategoryListId)
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }

            ShoppingCategoryList shoppingCategoryList = shoppingCategoryListDto.ToEntity();
            if (db.Entry(shoppingCategoryList).Entity.UserId != User.Identity.Name)
            {
                // Trying to modify a record that does not belong to the user
                return Request.CreateResponse(HttpStatusCode.Unauthorized);
            }

            db.Entry(shoppingCategoryList).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                return Request.CreateResponse(HttpStatusCode.InternalServerError);
            }

            return Request.CreateResponse(HttpStatusCode.OK);
        }