Example #1
0
        public async Task Add(Model.Advert advert)
        {
            advert.CreatedAt = DateTime.Now;
            await _carDealerContext.Adverts
            .Include(x => x.Car)
            .Include(x => x.Images)
            .FirstAsync();

            await _carDealerContext.Adverts.AddAsync(advert);

            await _carDealerContext.SaveChangesAsync();
        }
Example #2
0
        public async Task Update(Model.Advert entity)
        {
            var advertToUpdate = await _carDealerContext.Adverts
                                 .Include(x => x.Car)
                                 .SingleOrDefaultAsync(x => x.Id == entity.Id);

            if (advertToUpdate != null)
            {
                advertToUpdate.Price       = entity.Price;
                advertToUpdate.Title       = entity.Title;
                advertToUpdate.Status      = entity.Status;
                advertToUpdate.Images      = entity.Images;
                advertToUpdate.Description = entity.Description;
                advertToUpdate.UpdatedAt   = DateTime.Now;
                advertToUpdate.Car         = entity.Car;
                advertToUpdate.UserId      = entity.UserId;

                if (entity.Car != null && advertToUpdate.Car != null)
                {
                    entity.Car.Id = advertToUpdate.Car.Id;
                    _carDealerContext.Entry(advertToUpdate.Car).CurrentValues.SetValues(entity.Car);
                }

                if (advertToUpdate.Images != null && entity.Images != null)
                {
                    var imagesToUpdate = advertToUpdate.Images.ToList();
                    foreach (var image in imagesToUpdate)
                    {
                        foreach (var entityImage in entity.Images)
                        {
                            if (image.Id == entityImage.Id)
                            {
                                _carDealerContext.Entry(imagesToUpdate).CurrentValues.SetValues(entity.Images);
                            }
                        }
                    }
                }

                await _carDealerContext.SaveChangesAsync();
            }
        }