public async Task <ActionResult> Edit(int?id) { var vm = new InstituteIM { Active = true, Importance = 0 }; if (id > 0) { var vCase = await _db.Institutes.FindAsync(id); if (vCase == null) { AR.Setfailure(Messages.HttpNotFound); return(Json(AR, JsonRequestBehavior.AllowGet)); } vm = _mapper.Map <Institute, InstituteIM>(vCase); var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == (short)ModelType.INSTITUTE && d.ObjectId == vm.Id.ToString()); if (pageMeta != null) { vm.SEOTitle = pageMeta.Title; vm.Keywords = pageMeta.Keyword; vm.SEODescription = pageMeta.Description; } } var dics = await _db.Dictionaries.Where(d => d.TypeId == 1).OrderByDescending(m => m.Importance).ToListAsync(); var lDic = new SelectList(dics, "Id", "Title"); ViewBag.Dictionaries = lDic; return(View(vm)); }
public async Task <JsonResult> Edit(InstituteIM vm) { if (!ModelState.IsValid) { AR.Setfailure(GetModelErrorMessage()); return(Json(AR, JsonRequestBehavior.DenyGet)); } try { if (vm.Id > 0) { var editCase = await _db.Institutes.FindAsync(vm.Id); editCase = _mapper.Map(vm, editCase); editCase.UpdatedDate = DateTime.Now; editCase.UpdatedBy = Site.CurrentUserName; _db.Entry(editCase).State = EntityState.Modified; await _db.SaveChangesAsync(); var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == (short)ModelType.INSTITUTE && d.ObjectId == editCase.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 = (short)ModelType.INSTITUTE; 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.Institute)); return(Json(AR, JsonRequestBehavior.DenyGet)); } else { var newCase = _mapper.Map <InstituteIM, Institute>(vm); newCase.CreatedDate = DateTime.Now; newCase.CreatedBy = Site.CurrentUserName; newCase = _db.Institutes.Add(newCase); var result = await _db.SaveChangesAsync(); if (result > 0) { if (!string.IsNullOrEmpty(vm.Keywords) || !string.IsNullOrEmpty(vm.SEODescription)) { var pm = new PageMeta { Title = vm.SEOTitle, Description = vm.SEODescription, Keyword = vm.Keywords, ModelType = (short)ModelType.INSTITUTE, ObjectId = newCase.Id.ToString() }; _db.PageMetas.Add(pm); await _db.SaveChangesAsync(); } } AR.SetSuccess(String.Format(Messages.AlertCreateSuccess, EntityNames.Institute)); return(Json(AR, JsonRequestBehavior.DenyGet)); } } catch (Exception er) { AR.Setfailure(er.Message); return(Json(AR, JsonRequestBehavior.DenyGet)); } }