Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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);
            }
        }
Exemplo n.º 6
0
        /// <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);
        }
Exemplo n.º 7
0
        /// <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);
        }
Exemplo n.º 8
0
 public JsonResult Edit([FromBody] OfferedItemViewModel model)
 {
     return(Json(this._offerService.EditOfferedItem(model)));
 }
Exemplo n.º 9
0
 public JsonResult Create([FromBody] OfferedItemViewModel model)
 {
     this._offerService.CreateOfferedItem(model);
     return(Json(model));
 }