public async Task <IActionResult> Post([FromBody] ApplicationPostModel model) { if (await _applicationManager.Applications.AnyAsync(x => x.Name == model.Name || x.ApplicationId == model.ApplicationId)) { return(BadRequest(new ApiErrorResult <ApiError>(new ApiError(ApiErrorCodes.BadArgument, "存在重复的名称或应用程序Id。")))); } var app = new Application { Id = await _identityGenerator.GenerateAsync(), Name = model.Name, ApplicationId = model.ApplicationId, Description = model.Description, Enabled = model.Enabled }; var result = await _applicationManager.CreateApplicationAsync(app); if (result.Succeeded) { return(StatusCode(201, new ApiResult <ObjectCreationOutputModel <long> >(new ObjectCreationOutputModel <long>(app.Id, $"{Request.Scheme}://{Request.Host.Value}/api/applications/{app.Id}")))); } var ex = new MyApplicationException(); ex.SetIdentityErrors(result.Errors); throw ex; }
public async Task <IActionResult> Put(string id, [FromBody] ApplicationPostModel model) { var app = await _applicationManager.FindByIdAsync(id); if (app != null) { app.Name = model.Name; app.ApplicationId = model.ApplicationId; app.Description = model.Description; app.Enabled = model.Enabled; var result = await _applicationManager.UpdateAsync(app); if (result.Succeeded) { return(NoContent()); } var ex = new MyApplicationException(); ex.SetIdentityErrors(result.Errors); throw ex; } var msg = $"找不到指定的应用程序 {id}"; _logger.LogWarning(msg); return(NotFound(new ApiErrorResult <ApiError>(new ApiError(ApiErrorCodes.ObjectNotFound, msg)))); }
public async Task <IActionResult> Put(string id, [FromBody] ApplicationPostModel model) { var demoError = new Lazy <ApiErrorResult <ApiError> >(() => new ApiErrorResult <ApiError>(new ApiError(ApiErrorCodes.BadArgument, "演示需要,不可修改当前应用。"))); if (long.TryParse(id, out var lId)) { if (PrimarySettings.CurrentApplicationId == lId) { return(BadRequest(demoError.Value)); } } else { if (PrimarySettings.CurrentApplicationCode == id) { return(BadRequest(demoError.Value)); } } var app = await ApplicationManager.FindByIdAsync(id); if (app != null) { app.Name = model.Name; app.ApplicationId = model.AppId; app.Description = model.Description; app.Enabled = model.Enabled; var result = await ApplicationManager.UpdateAsync(app); if (result.Succeeded) { return(NoContent()); } throw new NotImplementedException(); } var msg = $"找不到指定的应用程序 {id}"; Logger.LogWarning(msg); return(NotFound(new ApiErrorResult <ApiError>(new ApiError(ApiErrorCodes.ObjectNotFound, msg)))); }