Ai
1 Star 0 Fork 10

SyncGithub/OAuthApp

forked from uncle wang/OAuthApp 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ProjectsController.cs 3.26 KB
一键复制 编辑 原始数据 按行查看 历史
uncle wang 提交于 2022-06-14 17:44 +08:00 . 1,添加了服务器在线编辑功能
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using OAuthApp.Data;
using Swashbuckle.AspNetCore.Annotations;
using System;
using OAuthApp.Filters;
using System.Collections.Generic;
using OAuthApp.Services;
namespace OAuthApp.Apis
{
[SwaggerTag("项目")]
[ServiceFilter(typeof(ApiRequestLoggingAttribute))]
public class ProjectsController : BaseController
{
private readonly AppDbContext _context;
public ProjectsController(AppDbContext context)
{
_context = context;
}
[HttpGet]
[SwaggerOperation(OperationId = "Projects")]
[EncryptResultFilter]
public IActionResult List(int skip, int take)
{
var _projectIDs = projectIDs();
var q = _context.Projects
.Where(x => !x.IsDelete &&
(x.UserID == UserID || _projectIDs.Contains(x.ID)))
.AsQueryable();
var total = q.Count();
var data = q.Skip(skip).Take(take)
.OrderByDescending(x => x.ID)
.ToList();
return OK(new
{
total,
data
});
}
[HttpGet("{id}")]
[SwaggerOperation(OperationId = "Project")]
[EncryptResultFilter]
public IActionResult Get(long id)
{
var _projectIDs = projectIDs();
var result = _context.Projects
.FirstOrDefault(x => x.ID == id &&
(x.UserID == UserID || _projectIDs.Contains(x.ID)));
if (result == null)
{
return NotFound();
}
return OK(result);
}
[HttpPut("{id}")]
[SwaggerOperation(OperationId = "ProjectPut")]
public IActionResult Put(Project project)
{
if (UserID != project.UserID)
{
return NotFound();
}
_context.Entry(project).State = EntityState.Modified;
try
{
_context.SaveChanges();
}
catch (Exception ex)
{
return Error(ex.Message);
}
return NoContent();
}
[HttpPost]
[SwaggerOperation(OperationId = "ProjectPost")]
public IActionResult Post(Project project)
{
project.UserID = UserID;
_context.Projects.Add(project);
_context.SaveChanges();
return OK(new { id = project.ID });
}
[HttpDelete("{id}")]
[SwaggerOperation(OperationId = "ProjectDelete")]
public IActionResult Delete(long id)
{
var result = _context.Projects
.FirstOrDefault(x => x.ID == id && x.UserID == UserID);
if (result == null)
{
return NotFound();
}
_context.Projects.Remove(result);
_context.SaveChanges();
return OK(true);
}
List<long> projectIDs()
{
return _context.Teams.Where(x =>
x.ChannelCode == ChannelCodes.Project &&
x.UserID == UserID)
.Select(x => long.Parse(x.ChannelAppID)).ToList();
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/sync-github/OAuthApp.git
git@gitee.com:sync-github/OAuthApp.git
sync-github
OAuthApp
OAuthApp
master

搜索帮助