当前位置: 首页 > news >正文

如何建设商城网站山西网站建设营销qq

如何建设商城网站,山西网站建设营销qq,如何免费自学网站建设,互联网是什么注意#xff1a;本实现与视频不一致。本实现中单独做了汇总接口#xff0c;而视频中则合并到国todo接口当中了。 添加汇总webapi接口添加汇总数据客户端接口总数据客户端接口对接3首页数据模型 添加数据汇总字段类 新建文件MyToDo.Share.Models.SummaryDto using System;…注意本实现与视频不一致。本实现中单独做了汇总接口而视频中则合并到国todo接口当中了。 添加汇总webapi接口添加汇总数据客户端接口总数据客户端接口对接3首页数据模型 添加数据汇总字段类 新建文件MyToDo.Share.Models.SummaryDto using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks;namespace MyToDo.Share.Models {public class SummaryDto:BaseDto{private int sum;public int Sum{get { return sum; }set { sum value; OnPropertyChanged(); }}private int compeleteCnt;public int CompeleteCnt{get { return compeleteCnt; }set { compeleteCnt value; OnPropertyChanged(); }}private int memoCnt;public int MemoCnt{get { return memoCnt; }set { memoCnt value; OnPropertyChanged(); }}private string? compeleteRatio;public string? CompeleteRatio{get { return compeleteRatio; }set { compeleteRatio value; OnPropertyChanged(); }}private ObservableCollectionToDoDto todoList;public ObservableCollectionToDoDto TodoList{get { return todoList; }set { todoList value; }}/// summary/// MemoList/// /summaryprivate ObservableCollectionMemoDto memoList;public ObservableCollectionMemoDto MemoList{get { return memoList; }set { memoList value; }}} } 添加汇总webapi接口 添加汇总接口 添加文件MyToDo.Api.Service.ISummary using MyToDo.Share.Parameters;namespace MyToDo.Api.Service {public interface ISummary{TaskApiReponse GetAllInfo(SummaryParameter parameter);} } 实现汇总接口 添加文件MyToDo.Api.Service.Summary using Arch.EntityFrameworkCore.UnitOfWork; using AutoMapper; using MyToDo.Api.Context; using MyToDo.Share.Models; using MyToDo.Share.Parameters; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Collections.ObjectModel;namespace MyToDo.Api.Service {public class Summary : ISummary{private readonly IUnitOfWork work;private readonly IMapper mapper;public Summary(IUnitOfWork work,IMapper mapper){this.work work;this.mapper mapper;}public async TaskApiReponse GetAllInfo(SummaryParameter parameter){try{SummaryDto sumdto new SummaryDto();//获取所有todo信息var Pagetodos await work.GetRepositoryTodo().GetPagedListAsync(pageIndex: parameter.PageIndex, pageSize: parameter.PageSize, orderBy: source source.OrderByDescending(t t.CreateDate));//获取所有memo信息var Pagememos await work.GetRepositoryMemo().GetPagedListAsync(pageIndex: parameter.PageIndex, pageSize: parameter.PageSize, orderBy: source source.OrderByDescending(t t.CreateDate));//汇总待办数量sumdto.Sum Pagetodos.TotalCount;//统计完成数量var todos Pagetodos.Items;sumdto.CompeleteCnt todos.Where(t t.Status 1).Count();//计算已完成比率sumdto.CompeleteRatio (sumdto.CompeleteCnt / (double)sumdto.Sum).ToString(0%);//统计备忘录数量var memos Pagememos.Items;sumdto.MemoCntPagememos.TotalCount;//获取todos项目与memos项目集合sumdto.TodoList new ObservableCollectionToDoDto(mapper.MapListToDoDto(todos.Where(t t.Status 0)));sumdto.MemoList new ObservableCollectionMemoDto(mapper.MapListMemoDto(memos));return new ApiReponse(true, sumdto);}catch (Exception ex){return new ApiReponse(false, ex);}}} } 添加控制器 添加文件MyToDo.Api.Controllers.SummaryController using Microsoft.AspNetCore.Mvc; using Microsoft.VisualBasic; using MyToDo.Api.Service; using MyToDo.Share.Models; using MyToDo.Share.Parameters;namespace MyToDo.Api.Controllers {[ApiController][Route(api/[controller]/[action])]public class SummaryController:ControllerBase{private readonly ISummary service;public SummaryController(ISummary tService){this.service tService;}[HttpGet]public async TaskApiReponse GetAllInfo([FromQuery] SummaryParameter parameter)await service.GetAllInfo(parameter);} } 依赖注入 文件webapi.Program.cs 添加 builder.Services.AddTransientISummary, Summary();添加客户端数据接口 添加接口 新建文件Mytodo.Service.ISummeryService.cs using MyToDo.Share; using MyToDo.Share.Contact; using MyToDo.Share.Models; using MyToDo.Share.Parameters; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Mytodo.Service {public interface ISummeryService{//public async TaskApiResponseSummaryDto GetAllInfo(SummaryParameter parameter)TaskApiResponseSummaryDto GetAllInfo(SummaryParameter parameter);} } 实现接口 添加文件Mytodo.Service.SummeryService using MyToDo.Share; using MyToDo.Share.Contact; using MyToDo.Share.Models; using MyToDo.Share.Parameters; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Mytodo.Service {public class SummeryService : ISummeryService{private readonly HttpRestClient client;private readonly string ServiceNameSummary;public SummeryService(HttpRestClient client){this.client client;}public async TaskApiResponseSummaryDto GetAllInfo(SummaryParameter parameter){BaseRequest request new BaseRequest();request.Method RestSharp.Method.GET;//如果查询字段为空request.Route $api/{ServiceName}/GetAllInfo?PageIndex{parameter.PageIndex} $PageSize{parameter.PageSize};//request.Route $api/{ServiceName}/GetAll?PageIndex{parameter.PageIndex} $PageSize{parameter.PageSize} $search{parameter.Search};return await client.ExecuteAsyncSummaryDto(request);}} } 依赖注入 修改文件App.xaml.cs 添加内容 containerRegistry.RegisterISummeryService, SummeryService();首页对接接口 修改UI层绑定 修改文件Mytodo.Views.IndexView.xaml 由 ItemsSource{Binding TodoDtos} ItemsSource{Binding MemoDtos}修改为 ItemsSource{Binding Summary.TodoList} ItemsSource{Binding Summary.MemoList}新建summary实例并初始化 修改文件Mytodo.ViewModels.IndexViewModel.cs public SummaryDto Summary {get { return summary; }set { summary value; RaisePropertyChanged(); } } private SummaryDto summary;新建summary服务实例并初始化 private readonly ISummeryService summService; public IndexViewModel(IContainerProvider provider,IDialogHostService dialog) : base(provider) {//实例化接口this.toDoService provider.ResolveITodoService();this.memoService provider.ResolveIMemoService();this.summService provider.ResolveISummeryService();//初始化命令EditMemoCmd new DelegateCommandMemoDto(Addmemo);EditTodoCmd new DelegateCommandToDoDto(Addtodo);ToDoCompltedCommand new DelegateCommandToDoDto(Compete);ExecuteCommand new DelegateCommandstring(Execute);this.dialog dialog;CreatBars(); }添加首页数据初始化函数 /// summary /// 更新首页所有信息 /// /summary private async void UpdateData() {UpdateLoding(true);var summaryResult await summService.GetAllInfo(new SummaryParameter() { PageIndex 0, PageSize 1000 });if (summaryResult.Status){Summary summaryResult.Result;Refresh();}UpdateLoding(false); } public override async void OnNavigatedTo(NavigationContext navigationContext) {UpdateData();base.OnNavigatedTo(navigationContext); }void Refresh() {TaskBars[0].Content summary.Sum.ToString();TaskBars[1].Content summary.CompeleteCnt.ToString();TaskBars[2].Content summary.CompeleteRatio;TaskBars[3].Content summary.MemoCnt.ToString(); }用summary的字段替换掉TodoDtos与MemoDtos 更新添加、编辑、完成命 修改后的代码为 using Mytodo.Common.Models; using MyToDo.Share.Parameters; using Prism.Mvvm; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Reflection.Metadata; using System.Text; using System.Threading.Tasks; using MyToDo.Share.Models; using Prism.Commands; using Prism.Services.Dialogs; using Mytodo.Dialog; using Mytodo.ViewModels; using Mytodo.Service; using Prism.Ioc; using System.Diagnostics; using Microsoft.VisualBasic; using ImTools; using DryIoc; using MyToDo.Share; using System.Windows; using Prism.Regions;namespace Mytodo.ViewModels {public class IndexViewModel:NavigationViewModel{#region 定义命令/// summary/// Todo完成命令/// /summarypublic DelegateCommandToDoDto ToDoCompltedCommand { get; set; }public DelegateCommandstring ExecuteCommand { get; set; }/// summary/// 命令编辑备忘/// /summarypublic DelegateCommandMemoDto EditMemoCmd { get;private set; }/// summary/// 命令编辑待办/// /summarypublic DelegateCommandToDoDto EditTodoCmd { get; private set; }#endregion#region 定义属性public SummaryDto Summary{get { return summary; }set { summary value; RaisePropertyChanged(); }}public string Title { get; set; }/// summary/// 首页任务条/// /summarypublic ObservableCollectionTaskBar TaskBars{get { return taskBars; }set { taskBars value; RaisePropertyChanged(); }}#endregion#region 定义重要命令#endregion#region 定义重要字段private readonly IDialogHostService dialog;private readonly ITodoService toDoService;private readonly ISummeryService summService;private readonly IMemoService memoService;#endregion#region 定义普通字段private SummaryDto summary;private ObservableCollectionTaskBar taskBars;#endregion#region 命令相关方法/// summary/// togglebutoon 的命令/// /summary/// param namedto/param/// exception crefNotImplementedException/exceptionasync private void Compete(ToDoDto dto){if (dto null || string.IsNullOrEmpty(dto.Title) || (string.IsNullOrEmpty(dto.Content)))return;var updres await toDoService.UpdateAsync(dto);if (updres.Status){var todo Summary.TodoList.FirstOrDefault(x x.Id.Equals(dto.Id));//更新信息todo.Status dto.Status;}// 从数据库更新信息UpdateData();}/// summary/// 选择执行命令/// /summary/// param nameobj/paramvoid Execute(string obj){switch (obj){case 新增待办: Addtodo(null); break;case 新增备忘: Addmemo(null); break;}}/// summary/// 添加待办事项/// /summaryasync void Addtodo(ToDoDto model){DialogParameters param new DialogParameters();if (model ! null)param.Add(Value, model);var dialogres await dialog.ShowDialog(AddTodoView, param);var newtodo dialogres.Parameters.GetValueToDoDto(Value);if (newtodo null || string.IsNullOrEmpty(newtodo.Title) || (string.IsNullOrEmpty(newtodo.Content)))return;if (dialogres.Result ButtonResult.OK){try{if (newtodo.Id 0){var updres await toDoService.UpdateAsync(newtodo);if (updres.Status){var todo Summary.TodoList.FirstOrDefault(xx.Id.Equals(newtodo.Id));//更新信息todo.Content newtodo.Content;todo.Title newtodo.Title;todo.Status newtodo.Status;}}else{//添加内容 //更新数据库数据var addres await toDoService.AddAsync(newtodo);//更新UI数据if (addres.Status){Summary.TodoList.Add(addres.Result);}}}catch {}finally{UpdateLoding(false);}}// 从数据库更新信息UpdateData();}/// summary/// 添加备忘录/// /summaryasync void Addmemo(MemoDto model){DialogParameters param new DialogParameters();if (model ! null)param.Add(Value, model);var dialogres await dialog.ShowDialog(AddMemoView, param);if (dialogres.Result ButtonResult.OK){try{var newmemo dialogres.Parameters.GetValueMemoDto(Value);if (newmemo ! null string.IsNullOrWhiteSpace(newmemo.Content) string.IsNullOrWhiteSpace(newmemo.Title))return;if (newmemo.Id 0){var updres await memoService.UpdateAsync(newmemo);if (updres.Status){//var memo MemoDtos.FindFirst(predicate: x x.Id newmemo.Id);var memo Summary.MemoList.FirstOrDefault( x x.Id.Equals( newmemo.Id));//更新信息memo.Content newmemo.Content;memo.Title newmemo.Title;}}else{//添加内容var addres await memoService.AddAsync(newmemo);//更新UI数据if (addres.Status){Summary.MemoList.Add(addres.Result);}}}catch{}finally{UpdateLoding(false);}}// 从数据库更新信息UpdateData();}#endregion#region 其它方法/// summary/// 更新首页所有信息/// /summaryprivate async void UpdateData(){UpdateLoding(true);var summaryResult await summService.GetAllInfo(new SummaryParameter() { PageIndex 0, PageSize 1000 });if (summaryResult.Status){Summary summaryResult.Result;Refresh();}UpdateLoding(false);}#endregion#region 启动项相关void CreatBars(){Title 您好2022;TaskBars new ObservableCollectionTaskBar();TaskBars.Add(new TaskBar { Icon CalendarBlankOutline, Title 汇总, Color #FF00FF00, Content 27, Target });TaskBars.Add(new TaskBar { Icon CalendarMultipleCheck, Title 已完成, Color #6B238E, Content 24, Target });TaskBars.Add(new TaskBar { Icon ChartLine, Title 完成比例, Color #32CD99, Content 100%, Target });TaskBars.Add(new TaskBar { Icon CheckboxMarked, Title 备忘录, Color #5959AB, Content 13, Target });}public override async void OnNavigatedTo(NavigationContext navigationContext){UpdateData();base.OnNavigatedTo(navigationContext);}void Refresh(){TaskBars[0].Content summary.Sum.ToString();TaskBars[1].Content summary.CompeleteCnt.ToString();TaskBars[2].Content summary.CompeleteRatio;TaskBars[3].Content summary.MemoCnt.ToString();}#endregionpublic IndexViewModel(IContainerProvider provider,IDialogHostService dialog) : base(provider){//实例化接口this.toDoService provider.ResolveITodoService();this.memoService provider.ResolveIMemoService();this.summService provider.ResolveISummeryService();//初始化命令EditMemoCmd new DelegateCommandMemoDto(Addmemo);EditTodoCmd new DelegateCommandToDoDto(Addtodo);ToDoCompltedCommand new DelegateCommandToDoDto(Compete);ExecuteCommand new DelegateCommandstring(Execute);this.dialog dialog;CreatBars();}} }
http://www.dnsts.com.cn/news/15114.html

