Beispiel #1
0
        public static Ad MapAdFromAdCreateModel(AdCreateModel entity, List <AdDetailPicture> pictures)
        {
            Ad ad = new Ad
            {
                Name       = entity.Name,
                Price      = entity.Price,
                CategoryID = entity.CategoryId,
                CityID     = entity.CityId,
                OwnerId    = entity.OwnerId,
                CreatedBy  = entity.CreatedBy,
                CreatedAt  = entity.CreatedAt,
                ModifiedAt = entity.ModifiedAt,
                ModifiedBy = entity.ModifiedBy,
                CountryID  = entity.CountryId,
                AdDetail   = new AdDetail
                {
                    MainPictureThumbnailFile = entity.MainPictureThumbnail,
                    Description      = entity.AdDetail.Description,
                    CreatedBy        = entity.CreatedBy,
                    CreatedAt        = entity.CreatedAt,
                    ModifiedAt       = entity.ModifiedAt,
                    ModifiedBy       = entity.ModifiedBy,
                    AdDetailPictures = pictures
                }
            };

            return(ad);
        }
Beispiel #2
0
        public void UpdateAd(AdCreateModel model, int userId)
        {
            using (var unitOfWork = _unitOfWorkFactory.Create())
            {
                Ad ad = Mapper.Map <Ad>(model);
                ad.AuthorId = userId;

                List <Image> images = unitOfWork.Images.GetAll().Where(x => x.AdId == ad.Id).ToList();
                if (images != null)
                {
                    foreach (var image in images)
                    {
                        unitOfWork.Images.Remove(image);
                    }
                }

                if (model.Images != null && model.Images.Count > 0)
                {
                    int adId = unitOfWork.Ads.GetAll().Last().Id;

                    for (int i = 0; i < model.Images.Count; i++)
                    {
                        var image = new Image()
                        {
                            AdId    = adId,
                            Picture = GetImageBytes(model.Images[i]),
                            Main    = i == 0 ? true : false
                        };
                        unitOfWork.Images.Create(image);
                    }
                }
                unitOfWork.Ads.Update(ad);
            }
        }
Beispiel #3
0
        public void CreateAd(AdCreateModel model, int userId)
        {
            using (var unitOfWork = _unitOfWorkFactory.Create())
            {
                Ad ad = Mapper.Map <Ad>(model);
                ad.AuthorId      = userId;
                ad.CreatedOnDate = DateTime.Now;
                unitOfWork.Ads.Create(ad);

                if (model.Images != null && model.Images.Count > 0)
                {
                    int adId = unitOfWork.Ads.GetAll().Last().Id;

                    for (int i = 0; i < model.Images.Count; i++)
                    {
                        var image = new Image()
                        {
                            AdId    = adId,
                            Picture = GetImageBytes(model.Images[i]),
                            Main    = i == 0 ? true : false
                        };
                        unitOfWork.Images.Create(image);
                    }
                }
            }
        }
Beispiel #4
0
        public bool Add(AdCreateModel entity)
        {
            #region Pictures Manipulation
            List <AdDetailPicture> pictures = new List <AdDetailPicture>();
            if (entity.FilesAsListOfByteArray != null && entity.FilesAsListOfByteArray.Count > 0)
            {
                foreach (var file in entity.FilesAsListOfByteArray)
                {
                    pictures.Add(new AdDetailPicture
                    {
                        File       = file,
                        CreatedBy  = entity.CreatedBy,
                        CreatedAt  = entity.CreatedAt,
                        ModifiedAt = entity.ModifiedAt,
                        ModifiedBy = entity.ModifiedBy,
                    });
                }

                entity.MainPictureThumbnail = MagiskImageWrapper.MakeThumbnailImage(System.Convert.FromBase64String(entity.MainPictureFile));
            }
            #endregion

            var ad = AdMapper.MapAdFromAdCreateModel(entity, pictures);

            return(_repository.Add(ad));
        }
        public void Constructor_WithoutProperties_FillInModel()
        {
            // Given
            BaseAd ad = new Ad();

            ad.Body        = "body";
            ad.Title       = "title";
            ad.PhoneNumber = "78.85.75";
            ad.Price       = 2000;
            ad.Category    = new Bea.Domain.Categories.Category {
                Id = 12
            };
            ad.City = new Bea.Domain.Location.City {
                Id = 11, Province = new Bea.Domain.Location.Province {
                    Id = 13
                }
            };
            ad.CreatedBy = new User {
                Email = "*****@*****.**", Firstname = "Nico"
            };
            // When
            AdCreateModel actual = new AdCreateModel(ad);

            // Then
            Assert.AreEqual("body", actual.Body);
            Assert.AreEqual("title", actual.Title);
            Assert.AreEqual("78.85.75", actual.Telephone);
            Assert.AreEqual(2000, actual.Price);
            Assert.AreEqual(12, actual.SelectedCategoryId);
            Assert.AreEqual(11, actual.SelectedCityId);
            Assert.AreEqual(13, actual.SelectedProvinceId);
            Assert.AreEqual("*****@*****.**", actual.Email);
            Assert.AreEqual("Nico", actual.Name);
        }
