记开发个人图书收藏清单小程序开发(八)初始化书房信息修改

因为之前逻辑设计有点小问题,所以修改了一下:

增加core._User的Table:

1 CREATE TABLE [core].[_User]
2 (
3     [ID]       INT         NOT NULL PRIMARY KEY,
4     [StringID] VARCHAR(36) NOT NULL,
5     CONSTRAINT [FK_User_Party] FOREIGN KEY ([ID]) REFERENCES [core].[_Party] ([ID])
6 )

在Web端需要传入StringID(也即微软Identity自动生成的AspNetUsers Table的ID)。

WebUI的Project增加Service:

/Services/UserManagerService.cs

 1     public class UserManagerService : UserManager<IdentityUser>
 2     {
 3         public UserManagerService(IUserStore<IdentityUser> store
 4             , IOptions<IdentityOptions> optionsAccessor
 5             , IPasswordHasher<IdentityUser> passwordHasher
 6             , IEnumerable<IUserValidator<IdentityUser>> userValidators
 7             , IEnumerable<IPasswordValidator<IdentityUser>> passwordValidators
 8             , ILookupNormalizer keyNormalizer
 9             , IdentityErrorDescriber errors
10             , IServiceProvider services
11             , ILogger<UserManager<IdentityUser>> logger)
12             : base(store, optionsAccessor, passwordHasher, userValidators, passwordValidators, keyNormalizer, errors, services, logger)
13         {
14         }
15
16     }

当然,也需要在Startup.cs文件的ConfigureServices中增加依赖注入:

1 services.AddScoped<UserManagerService>();

修改Init.cshtml.cs中的部分:

 1     using M = Shelf;
 2     public class InitModel : PageModel
 3     {
 4         private readonly IShelfRepo _shelfRepo;
 5         private readonly UserManagerService _userManagerService;
 6         public InitModel(IShelfRepo shelfRepo
 7             , UserManagerService userManagerService)
 8         {
 9             _shelfRepo = shelfRepo;
10             _userManagerService = userManagerService;
11         }
12         [BindProperty]
13         public InitInputModel Input { get; set; }
14
15         public void OnGet()
16         {
17
18         }
19
20         public async Task<IActionResult> OnPostAsync()
21         {
22             if (ModelState.IsValid)
23             {
24                 await _shelfRepo.InitAsync(new M.InitSpec
25                 {
26                     StringID = _userManagerService.GetUserId(User),
27                     NickName = Input.NickName.Trim(),
28                     ShelfName = Input.ShelfName.Trim()
29                 });
30                 return RedirectToPage("New");
31             }
32             return Page();
33         }
34     }

主要是第26行。对应的给InitSpec Model也增加StringID的字段。

好了,现在BL DB和登录信息关联上了。

原文地址:https://www.cnblogs.com/bu-dong/p/9225799.html

时间: 2024-10-29 05:18:38

记开发个人图书收藏清单小程序开发(八)初始化书房信息修改的相关文章

记开发个人图书收藏清单小程序开发(三)DB设计

主要是参考豆瓣的图书查询接口: https://api.douban.com/v2/book/isbn/:9780132350884 返回内容如下: 1 { 2 "rating": { 3 "max": 10, 4 "numRaters": 361, 5 "average": "8.8", 6 "min": 0 7 }, 8 "subtitle": "A H

记开发个人图书收藏清单小程序开发(四)DB设计

