Exemple #1
0
        public async Task <VehicleAnnounceForKiosksToReturnDto> GetVehicleAnnounceByIdAsync(int announceId)
        {
            var spec            = new VehicleAnnounceWithPagingSpecification(announceId);
            var vehicleAnnounce = await vehicleAnnounceDal.GetEntityWithSpecAsync(spec);

            return(mapper.Map <VehicleAnnounce, VehicleAnnounceForKiosksToReturnDto>(vehicleAnnounce));
        }
        public async Task <VehicleAnnounceForReturnDto> Update(VehicleAnnounceForCreationDto updateDto)
        {
            var checkFromRepo = await vehicleAnnounceDal.GetAsync(x => x.Id == updateDto.Id);

            if (checkFromRepo == null)
            {
                throw new RestException(HttpStatusCode.BadRequest, new { NotFound = Messages.NotFound });
            }

            var mapForUpdate = mapper.Map(updateDto, checkFromRepo);

            mapForUpdate.Updated      = DateTime.Now;
            mapForUpdate.AnnounceType = "Car";
            await vehicleAnnounceDal.Update(mapForUpdate);

            var spec        = new VehicleAnnounceWithPagingSpecification(checkFromRepo.Id);
            var getWithUser = await vehicleAnnounceDal.GetEntityWithSpecAsync(spec);

            return(mapper.Map <VehicleAnnounce, VehicleAnnounceForReturnDto>(getWithUser));
        }
        //[SecuredOperation("Sudo,VehicleAnnounces.List,VehicleAnnounces.All", Priority = 1)]
        public async Task <Pagination <VehicleAnnounceForReturnDto> > GetListAsync(VehicleAnnounceParams queryParams)
        {
            var spec         = new VehicleAnnounceWithPagingSpecification(queryParams);
            var listFromRepo = await vehicleAnnounceDal.ListEntityWithSpecAsync(spec);

            var countSpec = new VehicleAnnounceWithFilterForCountSpecification(queryParams);
            var totalItem = await vehicleAnnounceDal.CountAsync(countSpec);



            var data = mapper.Map <List <VehicleAnnounce>, List <VehicleAnnounceForReturnDto> >(listFromRepo);

            return(new Pagination <VehicleAnnounceForReturnDto>
                   (
                       queryParams.PageIndex,
                       queryParams.PageSize,
                       totalItem,
                       data
                   ));
        }
        public async Task <VehicleAnnounceForReturnDto> Create(VehicleAnnounceForCreationDto creationDto)
        {
            var checkByNameFromRepo = await vehicleAnnounceDal.GetAsync(x => x.Header.ToLower() == creationDto.Header.ToLower());

            if (checkByNameFromRepo != null)
            {
                throw new RestException(HttpStatusCode.BadRequest, new { AlreadyExist = Messages.AlreadyExist });
            }

            var mapForCreate = mapper.Map <VehicleAnnounce>(creationDto);
            var slideId      = System.Guid.NewGuid();

            mapForCreate.SlideId      = slideId;
            mapForCreate.Created      = DateTime.Now;
            mapForCreate.AnnounceType = "Car";

            var createHomeAnnounce = await vehicleAnnounceDal.Add(mapForCreate);

            var spec             = new VehicleAnnounceWithPagingSpecification(createHomeAnnounce.Id);
            var vehicleAnnounces = await vehicleAnnounceDal.GetEntityWithSpecAsync(spec);

            return(mapper.Map <VehicleAnnounce, VehicleAnnounceForReturnDto>(vehicleAnnounces));
        }
        public async Task <VehicleAnnounceForReturnDto> Publish(VehicleAnnounceForCreationDto updateDto)
        {
            var checkFromRepo = await vehicleAnnounceDal.GetAsync(x => x.Id == updateDto.Id);

            if (checkFromRepo == null)
            {
                throw new RestException(HttpStatusCode.BadRequest, new { NotFound = Messages.NotFound });
            }

            var checkAnnounceSubScreenForPublish = await vehicleAnnounceSubScreenDal.GetListAsync(x => x.VehicleAnnounceId == updateDto.Id);

            if (checkAnnounceSubScreenForPublish.Count <= 0)
            {
                throw new RestException(HttpStatusCode.BadRequest, new { NotSelectSubScreen = Messages.NotSelectSubScreen });
            }


            if (updateDto.IsPublish)
            {
                var checkDateExpire = DateTime.Compare(DateTime.Now, checkFromRepo.PublishFinishDate);
                if (checkDateExpire > 0)
                {
                    throw new RestException(HttpStatusCode.BadRequest, new { NotFound = Messages.PublishDateExpire });
                }
            }

            var mapForUpdate = mapper.Map(updateDto, checkFromRepo);

            mapForUpdate.Updated      = DateTime.Now;
            mapForUpdate.AnnounceType = "Car";
            var updateToDb = await vehicleAnnounceDal.Update(mapForUpdate);

            var spec            = new VehicleAnnounceWithPagingSpecification(updateDto.Id);
            var vehicleAnnounce = await vehicleAnnounceDal.GetEntityWithSpecAsync(spec);

            return(mapper.Map <VehicleAnnounce, VehicleAnnounceForReturnDto>(vehicleAnnounce));
        }