Beispiel #6
0
        public async Task <ActionResult> CreateAd(AdCreateModel model)
        {
            User user = await _userManager.GetUserAsync(User);

            _adService.CreateAd(model, user.Id);

            return(RedirectToAction("Index", "Home"));
        }
        public void Constructor_SetIsOfferToTrue()
        {
            // When
            AdCreateModel actual = new AdCreateModel();

            // Then
            Assert.IsTrue(actual.IsOffer);
        }
Beispiel #8
0
 public AdCreateModel GetAdForUpdate(int adId)
 {
     using (var unitOfWork = _unitOfWorkFactory.Create())
     {
         AdCreateModel ad = Mapper.Map <AdCreateModel>(unitOfWork.Ads.GetAllWithCategoryAndImages().First(x => x.Id == adId));
         ad.CategorySelect = GetCategorySelect();
         return(ad);
     }
 }
        public void Constructor_WithoutImages_LeaveImageIdsAsNull()
        {
            // Given
            BaseAd ad = new Ad();

            // When
            AdCreateModel actual = new AdCreateModel(ad);

            // Then
            Assert.AreEqual(String.Empty, actual.ImageIds);
        }
Beispiel #10
0
 private void EntityFormMap(string[] array, AdCreateModel entity)
 {
     if (array != null)
     {
         foreach (var byteStream in array)
         {
             byte[] byteArray = System.Convert.FromBase64String(byteStream);
             using (MemoryStream stream = new MemoryStream(byteArray))
                 entity.FilesAsListOfByteArray.Add(stream.ToArray());
         }
     }
 }
Beispiel #11
0
 private void MapFiles(AdCreateModel entity)
 {
     if (entity.Files != null)
     {
         foreach (var file in entity.Files)
         {
             using (var memoryStream = new MemoryStream())
             {
                 file.CopyTo(memoryStream);
                 entity.FilesAsListOfByteArray.Add(memoryStream.ToArray());
             }
         }
     }
 }
Beispiel #12
0
 public AdCarCreateModel( CarAd ad, AdCreateModel model)
 {
     this.Body = ad.Body;
     this.IsOffer = ad.IsOffer;
     this.Price = ad.Price;
     this.SelectedCategoryId = model.SelectedCategoryId;
     this.SelectedCityId = model.SelectedCityId;
     this.SelectedProvinceId = model.SelectedProvinceId;
     this.Telephone = ad.PhoneNumber;
     this.Title = ad.Title;
     this.Km = ad.Kilometers;
     if(ad.Fuel!=null)
         this.SelectedFuelId = ad.Fuel.Id;
     if (ad.Brand != null)
         this.SelectedBrandId = ad.Brand.Id;
 }
Beispiel #13
0
 public AdCarCreateModel(CarAd ad, AdCreateModel model)
 {
     this.Body               = ad.Body;
     this.IsOffer            = ad.IsOffer;
     this.Price              = ad.Price;
     this.SelectedCategoryId = model.SelectedCategoryId;
     this.SelectedCityId     = model.SelectedCityId;
     this.SelectedProvinceId = model.SelectedProvinceId;
     this.Telephone          = ad.PhoneNumber;
     this.Title              = ad.Title;
     this.Km = ad.Kilometers;
     if (ad.Fuel != null)
     {
         this.SelectedFuelId = ad.Fuel.Id;
     }
     if (ad.Brand != null)
     {
         this.SelectedBrandId = ad.Brand.Id;
     }
 }
        public void Constructor_With2Images_ConcatImageIds()
        {
            // Given
            BaseAd ad = new Ad();

            ad.AddImage(new AdImage()
            {
                Id = Guid.Parse("e9da8b1e-aa77-401b-84e0-a1290130b7b7")
            });
            ad.AddImage(new AdImage()
            {
                Id = Guid.Parse("e9da8b1e-aa77-401b-84e0-a1290130b7b9")
            });

            // When
            AdCreateModel actual = new AdCreateModel(ad);

            // Then
            Assert.AreEqual("e9da8b1e-aa77-401b-84e0-a1290130b7b7;e9da8b1e-aa77-401b-84e0-a1290130b7b9;", actual.ImageIds);
        }
