示例#1
0
        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;
        }
示例#2
0
        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))));
        }