/// <summary> /// 新增Activity /// </summary> //[AbpAuthorize(ActivityAppPermissions.Activity_CreateActivity)] protected virtual async Task <ActivityEditDto> CreateActivityAsync(ActivityEditDto input) { //TODO:新增前的逻辑判断,是否允许新增 var entity = ObjectMapper.Map <Activity>(input); entity.TenantId = AbpSession.TenantId; entity = await _activityRepository.InsertAsync(entity); return(entity.MapTo <ActivityEditDto>()); }
/// <summary> /// 添加或者修改Activity的公共方法 /// </summary> public async Task <ActivityEditDto> CreateOrUpdateActivityDto(ActivityEditDto input) { if (input.Id.HasValue) { return(await UpdateActivityAsync(input)); } else { return(await CreateActivityAsync(input)); } }
protected virtual async Task UpdateActivityAsync(ActivityEditDto input) { //TODO:更新前的逻辑判断,是否允许更新 var entity = await _activityRepository.GetAsync(input.Id.Value); input.MapTo(entity); // ObjectMapper.Map(input, entity); await _activityRepository.UpdateAsync(entity); }
public async Task GetActivityById_WithValidData_ShouldReturnCorrectResult(string id) { string errorMessagePrefix = "ActivitiesService EditActivityAsync() method does not work properly."; var context = OmmDbContextInMemoryFactory.InitializeContext(); await SeedData(context); this.activitiesService = new ActivitiesService(context); ActivityEditDto expectedResult = (await context.Activities.SingleAsync(a => a.Id == id)).To <ActivityEditDto>(); ActivityEditDto actualResult = await this.activitiesService.GetActivityById <ActivityEditDto>(id).SingleAsync(); Assert.True(expectedResult.Date == actualResult.Date, errorMessagePrefix + " " + "Date is not returned properly."); Assert.True(expectedResult.Description == actualResult.Description, errorMessagePrefix + " " + "Description is not returned properly."); Assert.True(expectedResult.WorkingTime == actualResult.WorkingTime, errorMessagePrefix + " " + "WorkingTime is not returned properly."); Assert.True(expectedResult.ReportId == actualResult.ReportId, errorMessagePrefix + " " + "ReportId is not returned properly."); }
public async Task EditActivityAsync_WithInvalidId_ShouldThrowNullReferenceException() { var context = OmmDbContextInMemoryFactory.InitializeContext(); await SeedData(context); this.activitiesService = new ActivitiesService(context); ActivityEditDto expectedResult = (await context.Activities.FirstAsync()).To <ActivityEditDto>(); expectedResult.Date = "22/08/2019"; expectedResult.Description = "New description when edited"; expectedResult.WorkingTime = "01:33"; expectedResult.Id = "Invalid Id"; var ex = await Assert.ThrowsAsync <NullReferenceException>(() => this.activitiesService.EditActivityAsync(expectedResult)); Assert.Equal(string.Format(ErrorMessages.ActivityIdNullReference, expectedResult.Id), ex.Message); }
public async Task <bool> EditActivityAsync(ActivityEditDto input) { var activity = await this.context.Activities.SingleOrDefaultAsync(a => a.Id == input.Id); if (activity == null) { throw new NullReferenceException(string.Format(ErrorMessages.ActivityIdNullReference, input.Id)); } activity.Date = DateTime.ParseExact(input.Date, Constants.ACTIVITY_DATETIME_FORMAT, CultureInfo.InvariantCulture); activity.Description = input.Description; var workingTime = input.WorkingTime.Split(Constants.WORKING_TIME_SPLIT_VALUE, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray(); activity.WorkingMinutes = workingTime[0] * Constants.MINUTES_IN_HOUR + workingTime[1]; this.context.Activities.Update(activity); var result = await this.context.SaveChangesAsync(); return(result > 0); }
/// <summary> /// 导出Activity为excel表 /// </summary> /// <returns></returns> //public async Task<FileDto> GetActivitysToExcel(){ //var users = await UserManager.Users.ToListAsync(); //var userListDtos = ObjectMapper.Map<List<UserListDto>>(users); //await FillRoleNames(userListDtos); //return _userListExcelExporter.ExportToFile(userListDtos); //} /// <summary> /// MPA版本才会用到的方法 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <GetActivityForEditOutput> GetActivityForEdit(NullableIdDto <Guid> input) { var output = new GetActivityForEditOutput(); ActivityEditDto activityEditDto; if (input.Id.HasValue) { var entity = await _activityRepository.GetAsync(input.Id.Value); activityEditDto = entity.MapTo <ActivityEditDto>(); //activityEditDto = ObjectMapper.Map<List <activityEditDto>>(entity); } else { activityEditDto = new ActivityEditDto(); } output.Activity = activityEditDto; return(output); }
public async Task EditActivityAsync_WithValidData_ShouldEditActivityAndReturnTrue() { string errorMessagePrefix = "ActivitiesService EditActivityAsync() method does not work properly."; var context = OmmDbContextInMemoryFactory.InitializeContext(); await SeedData(context); this.activitiesService = new ActivitiesService(context); ActivityEditDto expectedResult = (await context.Activities.FirstAsync()).To <ActivityEditDto>(); expectedResult.Date = "22/08/2019"; expectedResult.Description = "New description when edited"; expectedResult.WorkingTime = "01:33"; await this.activitiesService.EditActivityAsync(expectedResult); var actualResult = (await context.Activities.FirstAsync()).To <ActivityEditDto>(); Assert.True(expectedResult.Date == actualResult.Date, errorMessagePrefix + " " + "Date is not changed properly."); Assert.True(expectedResult.Description == actualResult.Description, errorMessagePrefix + " " + "Description is not changed properly."); Assert.True(expectedResult.WorkingTime == actualResult.WorkingTime, errorMessagePrefix + " " + "WorkingTime is not changed properly."); }