Ejemplo n.º 1
0
        public static PrintingEditionsModelItem MapProductResponseModelToModelItem(
            PrintingEditionsResponseModel model,
            Currency currency,
            decimal convertedPrice)
        {
            var itemModel = new PrintingEditionsModelItem()
            {
                ProductType = (BusinessEnums.ProductType)model.PrintingEdition.Type,
                Title       = model.PrintingEdition.Title,
                Currency    = currency,
                Description = model.PrintingEdition.Description,
                Id          = model.PrintingEdition.Id,
                Price       = convertedPrice,
                Status      = (BusinessEnums.StatusType)model.PrintingEdition.Status
            };
            var authorModel = new List <AuthorsModelItem>();

            foreach (var item in model.Authors)
            {
                var author = AuthorMapper.MapEntityToModel(item);
                authorModel.Add(author);
            }
            itemModel.Authors = authorModel;
            return(itemModel);
        }
Ejemplo n.º 2
0
        public async Task <BaseModel> UpdateAsync(PrintingEditionsModelItem model)
        {
            var response = new BaseModel();

            if (model == null)
            {
                response.Errors.Add(ErrorConstants.ModelIsNull);
            }
            var existingProduct = await _printingEditionRepository.GetByIdAsync(model.Id);

            if (existingProduct == null)
            {
                response.Errors.Add(ErrorConstants.ImpossibleToFindProduct);
                return(response);
            }
            var product = PrintingEditionMapper.UpdateEntityWithModel(existingProduct, model);
            var result  = await _printingEditionRepository.UpdateAsync(product);

            if (!result)
            {
                response.Errors.Add(ErrorConstants.ImpossibleToUpdateProduct);
            }
            response = await UpdateAuthorInProductAsync(product, model.Authors);

            return(response);
        }
Ejemplo n.º 3
0
        public async Task <PrintingEditionsModelItem> GetById(long id)
        {
            var response = new PrintingEditionsModelItem();

            if (id == 0)
            {
                response.Errors.Add(ErrorConstants.ModelIsNull);
                return(response);
            }
            var product = await _printingEditionRepository.GetByProductIdAsync(id);

            if (product == null)
            {
                response.Errors.Add(ErrorConstants.ImpossibleToFindProduct);
                return(response);
            }
            var productModel = PrintingEditionMapper.MapEntityToModel(product.PrintingEdition);

            foreach (var item in product.Authors)
            {
                var author = AuthorMapper.MapEntityToModel(item);
                productModel.Authors.Add(author);
            }
            return(productModel);
        }
Ejemplo n.º 4
0
 public static PrintingEdition UpdateEntityWithModel(PrintingEdition edition, PrintingEditionsModelItem model)
 {
     edition.Type        = (DataEnums.ProductType)model.ProductType;
     edition.Title       = model.Title;
     edition.Status      = (DataEnums.StatusType)model.Status;
     edition.Price       = model.Price;
     edition.Description = model.Description;
     edition.Currency    = (DataEnums.Currency)model.Currency;
     return(edition);
 }
Ejemplo n.º 5
0
        public static PrintingEditionsModelItem MapEntityToModel(PrintingEdition edition)
        {
            var result = new PrintingEditionsModelItem()
            {
                Currency    = (BusinessEnums.Currency)edition.Currency,
                Description = edition.Description,
                Id          = edition.Id,
                Price       = edition.Price,
                Status      = (BusinessEnums.StatusType)edition.Status,
                Title       = edition.Title,
                ProductType = (BusinessEnums.ProductType)edition.Type
            };

            return(result);
        }
Ejemplo n.º 6
0
        public static PrintingEdition MapModelToEntity(PrintingEditionsModelItem model, decimal changedPrice)
        {
            var result = new PrintingEdition()
            {
                CreationDate = DateTime.Now,
                Currency     = DataEnums.Currency.USD,
                Description  = model.Description,
                Id           = model.Id,
                Price        = changedPrice,
                Status       = (DataEnums.StatusType)model.Status,
                Title        = model.Title,
                Type         = (DataEnums.ProductType)model.ProductType
            };

            return(result);
        }
Ejemplo n.º 7
0
        public async Task <BaseModel> CreateAsync(PrintingEditionsModelItem model)
        {
            var response = new BaseModel();

            if (model == null)
            {
                response.Errors.Add(ErrorConstants.ModelIsNull);
                return(response);
            }
            var changedPrice = _currencyConverter.Convert(model.Currency, CurrencyEnum.Currency.USD, model.Price);
            var product      = PrintingEditionMapper.MapModelToEntity(model, changedPrice);
            var result       = await _printingEditionRepository.CreateAsync(product);

            if (!result)
            {
                response.Errors.Add(ErrorConstants.ImpossibleToCreateProduct);
            }
            response = await CreateAuthorInProductAsync(product, model.Authors);

            return(response);
        }
        public async Task <IActionResult> UpdateAsync(PrintingEditionsModelItem model)
        {
            var result = await _printingEditionService.UpdateAsync(model);

            return(Ok(result));
        }