コード例 #1
0
ファイル: ToModel.cs プロジェクト: iFevral/education
        public static PrintingEditionModelItem MapToModel(this DataAccess.Entities.PrintingEdition entity)
        {
            var model = new PrintingEditionModelItem();

            model.Id          = entity.Id;
            model.Title       = entity.Title;
            model.Description = entity.Description;
            model.Price       = entity.Price;
            model.Currency    = entity.Currency;
            model.Type        = entity.Type;
            model.Image       = string.IsNullOrWhiteSpace(entity.Image)
                ? Constants.Constants.Images.DefaultPrintingEditionTitle
                : entity.Image;

            foreach (var item in entity.AuthorInPrintingEditions)
            {
                if (item == null)
                {
                    continue;
                }
                var author = new AuthorModelItem();
                author.Id   = item.AuthorId;
                author.Name = item.Author.Name;

                model.Authors.Add(author);
            }

            return(model);
        }
コード例 #2
0
        public static PrintingEdition MapToEntity(this PrintingEditionModelItem source, PrintingEdition instance)
        {
            instance.Id    = source.Id;
            instance.Price = source.Price;
            instance.PrintingEditionType = source.PrintingEditionType;
            instance.Title       = source.Title;
            instance.Description = source.Description;

            return(instance);
        }
コード例 #3
0
ファイル: ToEntity.cs プロジェクト: iFevral/education
        public static DataAccess.Entities.PrintingEdition MapToEntity(this PrintingEditionModelItem model, DataAccess.Entities.PrintingEdition entity)
        {
            entity.Title       = model.Title;
            entity.Description = model.Description;
            entity.Price       = model.Price;
            entity.Currency    = model.Currency;
            entity.Type        = model.Type;
            entity.Image       = model.Image;

            return(entity);
        }
コード例 #4
0
        private PrintingEditionModel ValidateData(PrintingEditionModelItem printingEditionsModelItem)
        {
            var responseModel = new PrintingEditionModel();

            if (string.IsNullOrWhiteSpace(printingEditionsModelItem.Title) || string.IsNullOrWhiteSpace(printingEditionsModelItem.Description) ||
                !printingEditionsModelItem.Authors.Any() || printingEditionsModelItem.Price == 0)
            {
                responseModel.Errors.Add(Constants.Errors.InvalidData);
            }

            return(responseModel);
        }
コード例 #5
0
        public async Task <PrintingEditionModelItem> FindByIdAsync(int id)
        {
            var printingEditionModel = new PrintingEditionModelItem();
            var printingEdition      = await _printingEditionRepository.FindByIdAsync(id);

            if (printingEdition == null)
            {
                printingEditionModel.Errors.Add(Constants.Errors.NotFoundPrintingEditionError);
                return(printingEditionModel);
            }

            printingEditionModel = printingEdition.MapToModel();

            return(printingEditionModel);
        }
コード例 #6
0
        public static PrintingEditionModelItem MapToModel(this PrintingEditionDataModel source, Enums.Currency currency = Enums.Currency.USD)
        {
            var instance = new PrintingEditionModelItem();

            instance.Id    = source.Id;
            instance.Price = source.Price;
            instance.PrintingEditionType = source.PrintingEditionType;
            instance.Title       = source.Title;
            instance.Currency    = currency;
            instance.Description = source.Description;
            instance.Price       = source.Price;

            instance.Authors = source.Authors.Select(x => new AuthorModelItem
            {
                Id   = x.Id,
                Name = x.Name
            }).ToList();

            return(instance);
        }
コード例 #7
0
        public async Task <PrintingEditionModel> CreatePrintingEditionAsync(PrintingEditionModelItem printingEditionsModelItem)
        {
            var responseModel = ValidateData(printingEditionsModelItem);

            if (responseModel.Errors.Any())
            {
                return(responseModel);
            }

            var printingEdition = _mapperHelper.Map <PrintingEditionModelItem, PrintingEdition>(printingEditionsModelItem);

            printingEdition.Price = _currencyConverterHelper.Convert(printingEditionsModelItem.Currency, Enums.Currency.USD, printingEditionsModelItem.Price);

            printingEdition.Currency = Enums.Currency.USD;

            var authorsId = printingEditionsModelItem.Authors.Select(x => x.Id).ToArray();

            if (authorsId == null || !authorsId.Any())
            {
                responseModel.Errors.Add(Constants.Errors.InvalidData);
                return(responseModel);
            }

            var createResult = await _printingEditionRepository.CreateAsync(printingEdition);

            if (createResult.Equals(0))
            {
                responseModel.Errors.Add(Constants.Errors.FailedCreate);
                return(responseModel);
            }

            var createAuthorsInPrintingEditionResult = await _authorInPrintingEditionRepository.CreateAuthorsInPrintingEditionAsync(printingEdition.Id, authorsId);

            if (createAuthorsInPrintingEditionResult.Equals(0))
            {
                responseModel.Errors.Add(Constants.Errors.FailedCreate);
                return(responseModel);
            }

            return(responseModel);
        }