相关文章:

  • 深圳电器网站建设设计网站推荐ps
  • 建设网站都要什么黄一级a做爰片免费网站
  • iOS开发 隐私政策网站怎么做秦皇岛网站制作公司哪家好
  • 网站开发先前台和后台twenty ten wordpress
  • 网站做半透明度的优势建设银行信用卡网站首页
  • 做图片推广的网站招聘网最新招聘信息网
  • 建建设网站的国际新闻最新消息战争视频
  • 温州网站制作软件辽宁省建设局网站
  • 进入官方网站浏览器筑招网
  • 网站建设市场多大金融网站建设运营方案
  • 企业网站优化报价学计算机去哪个职业学校
  • 徐州网站建设公司排名小型静态网站是什么原因
  • 网站开发采购合同模板下载sem推广方案怎么写
  • 商丘做网站公司新站seo快速收录网站内容页的方法二级域名分发网站
  • 图片分享功能网站开发wordpress只显示一个主题
  • 重庆有效的网站推广wordpress 专题
  • 网站域名要钱吗python做一个简单的网页
  • 网站建站网站496565图片在线制作编辑
  • 厦门快速建网站照片编辑器app
  • 学校微网站模板下载地址建设公司网站有用吗
  • 响应式网站设计与实现论文长春做网站推广的公司
  • 手机网站开发升上去做网站需要提交
  • 猪八戒做网站排名徐州网站建设xzwzjs
  • 为什么浏览器打不开一些网站长沙人才市场招聘
  • 软件开发建设网站南通网站的优化
  • 服务器吗放几个网站太原网站建设vhuashi
  • 网站备案名称中国开头郑州怎么做外贸公司网站
  • 淮安公司网站建设wordpress文章添加字段不重复
  • 网站标题栏做多大画网页
  • 怎样查看网站关键词电商培训机构有哪些?哪家比较好