WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口

这篇具有很好参考价值的文章主要介绍了WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、新建MenoDto.cs

/// <summary>
    /// 备忘录传输实体
    /// </summary>
    public class MemoDto : BaseDto
    {
		private string title;
		/// <summary>
		/// 标题
		/// </summary>
		public string Title
        {
			get { return title; }
			set { title = value; OnPropertyChanged(); }
		}
		private string content;
		/// <summary>
		/// 内容
		/// </summary>
		public string Content
        {
			get { return content; }
			set { content = value; OnPropertyChanged(); }
		}

	}

2、添加映射关系

CreateMap<Memo, MemoDto>().ReverseMap();

3、新建服务接口IMemoService

    public interface IMemoService : IBaseService<MemoDto>
    {
    }

4、新建服务MemoService

public class MemoService : IMemoService
    {
        private readonly IUnitOfWork _unitOfWork;
        private readonly IMapper mapper;

        public MemoService(IMapper mapper, IUnitOfWork unitOfWork)
        {
            this.mapper = mapper;
            _unitOfWork = unitOfWork;
        }
        /// <summary>
        /// 新增备忘录
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task<ApiResponse> AddEntityAsync(MemoDto model)
        {
            try
            {
                var memo = mapper.Map<Memo>(model);
                await _unitOfWork.GetRepository<Memo>().InsertAsync(memo);
                if(await _unitOfWork.SaveChangesAsync() > 0)
                {
                    return new ApiResponse(true, memo);
                }
                else
                {
                    return new ApiResponse(false, "添加数据失败!");
                }
            }
            catch (Exception ex)
            {
                return new ApiResponse(false, ex.Message);
            }
        }
        /// <summary>
        /// 删除备忘录
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task<ApiResponse> DeleteEntityAsync(int id)
        {
            try
            {
                var repository = _unitOfWork.GetRepository<Memo>();
                var memo = await repository.GetFirstOrDefaultAsync(predicate: t => t.Id.Equals(id));
                if(memo != null)
                {
                    repository.Delete(memo);
                }
                if(await _unitOfWork.SaveChangesAsync() > 0)
                {
                    return new ApiResponse(true, "删除数据成功!");
                }
                else
                {
                    return new ApiResponse(false, "删除数据失败!");
                }
            }
            catch (Exception ex)
            {
                return new ApiResponse(false, ex.Message);
            }
        }
        /// <summary>
        /// 查询所有备忘录
        /// </summary>
        /// <returns></returns>
        public async Task<ApiResponse> GetAllAsync()
        {
            try
            {
                var repository = _unitOfWork.GetRepository<Memo>();
                var memo = await repository.GetAllAsync();
                if(memo != null)
                {
                    return new ApiResponse(true, memo);
                }
                else
                {
                    return new ApiResponse(false, "查询数据失败!");
                }
            }
            catch (Exception ex)
            {
                return new ApiResponse(false, ex.Message);
            }
            
        }
        /// <summary>
        /// 根据Id查询备忘录
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task<ApiResponse> GetSingleAsync(int id)
        {
            try
            {
                var repository = _unitOfWork.GetRepository<Memo>();
                var memo = await repository.GetFirstOrDefaultAsync(predicate: t => t.Id.Equals(id));
                if(memo != null)
                {
                    return new ApiResponse(true, memo);
                }
                else
                {
                    return new ApiResponse(false, $"查询Id={id}的数据失败!");
                }
            }
            catch (Exception ex)
            {
                return new ApiResponse(false, ex.Message);
            }
        }
        /// <summary>
        /// 更新备忘录
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task<ApiResponse> UpdateEntityAsync(MemoDto model)
        {
            try
            {
                var dbmemo = mapper.Map<Memo>(model);
                var repository = _unitOfWork.GetRepository<Memo>();
                var memo = await repository.GetFirstOrDefaultAsync(predicate: t => t.Id.Equals(dbmemo.Id));
                if( memo != null)
                {
                    memo.Title = dbmemo.Title;
                    memo.Content = dbmemo.Content;
                    memo.UpdateDate = DateTime.Now;
                    repository.Update(memo);
                    if(await _unitOfWork.SaveChangesAsync() > 0)
                    {
                        return new ApiResponse(true, "更新数据成功!");
                    }
                    else
                    {
                        return new ApiResponse(false, "更新数据失败!");
                    }
                }
                else
                {
                    return new ApiResponse(false, $"未查询到Id={dbmemo.Id}的数据!");
                }
            }
            catch (Exception ex)
            {
                return new ApiResponse(false, ex.Message);
            }
        }
    }

