コード例 #1
0
        public async Task <ActionResult> Edit(int?id)
        {
            if (id > 0)
            {
                var vProduct = await _db.SimpleProducts.FindAsync(id);

                if (vProduct == null)
                {
                    return(HttpNotFound());
                }

                var editProduct = _mapper.Map <SimpleProduct, SimpleProductIM>(vProduct);
                var pageMeta    = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == ModelType.SIMPLEPRODUCT && d.ObjectId == editProduct.Id.ToString());

                if (pageMeta != null)
                {
                    editProduct.Title          = pageMeta.Title;
                    editProduct.Keywords       = pageMeta.Keyword;
                    editProduct.SEODescription = pageMeta.Description;
                }
                return(View(editProduct));
            }
            else
            {
                var product = new SimpleProductIM
                {
                    Active     = true,
                    Importance = 0
                };
                return(View(product));
            }
        }
コード例 #2
0
        public async Task <JsonResult> Edit(SimpleProductIM vm)
        {
            if (!ModelState.IsValid)
            {
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }


            try
            {
                if (vm.Id > 0)
                {
                    var editProduct = await _db.SimpleProducts.FindAsync(vm.Id);

                    editProduct = _mapper.Map(vm, editProduct);
                    _db.Entry(editProduct).State = EntityState.Modified;
                    var result = await _db.SaveChangesAsync();

                    if (result > 0)
                    {
                        var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == ModelType.SIMPLEPRODUCT && d.ObjectId == editProduct.Id.ToString());

                        pageMeta             = pageMeta ?? new PageMeta();
                        pageMeta.ObjectId    = vm.Id.ToString();
                        pageMeta.Title       = string.IsNullOrEmpty(vm.Title) ? vm.Title : vm.Title;
                        pageMeta.Keyword     = string.IsNullOrEmpty(vm.Keywords) ? vm.Title : vm.Keywords.Replace(',', ',');
                        pageMeta.Description = vm.SEODescription;
                        pageMeta.ModelType   = ModelType.SIMPLEPRODUCT;

                        if (pageMeta.Id > 0)
                        {
                            _db.Entry(pageMeta).State = EntityState.Modified;
                        }
                        else
                        {
                            _db.PageMetas.Add(pageMeta);
                        }
                        await _db.SaveChangesAsync();


                        AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Product));
                    }
                    else
                    {
                        AR.Setfailure(String.Format(Messages.AlertUpdateFailure, EntityNames.Product));
                    }
                }
                else
                {
                    var product = _mapper.Map <SimpleProductIM, SimpleProduct>(vm);
                    _db.SimpleProducts.Add(product);
                    var result = await _db.SaveChangesAsync();

                    if (result > 0)
                    {
                        var pageMeta = new PageMeta()
                        {
                            ObjectId    = vm.Id.ToString(),
                            Title       = string.IsNullOrEmpty(vm.Title) ? $"{vm.ProductName}_{vm.ProductNo}" : vm.Title,
                            Keyword     = string.IsNullOrEmpty(vm.Keywords) ? vm.Title : vm.Keywords.Replace(',', ','),
                            Description = vm.SEODescription,
                            ModelType   = ModelType.SIMPLEPRODUCT
                        };
                        _db.PageMetas.Add(pageMeta);
                        await _db.SaveChangesAsync();

                        AR.SetSuccess(String.Format(Messages.AlertCreateSuccess, EntityNames.Product));
                    }
                    else
                    {
                        AR.Setfailure(String.Format(Messages.AlertCreateFailure, EntityNames.Product));
                    }
                }
            }
            catch (Exception er)
            {
                AR.Setfailure(er.Message);
            }
            return(Json(AR, JsonRequestBehavior.DenyGet));
        }