public async Task <ApiResult <long> > Submit(Model.Post.Submit.Input input) { var userId = _current.UserId; var output = new ApiResult <long>(); if (string.IsNullOrEmpty(input.Name)) { output.Msgs.Add(new MsgResult("name", "common.name_empty")); } if (input.CategoryId.HasValue == false) { output.Msgs.Add(new MsgResult("category", "common.category_empty")); } if (output.Msgs.Any() == false) { try { if (input.Id.HasValue) { var item = await _repository.GetQuery(input.Id.Value).FirstOrDefaultAsync(); if (item != null) { _unitOfWork._dbContext.ContentByCategory.RemoveRange(_unitOfWork._dbContext.ContentByCategory.Where(m => m.ItemId == item.Id)); await _unitOfWork._dbContext.ContentByCategory.AddAsync(new Models.ContentByCategory { CategoryId = input.CategoryId.Value, ItemId = item.Id }); _unitOfWork.Edit(item, nameof(item.Name), input.Name); _unitOfWork.Edit(item, nameof(item.Summary), input.Summary); _unitOfWork.Edit(item, nameof(item.IsHidden), input.IsHidden); _unitOfWork.Edit(item, nameof(item.DateCreated), input.DateCreated); _unitOfWork.Edit(item, nameof(item.Description), input.Description); _unitOfWork.Edit(item, nameof(item.Link), input.Link); await _unitOfWork.SaveChanges(); output.Code = Const.ApiCodeEnum.Success; output.Data = item.Id; } else { output.Msgs.Add(new MsgResult("general", "common.not_exists")); } } else { var item = new Models.Content { UserId = userId, Name = input.Name, Summary = input.Summary, IsHidden = input.IsHidden, Description = input.Description, Link = input.Link, DateCreated = input.DateCreated ?? _current.Now, ContentByCategory = new List <Models.ContentByCategory> { new Models.ContentByCategory { CategoryId = input.CategoryId.Value } }, }; await _unitOfWork._dbContext.Content.AddAsync(item); await _unitOfWork.SaveChanges(); input.Id = item.Id; output.Code = Const.ApiCodeEnum.Success; output.Data = item.Id; } if (output.Code == Const.ApiCodeEnum.Success) { await _fileManage.Update(new File.Model.Manage.UpdateModel.Input { CategoryId = (long)Const.FileCategory.Content, ItemId = input.Id.ToString(), IsTemp = false, FileList = input.FileList.Select((m, index) => new File.Model.Manage.UploadModel.File { Id = m.Id, IsVR = m.IsVR, OrderNumber = index }).ToList(), }); } await _fileManage.Update(new File.Model.Manage.UpdateModel.Input { CategoryId = (long)Const.FileCategory.Content, ItemId = input.Id.ToString(), IsTemp = false, ItemField = "description", FileList = input.DescriptionFileList.Select((m, index) => new File.Model.Manage.UploadModel.File { Id = m.Id, OrderNumber = index }).ToList(), }); } catch (Exception ex) { _logger.Error(ex, ex.Message); } } return(output); }
public async Task <ApiResult <long> > Submit(Model.Post.Submit.Input input) { var currentUserId = _current.UserId; var output = new ApiResult <long>(); if (string.IsNullOrEmpty(input.Name)) { output.Msgs.Add(new MsgResult("name", "common.name_empty")); } if (input.CategoryId.HasValue == false) { output.Msgs.Add(new MsgResult("category", "common.category_empty")); } switch (input.PriceType) { case "normal": input.PriceSource = null; input.SaleOffPercent = null; break; case "saleoff": if (input.PriceSource.HasValue == false || input.PriceSource.Value <= 0) { output.Msgs.Add(new MsgResult("priceSource", "common.value_empty")); } else if (input.PriceSaleOff.HasValue == false || input.PriceSaleOff.Value <= 0) { output.Msgs.Add(new MsgResult("priceSaleOff", "common.value_empty")); } else { input.Price = input.PriceSaleOff; } break; } if (output.Msgs.Any() == false) { try { if (input.Id.HasValue) { var item = await _repository.GetQuery(new Model.Repository.GetQuery.Input { Id = input.Id.Value, UserId = await _userRepository.IsAdmin(currentUserId) ? null : currentUserId, }).FirstOrDefaultAsync(); if (item != null) { _unitOfWork._dbContext.ProductByCategory.RemoveRange(_unitOfWork._dbContext.ProductByCategory.Where(m => m.ItemId == item.Id)); await _unitOfWork._dbContext.ProductByCategory.AddAsync(new Models.ProductByCategory { CategoryId = input.CategoryId.Value, ItemId = item.Id }); _unitOfWork.Edit(item, nameof(item.Name), input.Name); _unitOfWork.Edit(item, nameof(item.Price), input.Price); _unitOfWork.Edit(item, nameof(item.PriceSource), input.PriceSource); _unitOfWork.Edit(item, nameof(item.SaleOffPercent), input.SaleOffPercent); _unitOfWork.Edit(item, nameof(item.IsHidden), input.IsHidden); _unitOfWork.Edit(item, nameof(item.AllowOrder), input.AllowOrder); _unitOfWork.Edit(item, nameof(item.Summary), input.Summary); _unitOfWork.Edit(item, nameof(item.Description), input.Description); _unitOfWork.Edit(item, nameof(item.Quantity), input.Quantity); _unitOfWork.Edit(item, nameof(item.BrandId), input.BrandId); await _unitOfWork.SaveChanges(); output.Code = Const.ApiCodeEnum.Success; output.Data = item.Id; } else { output.Msgs.Add(new MsgResult("general", "common.not_exists")); } } else { var item = new Models.Product { UserId = currentUserId, Name = input.Name, Price = input.Price, PriceSource = input.PriceSource, SaleOffPercent = input.SaleOffPercent, IsHidden = input.IsHidden, AllowOrder = input.AllowOrder, Summary = input.Summary, Description = input.Description, Quantity = input.Quantity, BrandId = input.BrandId, DateCreated = _current.Now, ProductByCategory = new List <Models.ProductByCategory> { new Models.ProductByCategory { CategoryId = input.CategoryId.Value } }, }; await _unitOfWork._dbContext.Product.AddAsync(item); await _unitOfWork.SaveChanges(); input.Id = item.Id; output.Code = Const.ApiCodeEnum.Success; output.Data = item.Id; } if (output.Code == Const.ApiCodeEnum.Success) { await _fileManage.Update(new File.Model.Manage.UpdateModel.Input { CategoryId = (long)Const.FileCategory.Product, ItemId = input.Id.ToString(), IsTemp = false, FileList = input.FileList.Select((m, index) => new File.Model.Manage.UploadModel.File { Id = m.Id, OrderNumber = index }).ToList(), }); await _fileManage.Update(new File.Model.Manage.UpdateModel.Input { CategoryId = (long)Const.FileCategory.Product, ItemId = input.Id.ToString(), IsTemp = false, ItemField = "description", FileList = input.DescriptionFileList.Select((m, index) => new File.Model.Manage.UploadModel.File { Id = m.Id, OrderNumber = index }).ToList(), }); } } catch (Exception ex) { _logger.Error(ex, ex.Message); } } return(output); }
public async Task <dynamic> Submit([FromBody] Model.Post.Submit.Input input) { return(await _post.Submit(input)); }