public ErrorModel AddDishToMenu(AddDishModel model)
        {
            var errors = new ErrorModel();

            if (model == null)
            {
                errors.Messages.Add("Invalid data.");
                return(errors);
            }

            var dish = model.DishToAdd;

            if (dish == null)
            {
                errors.Messages.Add("No dish found to add.");
                return(errors);
            }

            var provider = DbContext.GetProviders().SingleOrDefault(p => p.ProviderId == model.ProviderId);

            if (provider == null || provider.ProviderStatus != ProviderStatus.Verified)
            {
                errors.Messages.Add("Cannot add dish for any address not verified provider.");
                return(errors);
            }

            var newDish = dish.ToEntity();

            newDish.ProviderId = model.ProviderId;
            newDish.Available  = true;

            try
            {
                DbContext.SaveDishes(new List <DishEntity> {
                    newDish
                });
                return(errors);
            }
            catch (Exception ex)
            {
                errors.Messages.Add(ex.Message);
                return(errors);
            }
        }