Exemple #1
0
        private void SetDiaryDtoLocations(long diaryId, DiaryDto diaryDto)
        {
            List <DiaryCountry> diaryCountries = _diaryRepository.GetDiaryCountries(diaryId);
            List <DiaryCity>    diaryCities    = _diaryRepository.GetDiaryCities(diaryId);

            SetDiaryDtoLocations(diaryDto, diaryCountries, diaryCities);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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."));
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        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."));
            }
        }
Exemple #8
0
        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));
        }
Exemple #9
0
 private void SetDiaryStatistics(DiaryDto diaryDto)
 {
     diaryDto.ViewCount = _diaryStatisticRepository.GetDiaryViewsCount(diaryDto.Id);
 }
Exemple #10
0
 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));
 }