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

网站程序定制电影站的seo

网站程序定制,电影站的seo,网站建设意向表,手机网站是怎么制作的注意:本实现与视频不一致。本实现中单独做了汇总接口,而视频中则合并到国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 ObservableCollection<ToDoDto> todoList;public ObservableCollection<ToDoDto> TodoList{get { return todoList; }set { todoList = value; }}/// <summary>/// MemoList/// </summary>private ObservableCollection<MemoDto> memoList;public ObservableCollection<MemoDto> MemoList{get { return memoList; }set { memoList = value; }}}
}

添加汇总webapi接口

添加汇总接口

添加文件:MyToDo.Api.Service.ISummary

using MyToDo.Share.Parameters;namespace MyToDo.Api.Service
{public interface ISummary{Task<ApiReponse> 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 Task<ApiReponse> GetAllInfo(SummaryParameter parameter){try{SummaryDto sumdto = new SummaryDto();//获取所有todo信息var Pagetodos = await work.GetRepository<Todo>().GetPagedListAsync(pageIndex: parameter.PageIndex, pageSize: parameter.PageSize, orderBy: source => source.OrderByDescending(t => t.CreateDate));//获取所有memo信息var Pagememos = await work.GetRepository<Memo>().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.MemoCnt=Pagememos.TotalCount;//获取todos项目与memos项目集合sumdto.TodoList = new ObservableCollection<ToDoDto>(mapper.Map<List<ToDoDto>>(todos.Where(t => t.Status == 0)));sumdto.MemoList = new ObservableCollection<MemoDto>(mapper.Map<List<MemoDto>>(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 Task<ApiReponse> GetAllInfo([FromQuery] SummaryParameter parameter)=>await service.GetAllInfo(parameter);}
}

依赖注入

文件:webapi.Program.cs

添加:

builder.Services.AddTransient<ISummary, 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 Task<ApiResponse<SummaryDto>> GetAllInfo(SummaryParameter parameter)Task<ApiResponse<SummaryDto>> 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 ServiceName="Summary";public SummeryService(HttpRestClient client){this.client = client;}public async Task<ApiResponse<SummaryDto>> 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.ExecuteAsync<SummaryDto>(request);}}
}

依赖注入

修改文件App.xaml.cs 添加内容

containerRegistry.Register<ISummeryService, 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.Resolve<ITodoService>();this.memoService = provider.Resolve<IMemoService>();this.summService= provider.Resolve<ISummeryService>();//初始化命令EditMemoCmd = new DelegateCommand<MemoDto>(Addmemo);EditTodoCmd = new DelegateCommand<ToDoDto>(Addtodo);ToDoCompltedCommand = new DelegateCommand<ToDoDto>(Compete);ExecuteCommand = new DelegateCommand<string>(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完成命令/// </summary>public DelegateCommand<ToDoDto> ToDoCompltedCommand { get; set; }public DelegateCommand<string> ExecuteCommand { get; set; }/// <summary>/// 命令:编辑备忘/// </summary>public DelegateCommand<MemoDto> EditMemoCmd { get;private set; }/// <summary>/// 命令:编辑待办/// </summary>public DelegateCommand<ToDoDto> EditTodoCmd { get; private set; }#endregion#region 定义属性public SummaryDto Summary{get { return summary; }set { summary = value; RaisePropertyChanged(); }}public string Title { get; set; }/// <summary>/// 首页任务条/// </summary>public ObservableCollection<TaskBar> 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 ObservableCollection<TaskBar> taskBars;#endregion#region 命令相关方法/// <summary>/// togglebutoon 的命令/// </summary>/// <param name="dto"></param>/// <exception cref="NotImplementedException"></exception>async 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 name="obj"></param>void Execute(string obj){switch (obj){case "新增待办": Addtodo(null); break;case "新增备忘": Addmemo(null); break;}}/// <summary>/// 添加待办事项/// </summary>async 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.GetValue<ToDoDto>("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(x=>x.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>/// 添加备忘录/// </summary>async 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.GetValue<MemoDto>("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>/// 更新首页所有信息/// </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);}#endregion#region 启动项相关void CreatBars(){Title = "您好,2022";TaskBars = new ObservableCollection<TaskBar>();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.Resolve<ITodoService>();this.memoService = provider.Resolve<IMemoService>();this.summService= provider.Resolve<ISummeryService>();//初始化命令EditMemoCmd = new DelegateCommand<MemoDto>(Addmemo);EditTodoCmd = new DelegateCommand<ToDoDto>(Addtodo);ToDoCompltedCommand = new DelegateCommand<ToDoDto>(Compete);ExecuteCommand = new DelegateCommand<string>(Execute);this.dialog = dialog;CreatBars();}}
}
http://www.15wanjia.com/news/40405.html

相关文章:

  • 网站制作网站seo顾问公司
  • 网站开发目录结构竞价是什么工作
  • 网站建设和维护岗位的职责ip域名查询网
  • 网站建设和优化搜索引擎排名机制
  • 浦东新区手机网站设计百度识图网页入口
  • 哪个网站做简历免费怎么做好seo内容优化
  • 我想开网站安徽关键词seo
  • 六安论坛百姓杂谈站长seo软件
  • 沈阳网站建设那家好广州网络推广哪家好
  • wordpress首页描述seo页面如何优化
  • seo专业为网站建设中国广告公司前十强
  • 网站建设策划方案如何写企业营销推广怎么做
  • 精品课程网站开发的开题报告杭州优化外包哪里好
  • 怎么用织梦源代码做网站全免费建立自己的网站
  • wordpress访问速度东莞seo排名优化
  • 网站建设vs网络推广seo用什么论坛引流
  • 营销型企业网站开发24小时人工在线客服
  • 合肥网站建设套餐什么是seo优化推广
  • 网站怎么做seo步骤手机怎么创建自己的网站平台
  • 广州商城网站建设地址网站seo什么意思
  • 如何做淘宝客自己的网站免费学生html网页制作成品
  • 网站怎么做海外推广江门关键词优化公司
  • 做组织架构图的网站青岛seo关键词优化排名
  • 做微信网站多少钱网络推广属于什么行业
  • 哪些网站做国际贸易比较好中国站长之家网站
  • 开一个网站要花多少钱滕州百度推广
  • 网上哪个网站教做西点河北优化seo
  • 400网站建设百度网盘登录入口 网页
  • html做网站自适应宽度seo外链优化
  • 建设政府网站app舟山seo