早上起来,又改动了一下: 主要是,将非常用信息全部拆分出来,让Table尽量的小,小到不能继续拆分了,这样区分DB逻辑.增加了FileBank存储Book的封面图片,统一管理图片资源. 新添加的Type相关的Script: 1 CREATE FUNCTION [base].[BookNbr#Type] () 2 RETURNS TABLE 3 WITH SCHEMABINDING, ENCRYPTION 4 AS RETURN 5 ( 6 select 10 as _ISBN10 7 , 13

记开发个人图书收藏清单小程序开发(七)DB设计

前面的书房初始化的前端信息已经完善,所以现在开始实现DB的Script部分. 新增Action:Shelf_Init.sql svc.sql 1 CREATE SCHEMA [svc] 2 AUTHORIZATION [dbo]; Shelf_Init.sql 1 CREATE PROCEDURE [svc].[Shelf$Init](@json nvarchar(max)) 2 WITH ENCRYPTION 3 AS 4 BEGIN 5 SET NOCOUNT ON; 6 SET XACT_

云开发初探 —— 更简便的小程序开发模式

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由李成熙heyli发表于云+社区专栏 李成熙,腾讯云高级工程师.2014年度毕业加入腾讯AlloyTeam,先后负责过QQ群.花样直播.腾讯文档等项目.2018年加入腾讯云云开发团队.专注于性能优化.工程化和小程序服务. 小程序诞生以来,业界关注小程序前端的技术演进较多,因此众多小程序前端的框架.工具也应运而生,前端开发效率大大提高,而后台的开发技术则关注不多,痛点不少,具体痛在哪里呢? 小程序后台开发之痛 第一个是脑袋瓜疼,怎么疼

Vue+koa2开发一款全栈小程序(5.服务端环境搭建和项目初始化)

1.微信公众平台小程序关联腾讯云 腾讯云的开发环境是给免费的一个后台,但是只能够用于开发,如果用于生产是需要花钱的,我们先用开发环境吧 1.用小程序开发邮箱账号登录微信公众平台 2.[设置]→[开发者工具]→第一次是git管理,开启腾讯云关联 3.会一路跳转到腾讯云的[开通开发环境]的流程要走 1.已经完成 2.下载安装微信开发者工具,也已经下载安装了 3.下载Node.js版本Demo 将demo中的server文件夹,复制到mpvue项目中 在项目下的project.config.json中

杭州微信应用号小程序开发解决方案

杭州微信应用号小程序开发[金华腾云科技]微信应用号小程序(应用号)就是用户关注了一个应用号,就像安装了一个App一样.这样微信将被打造成一个全新的appstore,而每一个应用号就是一个个的webapp. 怎么理解这个概念? 下载安装app 太麻烦了,微信的小程序就可以满足你;安装 / 卸载 / 使用小程序,就像关注 / 取关 /进入公众号一样简单;你用完就可以走,不用担心装个 app 占你空间. 杭州微信应用号小程序(应用号)有几个功能? 1.微信应用号小程序(应用号)能实现对App个性功能的

微信小程序开发优秀教程及文章合集第一期

我会不定期的选取一些优质教程,整理成辑,以便大家集中阅读: 新手向!微信小程序开发手记系列:微信小程序开发手记<一>:项目的代码结构微信小程序开发手记<二>:属性display微信小程序开发手记<三>:backgroud和border属性微信小程序开发手记<四>:视图容器微信小程序开发手记<五>:组件微信小程序开发手记<六>:API 艺龙系列:精品!艺龙小程序:开发项目遇到的问题以及解决方案:http://www.wxapp-unio

点餐小程序开发详情

互联网认为数量多的是影响力大的.点餐小程序开发详情(178.1718.1752可微)点餐小程序开发.点餐小程序系统开发.微信点餐小程序开发它的一个好处,做到了广覆盖.原来一些优秀的传统媒体,发行量可能没有超过百万的,比如<财经>杂志,或者<南方周末>,都是在几十万的数量级.从中国的人口基数来讲,覆盖率非常少,少的可怜.但是这不影响它的影响力,如果它做了一个好的选题,或者做了一篇有质量的封面文章,在高端人群里面的传播力往往是非常好的. 餐饮是传统行业最典型的代表,微信小程序和餐饮碰撞

资讯 | 2018年1月15日微信公开课解读!微信小程序开发资源

引言:2018年1月15日 微信公开课PRO开课了,本次课时内容将涉及:小程序.智慧零售.企业微信.小游戏  (附学习参考资料) 为了快速理解「2018 微信公开课 PRO 版」上张小龙的一小时演讲内容,结合下午微信公开课课室A_B_C的课时安排,这里为大家提前整理了相应的小程序学习参考资料: 微信公开课pro_A课室(14:00-17:50) 主题:小程序产品能力.开发.应用及规则 一.如何开发一个优秀的微信小程序/小游戏 微信小程序官方工具  https://mp.weixin.qq.com