public async Task <dynamic> Init(long?id) { var currentUserId = _current.UserId; var output = new Model.Post.Init.Output { CategoryList = await _repository.CategoryGetQuery(new Model.Repository.CategoryGetQuery.Input { ByParentId = 1, }).Select(m => new { m.Id, m.Name, m.ParentId, m.OrderNumber }).ToListAsync(), BrandList = await _repository.ProductBrandGetQuery().ToListAsync(), }; if (id.HasValue) { output.Item = await _repository.GetQuery(new Model.Repository.GetQuery.Input { Id = id.Value, UserId = await _userRepository.IsAdmin(currentUserId) ? null : currentUserId, }).Select(m => new Model.Post.Item { Id = m.Id, Name = m.Name, CategoryId = m.ProductByCategory.Select(m => m.CategoryId).FirstOrDefault(), BrandId = m.BrandId, Price = m.Price, PriceSource = m.PriceSource, SaleOffPercent = m.SaleOffPercent, IsHidden = m.IsHidden, AllowOrder = m.AllowOrder, Summary = m.Summary, Description = m.Description, Quantity = m.Quantity, }).FirstOrDefaultAsync(); if (output.Item.PriceSource.HasValue) { output.Item.PriceSaleOff = output.Item.Price; output.Item.PriceType = "saleoff"; } else { output.Item.PriceType = "normal"; } output.Item.FileList = await _fileRepository.ByCategoryGetQuery(new File.Model.Repository.ByCategoryGetQueryModel.Input { CategoryId = (long)Const.FileCategory.Product, ItemId = output.Item.Id.ToString(), }).OrderBy(m => m.OrderNumber).Select(m => new Model.Post.File { Id = m.FileId, }).ToListAsync(); output.Item.DescriptionFileList = await _fileRepository.ByCategoryGetQuery(new File.Model.Repository.ByCategoryGetQueryModel.Input { CategoryId = (long)Const.FileCategory.Product, ItemId = output.Item.Id.ToString(), ItemField = "description", }).OrderBy(m => m.OrderNumber).Select(m => new Model.Post.File { Id = m.FileId, }).ToListAsync(); } return(output); }
public async Task <Model.Manage.GetList.Output> GetList(Model.Manage.GetList.Input input) { var CurrentUserId = _current.UserId; int pageSize = 20; bool?allowOrder = null; if (input.AllowOrder) { allowOrder = false; } bool?isHidden = null; if (input.IsHidden) { isHidden = input.IsHidden; } var model = _repository.GetQuery(new Model.Repository.GetQuery.Input { UserId = await _userRepository.IsAdmin(CurrentUserId) ? null : CurrentUserId, ByCategoryId = input.CategoryId, ByBrandId = input.BrandId, AllowOrder = allowOrder, IsHidden = isHidden, Keyword = input.Keyword, DateFrom = input.DateFrom, DateTo = input.DateTo, OrderBy = input.OrderBy, }); var itemPage = await PageList <Model.Manage.GetList.Item> .CreateAsync(model.Select(m => new Model.Manage.GetList.Item { Id = m.Id, Name = m.Name, Price = m.Price, PriceSource = m.PriceSource, SaleOffPercent = m.SaleOffPercent, CategoryName = m.ProductByCategory.Select(n => n.Category.Name).FirstOrDefault(), BrandName = m.Brand.Name, DateCreated = m.DateCreated, IsHidden = m.IsHidden, AllowOrder = m.AllowOrder, Quantity = m.Quantity, }), input.PageIndex, pageSize); foreach (var item in itemPage) { item.ImageId = await _fileRepository.GetFirstIdByItem(item.Id.ToString(), (long)Const.FileCategory.Product); } return(new Model.Manage.GetList.Output { ItemList = itemPage, PageIndex = itemPage.PageIndex, PageSize = pageSize, TotalItems = itemPage.TotalItems, TotalPages = itemPage.TotalPages, }); }