5、新增MemoController控制器

    public class MemoController : BaseApiController
    {
        private readonly IUnitOfWork _unitOfWork;
        private readonly IMemoService memoService;

        public MemoController(IMemoService memoService, IUnitOfWork unitOfWork)
        {
            this.memoService = memoService;
            _unitOfWork = unitOfWork;
        }
        [HttpGet]
        public async Task<ApiResponse> GetMemoById(int Id)
        {
            return await memoService.GetSingleAsync(Id);
        }
        [HttpPost]
        public async Task<ApiResponse> AddMemo([FromBody] MemoDto memoDto)
        {
            return await memoService.AddEntityAsync(memoDto);
        }
        [HttpDelete]
        public async Task<ApiResponse> DeleteMemo(int Id)
        {
            return await memoService.DeleteEntityAsync(Id);
        }
        [HttpGet]
        public async Task<ApiResponse> GetAllMemo()
        {
            return await memoService.GetAllAsync();
        }
        [HttpPost]
        public async Task<ApiResponse> UpdateMemo(MemoDto memoDto)
        {
            return await memoService.UpdateEntityAsync(memoDto);
        }
    }

6、在program.cs添加服务

builder.Services.AddTransient<IMemoService, MemoService>();

7、F5运行项目

WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapi

WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapiWPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapi

 WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapi

 WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapiWPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapiWPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapi

 8、针对查询数据可以做个优化,增加查询的页数、内容、数据量等,新建查询参数类

 WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapi

    public class QueryParameter
    {
        public int PageIndex { get; set; }
        public int PageSize { get; set; }
        public string Search { get; set; }
    }

 9、在IToDoService.cs和IMemoService.cs中添加分页查询的接口 

    public interface IToDoService : IBaseService<TodoDto>
    {
        Task<ApiResponse> GetPageListAllAsync(QueryParameter parameter);
    }

    public interface IMemoService : IBaseService<MemoDto>
    {
        Task<ApiResponse> GetPageListAllAsync(QueryParameter parameter);
    }

 10、在ToDoService.cs中实现接口和MemoService.cs中实现接口

/// <summary>
        /// 分页查询所有数据
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public async Task<ApiResponse> GetPageListAllAsync(QueryParameter parameter)
        {
            try
            {
                var repository = unitOfWork.GetRepository<ToDo>();
                var todo = await repository.GetPagedListAsync(predicate: x => string.IsNullOrWhiteSpace(parameter.Search) ? true : x.Title.Contains(parameter.Search),
                    pageIndex: parameter.PageIndex,
                    pageSize: parameter.PageSize,
                    orderBy: y => y.OrderByDescending(t => t.CreateDate));
                if (todo != null)
                {
                    return new ApiResponse(true, todo);
                }
                else
                {
                    return new ApiResponse(false, "查询数据失败!");
                }
            }
            catch (Exception ex)
            {

                return new ApiResponse(false, ex.Message);
            }
        }
/// <summary>
        /// 分页查询所有备忘录
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public async Task<ApiResponse> GetPageListAllAsync(QueryParameter parameter)
        {
            try
            {
                var repository = _unitOfWork.GetRepository<Memo>();
                var memo = await repository.GetPagedListAsync(predicate: x => string.IsNullOrWhiteSpace(parameter.Search) ? true : x.Title.Contains(parameter.Search),
                    pageIndex: parameter.PageIndex,
                    pageSize: parameter.PageSize,
                    orderBy: y => y.OrderByDescending(t => t.CreateDate));
                if (memo != null)
                {
                    return new ApiResponse(true, memo);
                }
                else
                {
                    return new ApiResponse(false, "查询数据失败!");
                }
            }
            catch (Exception ex)
            {
                return new ApiResponse(false, ex.Message);
            }

        }

 11、在ToDoController和MemoController中添加代码

        [HttpGet]
        public async Task<ApiResponse> GetAllPageList([FromQuery] QueryParameter parameter)
        {
            return await toDoService.GetPageListAllAsync(parameter);
        }

        [HttpGet]
        public async Task<ApiResponse> GetAllPageList([FromQuery] QueryParameter parameter)
        {
            return await memoService.GetPageListAllAsync(parameter);
        }

12、F5运行项目

WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapiWPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapi

 WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapi

 WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口,WPF,.netcore,.netcore,webapi文章来源地址https://www.toymoban.com/news/detail-682193.html

