Пример #1
0
        public async Task <AnnoucementDto> GetAnnoucement(int id)
        {
            AnnoucementDto annoucement = await _annoucementRepo.GetSingleAnnoucementForView(id);

            if (annoucement != null)
            {
                return(annoucement);
            }
            return(null);
        }
Пример #2
0
        public async Task <IActionResult> Add([FromForm] AnnoucementCreateModel annoucementCreateModel)
        {
            AnnoucementDto annoucementDto = _mapper.Map <AnnoucementDto>(annoucementCreateModel);

            annoucementDto.UserId = User.GetUserID();

            AnnoucementDto createdAnnoucementDto = await _annoucementService.CreateAnnoucement(annoucementDto, annoucementCreateModel.Photo);

            AnnoucementWebModel createdAnnoucementModel = _mapper.Map <AnnoucementWebModel>(createdAnnoucementDto);

            return(CreatedAtAction(nameof(GetById), new { id = createdAnnoucementDto.AnnoucementId }, createdAnnoucementDto));
        }
Пример #3
0
        public async Task <IActionResult> GetById([FromRoute] int id)
        {
            AnnoucementDto annoucementDto = await _annoucementService.GetAnnoucement(id);

            if (annoucementDto == null)
            {
                return(NotFound($"No annoucement with id: {id}"));
            }
            AnnoucementWebModel annoucementWebModel = _mapper.Map <AnnoucementWebModel>(annoucementDto);

            return(Ok(annoucementWebModel));
        }
Пример #4
0
        public async Task <AnnoucementDto> CreateAnnoucement(AnnoucementDto annoucementDto)
        {
            Annoucement annoucementToCreate = _mapper.Map <Annoucement>(annoucementDto);

            annoucementToCreate.CreateDate     = DateTime.Now;
            annoucementToCreate.ExpirationDate = DateTime.Now.AddDays(30);
            annoucementToCreate.IsActive       = true;

            Annoucement createdAnnoucement = await CreateAndReturn(annoucementToCreate);

            return(_mapper.Map <AnnoucementDto>(createdAnnoucement));
        }
Пример #5
0
        public async Task <AnnoucementDto> UpdateAnnoucement(AnnoucementDto annoucementDto)
        {
            Annoucement annoucementFromDb = await GetSingle(a => a.AnnoucementId == annoucementDto.AnnoucementId);

            Action <IMappingOperationOptions <AnnoucementDto, Annoucement> > mappingOptions = x =>
                                                                                              x.BeforeMap((src, dest) =>
            {
                src.CreateDate     = dest.CreateDate;
                src.ExpirationDate = dest.ExpirationDate;
                src.IsActive       = dest.IsActive;
            });

            _mapper.Map <AnnoucementDto, Annoucement>(annoucementDto, annoucementFromDb, mappingOptions);

            Annoucement createdAnnoucement = await UpdateAndReturn(annoucementFromDb);

            return(_mapper.Map <AnnoucementDto>(createdAnnoucement));
        }
Пример #6
0
        public async Task <AnnoucementDto> CreateAnnoucement(AnnoucementDto annoucementDto, List <IFormFile> images)
        {
            bool exists = await BrandCategoryExists(annoucementDto.BrandCategoryId);

            if (!exists)
            {
                throw new Exception("BrandCategory Id does not exist");
            }

            AnnoucementDto createdAnnoucement = await _annoucementRepo.CreateAnnoucement(annoucementDto);

            if (images != null)
            {
                await SaveAnnoucementImages(createdAnnoucement.AnnoucementId, images);
            }

            return(createdAnnoucement);
        }
Пример #7
0
        public async Task <IActionResult> Delete([FromRoute] int id)
        {
            AnnoucementDto annoucement = await _annoucementService.GetAnnoucement(id);

            if (annoucement == null)
            {
                return(BadRequest($"No annoucement with id: {id}"));
            }

            int currentUser = User.GetUserID();

            if (currentUser != annoucement.UserId)
            {
                return(StatusCode((int)HttpStatusCode.Forbidden, "You are not allowed to delete other user's annoucement!"));
            }

            await _annoucementService.DeleteAnnoucement(id);

            return(Ok());
        }
Пример #8
0
        public async Task <AnnoucementDto> UpdateAnnoucement(AnnoucementDto annoucementDto, List <IFormFile> images)
        {
            bool exists = await BrandCategoryExists(annoucementDto.BrandCategoryId);

            if (!exists)
            {
                throw new Exception("BrandCategory Id does not exist");
            }

            AnnoucementDto updatedAnnoucement = await _annoucementRepo.UpdateAnnoucement(annoucementDto);

            if (images != null)
            {
                _imageFileManager.DeleteOldImages(updatedAnnoucement.AnnoucementId);

                await SaveAnnoucementImages(updatedAnnoucement.AnnoucementId, images);
            }

            return(annoucementDto);
        }
Пример #9
0
        public async Task <IActionResult> Update([FromForm] AnnoucementUpdateModel annoucementUpdateModel)
        {
            AnnoucementDto annoucementDto = await _annoucementService.GetAnnoucement(annoucementUpdateModel.AnnoucementId);

            if (annoucementDto == null)
            {
                return(BadRequest($"No annoucement with id: {annoucementUpdateModel.AnnoucementId}"));
            }

            int currentUser = User.GetUserID();

            if (currentUser != annoucementDto.UserId)
            {
                return(StatusCode((int)HttpStatusCode.Forbidden, "You are not allowed to update other user's annoucement!"));
            }

            AnnoucementDto annoucementUpdateDto = _mapper.Map <AnnoucementDto>(annoucementUpdateModel);

            annoucementUpdateDto.UserId = currentUser;

            AnnoucementDto updatedAnnoucement = await _annoucementService.UpdateAnnoucement(annoucementUpdateDto, annoucementUpdateModel.Photo);

            return(CreatedAtAction(nameof(GetById), new { id = updatedAnnoucement.AnnoucementId }, updatedAnnoucement));
        }