public AuthorsInPrintingEditionsViewModel GetPrintingEditionByIdInclude(int id)
        {
            IEnumerable <AuthorInPrintingEditions> modelFromBase = _authorInPrintingEditionRepository.FindByPrintingEditionID(id);
            AuthorsInPrintingEditionsViewModel     model         = _mapper.Map <AuthorsInPrintingEditionsViewModel>(modelFromBase);

            return(model);
        }
예제 #2
0
        public AuthorsInPrintingEditionsViewModel GetPrintingEditionByIdInclude(int id, string currentCurrencyName)
        {
            IEnumerable <AuthorInPrintingEditions> modelFromBase = _authorInPrintingEditionRepository.FindByPrintingEditionID(id);
            AuthorsInPrintingEditionsViewModel     authInPEmodel = AuthorsInPrintForming(modelFromBase, currentCurrencyName)
                                                                   .First(model => model.PrtintingEditionId == id);

            return(authInPEmodel);
        }
예제 #3
0
        public async Task <IActionResult> EditPrintingEdition([FromBody] AuthorsInPrintingEditionsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            await _printingEditionService.UpdateInformationAboutPrintinEdition(model);

            return(Ok(201));
        }
        public async Task CreatePrintingEdition(AuthorsInPrintingEditionsViewModel model)
        {
            PrintingEdition printingEdition    = _mapper.Map <PrintingEdition>(model);
            var             authors            = new List <Author>();
            var             authorsInPrintEdit = new List <AuthorInPrintingEditions>();

            await _printEditRepository.Create(printingEdition);

            foreach (AuthorViewModel authorId in model.AuthorsList)
            {
                authors.Add(await _authorRepository.Get(authorId.Id));
            }

            foreach (Author author in authors)
            {
                authorsInPrintEdit.Add(new AuthorInPrintingEditions {
                    AuthorId = author.Id, PrintingEditionId = printingEdition.Id
                });
            }

            _authorInPrintingEditionRepository.AddAuthorInPe(authorsInPrintEdit);
        }
        public async Task UpdateInformationAboutPrintinEdition(AuthorsInPrintingEditionsViewModel model)
        {
            var printingEdition      = _mapper.Map <PrintingEdition>(model);
            var printEditionFromBase = await _printEditRepository.Get(model.PrtintingEditionId);

            var authors = new List <Author>();

            if (printEditionFromBase is null)
            {
                return;
            }

            printEditionFromBase = _mapper.Map <PrintingEdition>(model);

            await _printEditRepository.Update(printEditionFromBase);

            foreach (AuthorViewModel author in model.AuthorsList)
            {
                authors.Add(await _authorRepository.Get(author.Id));
            }

            IEnumerable <AuthorInPrintingEditions> authorInPrintEdBase = _authorInPrintingEditionRepository.FindByPrintingEditionID(printEditionFromBase.Id);

            _authorInPrintingEditionRepository.DeleteAuthorInPe(authorInPrintEdBase);

            var authorInPrintingEditionsNew = new List <AuthorInPrintingEditions>();

            foreach (Author author in authors)
            {
                authorInPrintingEditionsNew.Add(new AuthorInPrintingEditions
                {
                    AuthorId          = author.Id,
                    PrintingEditionId = printingEdition.Id
                });
            }

            _authorInPrintingEditionRepository.AddAuthorInPe(authorInPrintingEditionsNew);
        }
예제 #6
0
        private IEnumerable <AuthorsInPrintingEditionsViewModel> AuthorsInPrintForming(IEnumerable <AuthorInPrintingEditions> authorsInPriningEditions, string currentCurrencyName)
        {
            var modelsList = new List <AuthorsInPrintingEditionsViewModel>();

            foreach (AuthorInPrintingEditions printEd in authorsInPriningEditions)
            {
                AuthorsInPrintingEditionsViewModel printEditionModel = modelsList.FirstOrDefault(r => r.PrtintingEditionId == printEd.PrintingEditionId);

                if (printEditionModel == null)
                {
                    double price = _currencyConverter.Convert(printEd.PrintingEdition.Currency, printEd.PrintingEdition.Price, currentCurrencyName);
                    printEditionModel = new AuthorsInPrintingEditionsViewModel
                    {
                        CurrencyName                = currentCurrencyName,
                        PrintingEditionImage        = printEd.PrintingEdition.ImageUrl,
                        PrintingEditionStatus       = printEd.PrintingEdition.Status,
                        PrintingEditionPrice        = price,
                        PrintingEditionTitle        = printEd.PrintingEdition.NameEdition,
                        PrtintingEditionDescription = printEd.PrintingEdition.Description,
                        PrtintingEditionType        = printEd.PrintingEdition.Type,
                        PrtintingEditionId          = printEd.PrintingEditionId
                    };

                    modelsList.Add(printEditionModel);
                }

                printEditionModel.AuthorsList.Add(new AuthorViewModel
                {
                    FirstName = printEd.Author.FirstName,
                    LastName  = printEd.Author.LastName,
                    Id        = printEd.Author.Id
                });
            }

            return(modelsList);
        }
        public AuthorsInPrintingEditionsViewModel GetPrintingEdition(int id, string currentCurrencyName)
        {
            AuthorsInPrintingEditionsViewModel modelsList = _printStoreService.GetPrintingEditionByIdInclude(id, currentCurrencyName);

            return(modelsList);
        }
예제 #8
0
        public async Task <IActionResult> AddPrintingEdition([FromBody] AuthorsInPrintingEditionsViewModel model)
        {
            await _printingEditionService.CreatePrintingEdition(model);

            return(Ok(201));
        }