/// <summary> /// Creates new Offer Item /// </summary> /// <param name="model">base model for new offer item</param> /// <returns>OfferedItemViewModel</returns> public OfferedItemViewModel CreateOfferedItem(OfferedItemViewModel model) { const string initialStatus = "Активний"; try { if (model != null) { OfferedItem item = model; item.User = this._unitOfWork.UsersRepository.GetUserById(model.UserId); item.GoodsCategory = this._unitOfWork.GoodsCategoryRepository.GetGoodsCategoryById(model.GoodsCategoryId); item.Status = this._unitOfWork.StatusRepository.GetStatusByName(initialStatus); var createdItem = this._unitOfWork.OfferedItemRepository.Create(item); this.SetNewPictures(model, createdItem); this._unitOfWork.SaveChanges(); } //TODO: uncomment //SetImagesUrl(model.Image); return(model); } catch (Exception ex) { throw new BusinessLogicException("Creating offered item error. " + ex.Message); } }
/// <summary> /// Edits offer item, that matches received offered item view model /// </summary> /// <param name="model">offer item view model, received from front end</param> /// <returns>Edited offer item view model</returns> public OfferedItemViewModel EditOfferedItem(OfferedItemViewModel model) { try { if (model != null) { OfferedItem item = this._unitOfWork.OfferedItemRepository.Get(model.Id); item.Description = model.Description; item.Name = model.Name; item.GoodsCategory = this._unitOfWork.GoodsCategoryRepository.GetGoodsCategoryById(model.GoodsCategoryId); item.GoodsCategoryId = item.GoodsCategory.Id; this.SetOfferedItemPictures(model.Image, item); this._unitOfWork.SaveChanges(); } //TODO: uncomment //SetImagesUrl(model.Image); return(model); } catch (Exception ex) { throw new BusinessLogicException(ex.Message); } }
/// <summary> /// Initializes offered item view model based on offer item entity /// </summary> /// <param name="item">offer item</param> /// <returns>OfferedItemViewModel</returns> public OfferedItemViewModel InitializeOfferedItemViewModel(OfferedItem item) { OfferedItemViewModel model = new OfferedItemViewModel() { Description = item.Description, Name = item.Name, Id = item.Id, GoodsCategoryName = item.GoodsCategory.Name, StatusName = item.Status.StatusName, UserId = item.UserId, GoodsTypeName = item.GoodsCategory.GoodsType.Name }; model.Image = this._unitOfWork.OfferImagesRepository.Read().Where(a => a.OfferedItemId == model.Id) .Select(a => new OfferedItemImageViewModel { //TODO: замінити на ImageName = _imgService.GetImageUrl(a.ImageUrl), ImageUrl = a.ImageUrl, IsMain = a.IsMain, OfferedItemId = model.Id, Id = a.Id }) .ToArray(); return(model); }
/// <summary> /// Sets specified images of specified offer item /// </summary> /// <param name="model">Offer item view model</param> /// <param name="item">Offered item entity</param> /// <returns>List of offered item images</returns> public OfferedItemImageViewModel[] SetNewPictures(OfferedItemViewModel model, OfferedItem item) { int i = 0; Dictionary <OfferedItemImage, Task <string> > d = new Dictionary <OfferedItemImage, Task <string> >(); foreach (var thing in model.Image) { var newImage = new OfferedItemImage { IsMain = thing.IsMain, OfferedItemId = item.Id }; var t = _imgService.UploadImage(Convert.FromBase64String(model.Base64Images[i++])); d.Add(newImage, t); } Task.WhenAll(d.Values); foreach (var element in d) { element.Key.ImageUrl = element.Value.Result; } this._unitOfWork.OfferImagesRepository.CreateMany(d.Keys.ToList()); return(model.Image); }
/// <summary> /// Creates new Offer Item /// </summary> /// <param name="model">base model for new offer item</param> /// <returns>OfferedItemViewModel</returns> public OfferedItemViewModel CreateOfferedItem(OfferedItemViewModel model) { const string initialStatus = "Активний"; try { if (model != null) { OfferedItem item = model; item.User = _unitOfWork.UsersRepository.GetUserById(model.UserId); item.GoodsCategory = _unitOfWork.GoodsCategoryRepository.GetGoodsCategoryById(model.GoodsCategoryId); item.Status = _unitOfWork.StatusRepository.GetStatusByName(initialStatus); item.OfferedItemImages = UploadImagesToStorage(model.Images, model.Id); var createdItem = _unitOfWork.OfferedItemRepository.Create(item); _unitOfWork.SaveChanges(); model.Images = ConvertOfferedItemImagesToViewModel(item.OfferedItemImages).ToArray(); } return(model); } catch (Exception ex) { throw new BusinessLogicException("Creating offered item error. " + ex.Message); } }
/// <summary> /// Gets offereditem viewModel by offeritem id /// </summary> /// <param name="id">offeritem id</param> /// <returns>OfferedItemViewModel</returns> public OfferedItemViewModel GetOfferedItemViewModel(int id) { var item = this._unitOfWork.OfferedItemRepository.Get(id); var model = new OfferedItemViewModel(); model.Description = item.Description; model.Name = item.Name; model.Id = item.Id; model.StatusName = this._unitOfWork.StatusRepository.GetStatusById(item.StatusId).StatusName; model.UserId = item.UserId; model.GoodsCategoryName = this._unitOfWork.GoodsCategoryRepository.GetGoodsCategoryById(item.GoodsCategoryId).Name; model.GoodsTypeName = this._unitOfWork.GoodsTypeRepository.GetGoodsTypeById(item.GoodsCategory.GoodsTypeId).Name; model.GoodsCategoryId = this._unitOfWork.GoodsCategoryRepository.GetGoodsCategoryByName(model.GoodsCategoryName).Id; model.GoodsTypeId = this._unitOfWork.GoodsTypeRepository.GetGoodsTypeByName(model.GoodsTypeName).Id; model.Image = this.GetOfferedItemPictures(id).ToArray(); return(model); }
/// <summary> /// Initializes offered item view model based on offer item entity /// </summary> /// <param name="item">offer item</param> /// <returns>OfferedItemViewModel</returns> public OfferedItemViewModel InitializeOfferedItemViewModel(OfferedItem item) { OfferedItemViewModel model = new OfferedItemViewModel() { Description = item.Description, Name = item.Name, Id = item.Id, GoodsCategoryName = item.GoodsCategory.Name, StatusName = item.Status.StatusName, UserId = item.UserId, GoodsTypeName = item.GoodsCategory.GoodsType.Name }; model.Images = this._unitOfWork.OfferImagesRepository.Read() .Where(a => a.OfferedItemId == model.Id) .Select(ConvertOfferedItemImageToViewModel) .ToArray(); return(model); }
public JsonResult Edit([FromBody] OfferedItemViewModel model) { return(Json(this._offerService.EditOfferedItem(model))); }
public JsonResult Create([FromBody] OfferedItemViewModel model) { this._offerService.CreateOfferedItem(model); return(Json(model)); }