private void SetDiaryDtoLocations(long diaryId, DiaryDto diaryDto) { List <DiaryCountry> diaryCountries = _diaryRepository.GetDiaryCountries(diaryId); List <DiaryCity> diaryCities = _diaryRepository.GetDiaryCities(diaryId); SetDiaryDtoLocations(diaryDto, diaryCountries, diaryCities); }
public async Task <IActionResult> UpdateDiary(Guid?id, DiaryDto diaryToUpdate) { var(_, title, description) = diaryToUpdate; var updatedDiary = await _mediator.Send(new UpdateDiaryRequest(id, title, description)); return(Ok(updatedDiary)); }
public async Task <ActionResponse <DiaryDto> > Insert(DiaryDto entityDto) { try { using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { var entityToAdd = mapper.Map <DiaryDto, Diary>(entityDto); unitOfWork.GetGenericRepository <Diary>().Add(entityToAdd); unitOfWork.Save(); mapper.Map(entityToAdd, entityDto); if ((await ModifyStudentGroupsForDiary(entityDto)).IsNotSuccess(out ActionResponse <DiaryDto> response, out entityDto)) { return(response); } scope.Complete(); return(await ActionResponse <DiaryDto> .ReturnSuccess(mapper.Map(entityToAdd, entityDto))); } } catch (Exception) { return(await ActionResponse <DiaryDto> .ReturnError("Greška prilikom upisa dnevnika rada.")); } }
public List <DiaryDto> SearchDiary(SearchDiaryRequest searchDiaryRequest) { List <DiarySearchResult> matchedDiaries = _diarySearcher.SearchDiaries(searchDiaryRequest); List <DiaryDto> diaryDtos = matchedDiaries.Select(matchDiary => { DiaryDto diaryDto = Mapper.Map <DiaryDto>(matchDiary.Diary); diaryDto.Writer = Mapper.Map <WriterDto>(matchDiary.Writer); SetDiaryDtoLocations(diaryDto, matchDiary.Countries.ToList(), matchDiary.Cities.ToList()); SetDiaryStatistics(diaryDto); return(diaryDto); }).ToList(); return(diaryDtos); }
public DiaryDto GetDiaryById(long id) { DiaryMetaData diary = _diaryRepository.GetDiary(id); if (diary == null) { return(null); } DiaryDto diaryDto = Mapper.Map <DiaryDto>(diary); SetDiaryDtoLocations(id, diaryDto); SetDiaryStatistics(diaryDto); return(diaryDto); }
public async Task <ActionResult <DiaryDto> > AddEntity(DiaryAddDto diaryAddDto) { MessageInfo <DiaryDto> msge = new MessageInfo <DiaryDto>(); if (string.IsNullOrWhiteSpace(diaryAddDto.DiaryTitle) || string.IsNullOrWhiteSpace(diaryAddDto.DiaryTitleContent)) { msge.Code = 400; msge.Msg = "请填写完善对应信息"; msge.Success = false; return(Ok(msge)); } Diary diary = mapper.Map <Diary>(diaryAddDto); await diaryService.AddEntity(diary); await diaryService.SaveChanges(); DiaryDto toDiaryDto = mapper.Map <DiaryDto>(diary); msge.Code = 201; return(Ok(toDiaryDto)); }
private async Task <ActionResponse <DiaryDto> > ModifyStudentGroupsForDiary(DiaryDto entityDto) { try { var existingGroups = mapper.Map <List <DiaryStudentGroup>, List <DiaryStudentGroupDto> >( unitOfWork.GetGenericRepository <DiaryStudentGroup>().GetAll(s => s.DiaryId == entityDto.Id)); entityDto.StudentGroupIds = entityDto.StudentGroupIds ?? new List <int>(); var groupsToAdd = entityDto.StudentGroupIds .Where(nsg => !existingGroups.Select(eg => eg.StudentGroupId).Contains(nsg)) .Select(dsg => new DiaryStudentGroupDto { DiaryId = entityDto.Id, StudentGroupId = dsg }).ToList(); var groupsToRemove = existingGroups .Where(es => !entityDto.StudentGroupIds.Contains(es.StudentGroupId.Value)) .ToList(); if ((await AddStudentGroups(groupsToAdd)).IsNotSuccess <List <DiaryStudentGroupDto> >(out ActionResponse <List <DiaryStudentGroupDto> > groupResponse, out groupsToAdd)) { return(await ActionResponse <DiaryDto> .ReturnError(groupResponse.Message)); } if ((await RemoveStudentGroups(groupsToRemove)).IsNotSuccess(out groupResponse)) { return(await ActionResponse <DiaryDto> .ReturnError(groupResponse.Message)); } return(await ActionResponse <DiaryDto> .ReturnSuccess(entityDto, "Dnevnik rada uspješno unesen.")); } catch (Exception) { return(await ActionResponse <DiaryDto> .ReturnError("Greška prilikom ažuriranja grupa studenata u dnevniku rada.")); } }
public async Task <IActionResult> AddDiary(DiaryDto diaryToAdd) { var addedDiary = await _mediator.Send(new AddDiaryRequest(diaryToAdd.Title, diaryToAdd.Description)); return(CreatedAtAction(nameof(GetDiary), new { id = addedDiary.Id }, addedDiary)); }
private void SetDiaryStatistics(DiaryDto diaryDto) { diaryDto.ViewCount = _diaryStatisticRepository.GetDiaryViewsCount(diaryDto.Id); }
private void SetDiaryDtoLocations(DiaryDto diaryDto, List <DiaryCountry> diaryCountries, List <DiaryCity> diaryCities) { diaryDto.Countries = diaryCountries.Select(diaryCountry => diaryCountry.Country).ToList(); diaryDto.Cities = diaryCities.Select(diaryCity => diaryCity.City).ToList(); }
public async Task <ActionResponse <DiaryDto> > Update([FromBody] DiaryDto request) { return(await diaryService.Update(request)); }