| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- using System.Linq.Expressions;
- using Abp.Auditing;
- using Abp.Authorization;
- using Abp.Specifications;
- using Abp.UI;
- using VberZero.AppService.Base;
- using VberZero.AppService.Base.Dto;
- using VberZero.AppService.Calendars.Dto;
- using VberZero.Auditing;
- using VberZero.BaseSystem;
- using VberZero.DomainService.Calendar;
- using VberZero.Tools.StringModel;
- namespace VberZero.AppService.Calendars;
- [AbpAuthorize, AuditLog("日程管理", "日程")]
- public class CalendarAppServiceBase : VzAppServiceBase, ICalendarAppServiceBase
- {
- public CalendarAppServiceBase()
- {
- CalendarManger = NullCalendarManger.Instance;
- }
- public ICalendarManger CalendarManger { get; set; }
- [DisableAuditing]
- public async Task<List<CalendarDto>> GetAll(VzPagedRequestDto input)
- {
- Expression<Func<SysCalendar, bool>> exp = a => a.OwnerId == AbpSession.UserId && a.Start != null;
- foreach (var search in input.SearchList)
- {
- if (search.KeyField.ToLower() == "start" && DateTime.TryParse(search.KeyWords, out var start))
- {
- exp = exp.And(a => DateTime.Compare(a.Start.Value, start) >= 0);
- }
- if (search.KeyField.ToLower() == "end" && DateTime.TryParse(search.KeyWords, out var end))
- {
- exp = exp.And(a => DateTime.Compare(a.Start.Value, end) < 0);
- }
- }
- var entities = await CalendarManger.GetAllList(exp);
- return entities.Select(MapToDto).ToList();
- }
- public async Task<List<CalendarDto>> GetNotStartList()
- {
- var entities = await CalendarManger.GetAllList(a => a.OwnerId == AbpSession.UserId && a.Start == null);
- return entities.Select(MapToDto).ToList();
- }
- public async Task<CalendarDto> Get(int id)
- {
- var entity = await CalendarManger.GetById(id);
- return MapToDto(entity);
- }
- public virtual async Task<CalendarDto> Create(CreateCalendarDto input)
- {
- if (input.Start != null && DateTime.Compare(input.Start.Value, DateTime.Today) <= 0)
- {
- CheckErrors("日程时间不能早于当前时间!");
- }
- var info = ObjectMapper.Map<SysCalendar>(input);
- info.OwnerId = AbpSession.UserId;
- info.IsNotify = !input.NotifyType.Empty();
- var entity = await CalendarManger.Create(info);
- return MapToDto(entity);
- }
- public virtual async Task<CalendarDto> Update(UpdateCalendarDto input)
- {
- input.Start = input.Start == DateTime.MinValue ? null : input.Start;
- if (input.Start != null && DateTime.Compare(input.Start.Value, DateTime.Today) < 0)
- {
- CheckErrors("日程时间不能早于当前时间!");
- }
- input.End = input.End == DateTime.MinValue ? null : input.End;
- if (input.End != null && DateTime.Compare(input.End.Value, DateTime.Today) < 0)
- {
- CheckErrors("日程时间不能早于当前时间!");
- }
- if (input.Start != null && input.End != null && DateTime.Compare(input.End.Value, input.Start.Value) < 0)
- {
- CheckErrors("日程结束时间不能早于开始时间!");
- }
- var entity = await CalendarManger.GetById(input.Id);
- if (entity == null)
- {
- throw new UserFriendlyException("没有查询到日程!");
- }
- var info = ObjectMapper.Map(input, entity);
- info.IsNotify = !input.NotifyType.Empty();
- entity = await CalendarManger.Update(info);
- return MapToDto(entity);
- }
- public virtual Task Delete(int id)
- {
- return CalendarManger.Delete(id);
- }
- private CalendarDto MapToDto(SysCalendar entity)
- {
- var dto = ObjectMapper.Map<CalendarDto>(entity);
- return dto;
- }
- }
|