Пример #1
0
    public IActionResult LinkWithUser_Recipe(int User_id, int Recipe_id)
    {
        var session                  = HttpContext.Get <LoggableEntities>(_context);
        var current_User             = session == null ? null : session.User;
        var current_Admin            = session == null ? null : session.Admin;
        var allowed_sources          = _context.User;
        var source                   = allowed_sources.FirstOrDefault(s => s.Id == User_id);
        var allowed_targets          = _context.Recipe;
        var target                   = allowed_targets.FirstOrDefault(s => s.Id == Recipe_id);
        var can_edit_source_by_token = ApiTokenValid || true;
        var can_edit_target_by_token = ApiTokenValid || true;
        var can_link_by_token        = ApiTokenValid || true;

        if (!CanAdd_User_User_Recipes(source) || !can_link_by_token || !can_edit_source_by_token || !can_edit_target_by_token)
        {
            return(BadRequest());
        }
        // throw new Exception("Cannot add item to relation User_Recipes");
        if (!CanAdd_Recipe_User_Recipes(target))
        {
            return(BadRequest());
        }
        // throw new Exception("Cannot add item to relation User_Recipes");
        var link = new User_Recipe()
        {
            Id = _context.User_Recipe.Max(i => i.Id) + 1, UserId = source.Id, RecipeId = target.Id
        };

        _context.User_Recipe.Add(link);
        _context.SaveChanges();
        return(Ok());
    }
Пример #2
0
    public IActionResult /*IEnumerable<Recipe>*/ CreateNewUser_Recipe_Recipe(int User_id)
    {
        var session             = HttpContext.Get <LoggableEntities>(_context);
        var current_User        = session == null ? null : session.User;
        var current_Admin       = session == null ? null : session.Admin;
        var allowed_sources     = ApiTokenValid ? _context.User : _context.User;
        var source              = allowed_sources.FirstOrDefault(s => s.Id == User_id);
        var can_create_by_token = ApiTokenValid || true;

        if (source == null || !can_create_by_token)
        {
            return(Unauthorized());
        }
        // throw new Exception("Cannot create item in relation User_Recipes");
        var can_link_by_token = ApiTokenValid || true;

        if (!CanAdd_User_User_Recipes(source) || !can_link_by_token)
        {
            return(Unauthorized());
        }
        //throw new Exception("Cannot add item to relation User_Recipes");
        var new_target = new Recipe()
        {
            CreatedDate = DateTime.Now, Id = _context.Recipe.Max(i => i.Id) + 1
        };

        _context.Recipe.Add(new_target);
        _context.SaveChanges();
        var link = new User_Recipe()
        {
            Id = _context.User_Recipe.Max(l => l.Id) + 1, UserId = source.Id, RecipeId = new_target.Id
        };

        _context.User_Recipe.Add(link);
        _context.SaveChanges();
        return(Ok(new Recipe[] { new_target }));
    }