public async Task <Guid> Handle(Command request, CancellationToken cancellationToken) { DataModel.Activity activity = _mapperHelper.Map <Command, DataModel.Activity>(request); //Generate new Id for new Entity activity.Id = Guid.NewGuid(); _unitOfWork.ActivityRepo.Add(activity); UserActivity hostAttendee = new UserActivity { Activity = activity, IsHost = true, DateJoined = HelperFunc.GetCurrentDateTime(), AppUserId = _userAccessor.GetCurrentUserId() }; _unitOfWork.UserActivityRepo.Add(hostAttendee); int insertCnt = await _unitOfWork.SaveAsync(cancellationToken); if (insertCnt > 0) { return(activity.Id); } throw new Exception("Problem saving changes to database"); }
public async Task <Unit> Handle(Command request, CancellationToken cancellationToken) { //Get existing activity from database DataModel.Activity dbActivity = await _unitOfWork.ActivityRepo.FindFirstAsync(request.ActivityId, cancellationToken); //Keep existing value as if user is not passing it from front end request.Category ??= dbActivity.Category; request.City ??= dbActivity.City; request.Date ??= dbActivity.Date; request.Description ??= dbActivity.Description; request.Title ??= dbActivity.Title; request.Venue ??= dbActivity.Venue; DataModel.Activity activity = _mapperHelper.Map <Command, DataModel.Activity>(request); _unitOfWork.ActivityRepo.Update(activity); int cnt = await _unitOfWork.SaveAsync(cancellationToken); if (cnt > 0) { return(Unit.Value); } throw new Exception("Problem saving changes to database"); }
public async Task <ActivityDto> Handle(Query request, CancellationToken cancellationToken) { DataModel.Activity dbResult = await _unitOfWork.ActivityRepo.FindFirstAsync(request.ActivityId, cancellationToken); var response = _mapperHelper.Map <DataModel.Activity, ActivityDto>(dbResult); return(response); }
public async Task <ActivityDto> PrepareActivity(DataModel.Activity dbActivity) { if (dbActivity != null) { var result = await Prepare(new List <DataModel.Activity> { dbActivity }); return(result.FirstOrDefault()); } return(null); }