예제 #1
0
파일: Post.cs 프로젝트: vnanhtuan/maihau
        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);
        }
예제 #2
0
파일: Post.cs 프로젝트: vnanhtuan/maihau
        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);
        }
예제 #3
0
 public async Task <dynamic> Submit([FromBody] Model.Post.Submit.Input input)
 {
     return(await _post.Submit(input));
 }