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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
public async Task <IActionResult> Update([FromBody] PrintingEditionModelItem printingEditionItem) { var printingEditionModel = await _printingEditionService.UpdateAsync(printingEditionItem); return(Ok(printingEditionModel)); }
public async Task <IActionResult> UpdatePrintingEditionAsync([FromBody] PrintingEditionModelItem printingEditionsModelItem) { var responseModel = await _printingEditionService.UpdatePrintingEditionAsync(printingEditionsModelItem); return(Ok(responseModel)); }