コード例 #8
0
        public static AuthorModelItem MapToModel(this DataAccess.Entities.Author entity)
        {
            var model = new AuthorModelItem();

            model.Id   = entity.Id;
            model.Name = entity.Name;

            foreach (var item in entity.AuthorInPrintingEdition)
            {
                if (item == null)
                {
                    continue;
                }
                var printingEdition = new PrintingEditionModelItem();
                printingEdition.Id    = item.PrintingEditionId;
                printingEdition.Title = item.PrintingEdition.Title;
                model.PrintingEditions.Add(printingEdition);
            }

            return(model);
        }
コード例 #9
0
        public async Task <BaseModel> DeleteAsync(int id)
        {
            var printingEditionModel = new PrintingEditionModelItem();
            var printingEdition      = await _printingEditionRepository.FindByIdAsync(id);

            if (printingEdition == null)
            {
                printingEditionModel.Errors.Add(Constants.Errors.NotFoundPrintingEditionError);
                return(printingEditionModel);
            }

            printingEdition.isRemoved = true;
            var result = await _printingEditionRepository.UpdateAsync(printingEdition);

            if (!result)
            {
                printingEditionModel.Errors.Add(Constants.Errors.DeletePrintingEditionError);
            }

            return(printingEditionModel);
        }
コード例 #10
0
        public async Task <BaseModel> CreateAsync(PrintingEditionModelItem printingEditionModel)
        {
            var printingEdition = new PrintingEdition();

            printingEdition = printingEditionModel.MapToEntity(printingEdition);
            var printingEditionId = await _printingEditionRepository.CreateAsync(printingEdition);

            if (printingEditionId == 0)
            {
                printingEditionModel.Errors.Add(Constants.Errors.CreatePrintingEditionError);
                return(printingEditionModel);
            }

            var authorInPrintingEditions = printingEditionModel.Authors.MapToAuthorInPrintingEditionList(printingEditionId).ToList();
            var result = await _authorInPrintingEditionRepository.CreateListAsync(authorInPrintingEditions);

            if (!result && authorInPrintingEditions.Count > 0)
            {
                printingEditionModel.Errors.Add(Constants.Errors.CreatePrintingEditionError);
            }

            return(printingEditionModel);
        }
コード例 #11
0
        public async Task <BaseModel> UpdateAsync(PrintingEditionModelItem printingEditionModel)
        {
            var printingEdition = await _printingEditionRepository.FindByIdAsync(printingEditionModel.Id);

            if (printingEdition == null)
            {
                printingEditionModel.Errors.Add(Constants.Errors.NotFoundPrintingEditionError);
                return(printingEditionModel);
            }

            printingEdition = printingEditionModel.MapToEntity(printingEdition);
            var result = await _authorInPrintingEditionRepository.RemoveByPrintingEditionAsync(printingEdition.Id);

            if (!result)
            {
                printingEditionModel.Errors.Add(Constants.Errors.DeleteAuthorError);
                return(printingEditionModel);
            }

            result = await _printingEditionRepository.UpdateAsync(printingEdition);

            if (!result)
            {
                printingEditionModel.Errors.Add(Constants.Errors.UpdatePrintingEditionError);
            }

            var authorInPrintingEditions = printingEditionModel.Authors.MapToAuthorInPrintingEditionList(printingEdition.Id).ToList();

            result = await _authorInPrintingEditionRepository.CreateListAsync(authorInPrintingEditions);

            if (!result && authorInPrintingEditions.Count > 0)
            {
                printingEditionModel.Errors.Add(Constants.Errors.CreatePrintingEditionError);
            }

            return(printingEditionModel);
        }
コード例 #12
0
        public async Task <PrintingEditionModel> UpdatePrintingEditionAsync(PrintingEditionModelItem printingEditionsModelItem)
        {
            var responseModel = ValidateData(printingEditionsModelItem);

            var printingEdition = await _printingEditionRepository.GetByIdAsync(printingEditionsModelItem.Id);

            printingEdition = printingEditionsModelItem.MapToEntity(printingEdition);

            var authorsId = printingEditionsModelItem.Authors.Select(x => x.Id).ToArray();

            if (authorsId == null || !authorsId.Any())
            {
                responseModel.Errors.Add(Constants.Errors.InvalidData);
                return(responseModel);
            }

            printingEdition.Price = _currencyConverterHelper.Convert(printingEditionsModelItem.Currency, Enums.Currency.USD, printingEditionsModelItem.Price);

            var updateResult = await _printingEditionRepository.UpdateAsync(printingEdition);

            if (updateResult.Equals(0))
            {
                responseModel.Errors.Add(Constants.Errors.FailedUpdate);
                return(responseModel);
            }

            var updateAuthorsProduct = await _authorInPrintingEditionRepository.UpdateAuthorsInPrintingEditionAsync(printingEdition.Id, authorsId);

            if (updateAuthorsProduct.Equals(0))
            {
                responseModel.Errors.Add(Constants.Errors.FailedUpdate);
                return(responseModel);
            }

            return(responseModel);
        }
コード例 #13
0
        public async Task <IActionResult> Update([FromBody] PrintingEditionModelItem printingEditionItem)
        {
            var printingEditionModel = await _printingEditionService.UpdateAsync(printingEditionItem);

            return(Ok(printingEditionModel));
        }
コード例 #14
0
        public async Task <IActionResult> UpdatePrintingEditionAsync([FromBody] PrintingEditionModelItem printingEditionsModelItem)
        {
            var responseModel = await _printingEditionService.UpdatePrintingEditionAsync(printingEditionsModelItem);

            return(Ok(responseModel));
        }