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); }
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); }
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); }
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); }
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); }
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); }
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)); }