private void EntityFormMap(string[] array, AdEditModel 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(AdEditModel 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 AdEditModel GetEditViewModel(AdViewModel viewModel, string userId) { if (viewModel.AuthorId == userId) { var editModel = new AdEditModel { Id = viewModel.Id, Title = viewModel.Title, Content = viewModel.Content, Category = viewModel.Category, ImageUrl = viewModel.ImageUrl }; return(editModel); } return(null); }
public static AdEditModel MapToAdEditModel(Ad entity) { var editModel = new AdEditModel(); var mainPicture = entity.AdDetail?.MainPictureThumbnailFile; var description = entity.AdDetail?.Description; editModel.ID = entity.ID; editModel.Name = entity.Name; editModel.OwnerId = entity.OwnerId; editModel.Price = entity.Price; editModel.CategoryId = entity.CategoryID; editModel.CityId = entity.CityID; editModel.AdDetail.AdDetailPictures = entity.AdDetail?.AdDetailPictures; editModel.MainPictureThumbnail = mainPicture; editModel.Description = description; return(editModel); }
public static Ad MapAdFromAdEditModel(AdEditModel entity, Ad existingAd) { 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, }); } } existingAd.OwnerId = entity.OwnerId; existingAd.CityID = entity.CityId; existingAd.CategoryID = entity.CategoryId; existingAd.ModifiedAt = entity.ModifiedAt; existingAd.ModifiedBy = entity.ModifiedBy; existingAd.Price = entity.Price; existingAd.Name = entity.Name; existingAd.ModifiedAt = entity.ModifiedAt; existingAd.ModifiedBy = entity.ModifiedBy; existingAd.AdDetail.ModifiedAt = entity.ModifiedAt; existingAd.AdDetail.ModifiedBy = entity.ModifiedBy; existingAd.AdDetail.AdDetailPictures = pictures; existingAd.AdDetail.MainPictureThumbnailFile = entity.MainPictureThumbnail; existingAd.AdDetail.Description = entity.Description; return(existingAd); }
public bool Update(AdEditModel entity) { Ad ad = _repository.GetAdWithDetails(entity.ID); if (ad == null) { throw new Exception(LOCALIZATION_GENERAL_NOT_FOUND + entity.ID); } if (entity.AdDetail != null && entity.AdDetail.AdDetailPictures != null) { foreach (var adDetailMap in entity.AdDetail.AdDetailPictures) { ad.AdDetail.AdDetailPictures.Remove(adDetailMap); } } entity.MainPictureThumbnail = MagiskImageWrapper.MakeThumbnailImage(System.Convert.FromBase64String(entity.MainPictureFile)); ad = AdMapper.MapAdFromAdEditModel(entity, ad); return(_repository.Update(ad)); }
public int Update(AdEditModel editModel, string userId) { var ad = this.DbContext .Ads .Where(a => a.Id == editModel.Id && a.AuthorId == userId) .FirstOrDefault(); ad.Title = editModel.Title; ad.Content = editModel.Content; ad.Category = editModel.Category; ad.CreatedOn = DateTime.UtcNow; ad.RejectMessage = string.Empty; ad.ExpirationAfter = (Expiration)editModel.ExpirationAfter; if (editModel.Image != null) { ad.ImageUrl = UploadImage(editModel.Image); } ad.Status = Status.PendingApproval; this.DbContext.SaveChanges(); return(ad.Id); }
public IActionResult Edit([FromForm] AdEditModel entity) { if (ModelState.IsValid) { string currentUser = HttpContext?.User?.Identity?.Name; if (!String.IsNullOrEmpty(currentUser)) { AuditedEntityMapper <AdEditModel> .FillModifyAuditedEntityFields(entity, currentUser); entity.OwnerId = CurrentUserId; #region File Map //need to map files in controller because aspnet core assembly is present in adsite project string[] result; if (!String.IsNullOrEmpty(entity.SerializedAdDetailsPictures)) { result = Newtonsoft.Json.JsonConvert.DeserializeObject <string[]>(entity.SerializedAdDetailsPictures); entity.MainPictureFile = StripComments(entity.MainPictureFile); entity.MainPictureFile = Newtonsoft.Json.JsonConvert.DeserializeObject <string>(entity.MainPictureFile); EntityFormMap(result, entity); } else { MapFiles(entity); } // #endregion try { _adService.Update(entity); } catch (DbUpdateConcurrencyException) { if (!AdExists(entity.ID)) { _logger.LogError(LOCALIZATION_ERROR_NOT_FOUND); return(NotFound().WithError(LOCALIZATION_ERROR_NOT_FOUND)); } else { _logger.LogError(LOCALIZATION_ERROR_CONCURENT_EDIT); return(NotFound().WithError(LOCALIZATION_ERROR_CONCURENT_EDIT)); } } return(RedirectToAction(nameof(MyAds)).WithSuccess(LOCALIZATION_SUCCESS_DEFAULT)); } 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 IActionResult Save(AdEditModel editModel) { var adId = this.adsService.Update(editModel, CurrentUser.Id); return(this.RedirectToAction("Details", new { id = adId })); }