到了这里,关于WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】常用功能备忘录

    GPIO_PinState 名称 功能 GPIO_PIN_RESET 低电平(0) GPIO_PIN_SET 高电平(1) 标准库:         需要使能TIM_Cmd(TIM8, ENABLE); 和 TIM3_IRQHandler中断服务函数 HAL库:         要手动开启和关闭定时器及其中断:          中断回调函数 -- 名字不能错误  一定要先开定时器中断,再开定时器

    2024年01月21日
    浏览(15)
  • 01-创建项目-工具使用备忘录

    创建项目 创建好目录文件夹 选择对应芯片型号 不用自动生成启动文件 创建编写代码文件: 命名第一个主逻辑调用文件名为main 然后可以再main.c中编写代码 勾选输出文件格式: 编译生成hex文件(此文件供单片机下载执行): 系统频率:参考开发板 晶振 频率 8051指令集:参考芯

    2024年02月11日
    浏览(30)
  • 微信小程序项目实例——备忘录

    项目代码见文字底部,点赞关注有惊喜 项目是一个备忘录,拥有记录文字、计时和提醒的基本功能 项目只有一个页面,整体简约便捷 用户可以输入相关事件,并设立时间,便可完成备忘 当完成或未按期完成时,可以自行确认或删除 项目已上传,点击下载(关注可私聊拿代

    2024年02月11日
    浏览(15)
  • Vue:Vue项目中的Cesium配置备忘录

    作者:CSDN @ _乐多_ 本文记录了 Vue 项目中配置 Cesium 相关过程和细节。 一、安装Cesium 在node_modules中找到Cesium,将其中的Cesium文件夹复制到public中。 二、配置 index.html 主要加入这两行, 整个 index.html 如下, 声明: 本人作为一名作者,非常重视自己的作品和知识产权。在此声

    2024年02月06日
    浏览(11)
  • 【Go语言实战】(22) gin+micro v4+rabbitmq+etcd 重构备忘录

    最近稍微重构了之前写的 micro-todolist 模块 项目地址:https://github.com/CocaineCong/micro-todoList 本次升级将原有的micro v2升级到了micro v4版本,v5 still deving,所以可能不太稳定,所以选择了v4版本。 micro相对于grpc,区别就是 grpc比较原始 ,什么都要自己封装,比如 服务的注册与发现

    2024年02月07日
    浏览(12)
  • 【备忘录】uni-app的地图相关组件操作,uni-app接入腾讯地图API的具体实现

    官方帮助文档:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview 进行一些简单的配置 Uniapp提供的位置相关的服务: https://uniapp.dcloud.net.cn/api/location/location.html UniApp提供的地图组件 https://uniapp.dcloud.net.cn/component/map.html 文档针对微信小程序进行设置,其他端使用这些组件还需要参

    2023年04月26日
    浏览(20)
  • 手机备忘录怎么设置提醒 备忘录提醒设置方法

    具备提醒功能的手机备忘录有很多,比如云便签的提醒功能十分好用,不仅可设置单次定时提醒,还能添加重复提醒、重要事项提醒或到期延时提醒等,而且提醒方式也支持应用、微信、短信、电话、邮箱及手机系统日历等多种。那这款手机备忘录怎么设置提醒?备忘录提醒

    2024年02月12日
    浏览(14)
  • 苹果备忘录如何转移?备忘录怎么转移到新手机?

    对于很多苹果手机的用户而言,想必都有使用备忘录的习惯吧?但是,经过长期的使用,当需要更换手机设备时,您考虑过如何转移这些记录吗? 苹果备忘录怎么转移到新手机? 如您使用的是苹果手机内置的备忘录,并且需要更换的新设备依然是苹果手机,其解决方案非常

    2024年02月13日
    浏览(19)
  • 手机备忘录如何批量导出来,备忘录整体导出方法介绍

    手机备忘录如何批量导出来?一些品牌的手机上有自带的备忘录,大多手机自带备忘录都不支持直接批量导出,只能通过分享或复制类的功能逐条导出,手动进行整理。 除了手机自带备忘录,一些朋友会选择在自己的手机上使用云便签备忘录,不仅可以在线添加备忘录提醒事

    2024年02月16日
    浏览(21)
  • 苹果手机备忘录如何导入新手机?手机备忘录怎么转移?

    一般来说,大多数手机用户更换手机的频率是3—5年,在一部手机使用了几年之后,就会出现内存不足、系统卡顿、电池续航时间较短等问题,这时候就需要更换新的手机了。有不少苹果手机用户在更换新手机的时候,都很发愁一个问题,这就是手机备忘录如何导入新手机。

    2024年01月25日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包