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); }
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); } }
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); } } } }
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); }
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); }
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); }
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()); } } }
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()); } } } }
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 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); }
public IActionResult Create() { AdCreateModel model = _adService.GetAdCreateModel(); return(View(model)); }
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)); }
public ActionResult Update(int id) { AdCreateModel model = _adService.GetAdForUpdate(id); return(View(model)); }