Beispiel #15
0
        public IActionResult Create()
        {
            AdCreateModel model = _adService.GetAdCreateModel();

            return(View(model));
        }
Beispiel #16
0
        public IActionResult Create([FromForm] AdCreateModel entity)
        {
            if (ModelState.IsValid)
            {
                string currentUser = HttpContext?.User?.Identity?.Name;
                if (!String.IsNullOrEmpty(currentUser))
                {
                    try
                    {
                        AuditedEntityMapper <AdCreateModel> .FillCreateAuditedEntityFields(entity, currentUser, CountryId);

                        entity.OwnerId = CurrentUserId;

                        #region File Map
                        //need to map files in controller because aspnet core assembly is present in project
                        string[] result;
                        if (!String.IsNullOrEmpty(entity.SerializedAdDetailsPictures))
                        {
                            result = Newtonsoft.Json.JsonConvert.DeserializeObject <string[]>(entity.SerializedAdDetailsPictures);
                            entity.MainPictureFile = Newtonsoft.Json.JsonConvert.DeserializeObject <string>(entity.MainPictureFile);
                            EntityFormMap(result, entity);
                        }
                        else
                        {
                            MapFiles(entity);
                        }
                        //
                        #endregion

                        bool statusResult = _adService.Add(entity);
                        if (statusResult)
                        {
                            return(RedirectToAction(nameof(Index)).WithSuccess(LOCALIZATION_SUCCESS_DEFAULT));
                        }
                        else
                        {
                            return(RedirectToAction(nameof(Index)).WithError(LOCALIZATION_ERROR_DEFAULT));
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex, ex.Message);
                        return(RedirectToAction(nameof(Index)).WithError(ex.Message));
                    }
                }
                else
                {
                    _logger.LogError(LOCALIZATION_ERROR_USER_MUST_LOGIN);
                    return(NotFound().WithError(LOCALIZATION_ERROR_USER_MUST_LOGIN));
                }
            }

            ViewBag.Cities     = _cityService.GetAllAsLookup(CountryId);
            ViewBag.Categories = _categoryService.GetAllAsLookup(CountryId);

            #region Preserve pictures if model validation fails
            string serializedString            = String.Empty;
            string mainPictureSerializedString = string.Empty;
            if (entity.Files != null && entity.Files.Count() > 0)
            {
                MapFiles(entity);
                serializedString            = Newtonsoft.Json.JsonConvert.SerializeObject(entity.FilesAsListOfByteArray);
                mainPictureSerializedString = Newtonsoft.Json.JsonConvert.SerializeObject(entity.FilesAsListOfByteArray.First());
            }
            if (!String.IsNullOrEmpty(entity.SerializedAdDetailsPictures))
            {
                string[] convertResult = Newtonsoft.Json.JsonConvert.DeserializeObject <string[]>(entity.SerializedAdDetailsPictures);
                EntityFormMap(convertResult, entity);
                serializedString            = Newtonsoft.Json.JsonConvert.SerializeObject(entity.FilesAsListOfByteArray);
                mainPictureSerializedString = Newtonsoft.Json.JsonConvert.SerializeObject(entity.FilesAsListOfByteArray.First());
            }

            ViewBag.SerializedPictures          = serializedString;
            ViewBag.MainPictureSerializedString = mainPictureSerializedString;
            #endregion


            return(View(entity).WithWarning(LOCALIZATION_WARNING_INVALID_MODELSTATE));
        }
Beispiel #17
0
        public ActionResult Update(int id)
        {
            AdCreateModel model = _adService.GetAdForUpdate(id);

            return(View(model));
        }