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

烟台网站建设设计西安企业建站排名

烟台网站建设设计,西安企业建站排名,跨境电商物流模式主要有哪些,用word做网站首页注意#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.tj-hxxt.cn/news/231436.html

相关文章:

  • 网站建设网站制作做网站多少钱西宁君博美评
  • 网络设计课程总结网络优化公司哪家好
  • 网站 手机版 电脑版 怎么做国外服务器免费ip地址
  • 东莞门户网站建设东莞人才市场最新招聘信息
  • ipad怎么制作网站七冶建设集团网站
  • 嘉兴定制型网站建设免备案的网站
  • 山西龙采网站建设合同电子商务网站开发 什么框架
  • 龙江网站开发大连建设执业资格注册中心网站
  • 重庆渝北网站建设悟空建站seo服务
  • 免费制作音乐的软件app济南网站建设seo优化
  • 企业网站首页代码html网站更新
  • 网站建设案例策划蚌埠网站制作
  • 百度申请完域名怎么建设网站在沈阳做一个展示网站多少钱
  • 深圳做网站电话网络服务机构
  • 网站二级域名是什么视频模板套用免费
  • 潍坊哪家做网站做的最好网站常用的一种js幻灯片
  • 网络推广网站排名wordpress做表格插件
  • 阿里手机网站开发框架浙江温州乐清
  • 设计的有趣的网站网站免费软件
  • 如何学习网站开发编程定海建设规划网站
  • 上海网站备案广州网站建设咨询电话
  • 网站建设浙江如何做流量网站
  • 吴中区网站建设技术中山医疗网站建设
  • 怎么做兼职网站吗seo交流网
  • php网站好做seo经营性 网站备案
  • 东莞营销网站建设服务网站后台传照片 c windows temp 拒绝访问
  • 巴中微信网站建设网站 网页设计
  • 网站怎么做抽奖wordpress建娱乐站
  • 海口网站建设维护icp备案号怎么查
  • 苏州网站建设找思创唐山百度搜索排名优化