示例#1
0
        // GET: Admin/Jobs/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            var vm = new JobIM();

            if (id == null)
            {
                vm.Active = true;
                vm.Number = 1;
            }
            else
            {
                var article = await _context.Jobs.FindAsync(id);

                if (article == null)
                {
                    return(NotFound());
                }

                vm = _mapper.Map <JobIM>(article);

                var pm = await _context.PageMetas.FirstOrDefaultAsync(d => d.ModuleType == (short)ModuleType.JOB && d.ObjectId == vm.Id.ToString());

                if (pm != null)
                {
                    vm.SEOTitle       = pm.Title;
                    vm.SEOKeywords    = pm.Keywords;
                    vm.SEODescription = pm.Description;
                }
            }
            var categories = await _context.JobCategories.AsNoTracking()
                             .OrderByDescending(d => d.Importance).ToListAsync();

            ViewData["Categories"] = new SelectList(categories, "Id", "Title");

            var branches = await _context.Branches.AsNoTracking()
                           .OrderByDescending(d => d.Importance).ToListAsync();

            ViewData["Branches"] = new SelectList(branches, "Id", "Name");

            return(View(vm));
        }
        //// GET: Admin/Jobs/Create
        //public ActionResult Create()
        //{
        //    JobIM job = new JobIM()
        //    {
        //        Active = true
        //    };
        //    return PartialView("_Create", job);
        //}


        //[HttpPost]
        //[ValidateAntiForgeryToken]
        //[ValidateInput(false)]
        //public async System.Threading.Tasks.Task<JsonResult> Create(JobIM job)
        //{
        //    if (!ModelState.IsValid)
        //    {
        //        AR.Setfailure(GetModelErrorMessage());
        //        return Json(AR, JsonRequestBehavior.DenyGet);
        //    }

        //    //try
        //    //{
        //        var newJob = _mapper.Map<JobIM, Job>(job);

        //        var result = _db.Jobs.Add(newJob);
        //    _db.SaveChanges();

        //        if (result!=null)
        //        {
        //            var pageMeta = new PageMetaSet()
        //            {
        //                ObjectId = result.ToString(),
        //                Title = string.IsNullOrEmpty(job.SEOTitle) ? job.Post : job.SEOTitle,
        //                Keyword = string.IsNullOrEmpty(job.Keywords) ? job.Post : job.Keywords.Replace(',', ','),
        //                Description = job.SEODescription,
        //                ModelType = (short)ModelType.JOB
        //            };
        //          //  _pageMetaServices.Create(pageMeta);
        //            _db.PageMetas.Add(pageMeta);
        //            _db.SaveChanges();
        //        }

        //        int pageSize = SettingsManager.Job.PageSize;
        //        var list = await _db.Jobs.OrderByDescending(d => d.Importance).Take(pageSize).ProjectTo<JobVM>().ToListAsync();
        //    //_jobServices.GetJobdElements(0, pageSize, string.Empty, out count);

        //    AR.Data = RenderPartialViewToString("_JobList", list);

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

        //}

        // GET: Admin/Jobs/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            var vm = new JobIM
            {
                Active     = true,
                Importance = 0
            };

            if (id > 0)
            {
                var vAchi = await _db.Jobs.FindAsync(id);

                if (vAchi == null)
                {
                    AR.Setfailure(Messages.HttpNotFound);
                    return(Json(AR, JsonRequestBehavior.AllowGet));
                }

                vm = _mapper.Map <Job, JobIM>(vAchi);

                //var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == (short)ModelType.JOB && d.ObjectId == editJob.Id.ToString());
                //    //_pageMetaServices.GetPageMeta(ModelType.JOB, editJob.Id.ToString());
                //if (pageMeta != null)
                //{
                //    editJob.SEOTitle = pageMeta.Title;
                //    editJob.Keywords = pageMeta.Keyword;
                //    editJob.SEODescription = pageMeta.Description;
                //}
            }

            var dictionaries = await _db.Dictionaries.Where(d => d.TypeId == 2).OrderByDescending(m => m.Importance).ToListAsync();

            ViewBag.Categories = new SelectList(dictionaries, "Title", "Title");

            return(View(vm));
        }
        public async Task <ActionResult> Edit(JobIM vm)
        {
            if (!ModelState.IsValid)
            {
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }

            try
            {
                //    var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == (short)ModelType.JOB && d.ObjectId == editJob.Id.ToString());
                //        //_pageMetaServices.GetPageMeta(ModelType.PAGE, editJob.Id.ToString());
                //    pageMeta = pageMeta ?? new PageMetaSet();

                //    pageMeta.ObjectId = page.Id.ToString();
                //    pageMeta.Title = string.IsNullOrEmpty(page.SEOTitle) ? page.Post : page.SEOTitle;
                //    pageMeta.Keyword = string.IsNullOrEmpty(page.Keywords) ? page.Post : page.Keywords.Replace(',', ',');
                //    pageMeta.Description = page.SEODescription;
                //    pageMeta.ModelType = (short)ModelType.JOB;

                if (vm.Id > 0)
                {
                    var job = await _db.Jobs.FindAsync(vm.Id);

                    job                  = _mapper.Map(vm, job);
                    job.UpdatedBy        = Site.CurrentUserName;
                    job.UpdatedDate      = DateTime.Now;
                    _db.Entry(job).State = EntityState.Modified;
                    //_db.Entry(pageMeta).State = EntityState.Modified;

                    await _db.SaveChangesAsync();



                    AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Job));
                    return(Json(AR, JsonRequestBehavior.DenyGet));
                }
                else
                {
                    var newJob = _mapper.Map <JobIM, Job>(vm);
                    newJob.CreatedBy   = Site.CurrentUserName;
                    newJob.CreatedDate = DateTime.Now;
                    _db.Jobs.Add(newJob);
                    await _db.SaveChangesAsync();

                    //_db.PageMetas.Add(pageMeta);
                    //await _db.SaveChangesAsync();

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

            //if (!ModelState.IsValid)
            //{
            //    AR.Setfailure(GetModelErrorMessage());
            //    return Json(AR, JsonRequestBehavior.DenyGet);
            //}

            //try
            //{
            //    var old = await _db.Jobs.FindAsync(page.Id);
            //    var editJob = _mapper.Map(page, old);

            //    _db.Entry(editJob).State = EntityState.Modified;
            //    await _db.SaveChangesAsync();
            //    //  _jobServices.Update(editJob);

            //    var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == (short)ModelType.JOB && d.ObjectId == editJob.Id.ToString());
            //        //_pageMetaServices.GetPageMeta(ModelType.PAGE, editJob.Id.ToString());
            //    pageMeta = pageMeta ?? new PageMetaSet();

            //    pageMeta.ObjectId = page.Id.ToString();
            //    pageMeta.Title = string.IsNullOrEmpty(page.SEOTitle) ? page.Post : page.SEOTitle;
            //    pageMeta.Keyword = string.IsNullOrEmpty(page.Keywords) ? page.Post : page.Keywords.Replace(',', ',');
            //    pageMeta.Description = page.SEODescription;
            //    pageMeta.ModelType = (short)ModelType.JOB;

            //    if (pageMeta.Id > 0)
            //    {
            //        _db.Entry(pageMeta).State = EntityState.Modified;
            //        //_pageMetaServices.Update(pageMeta);
            //    }
            //    else
            //    {
            //        _db.PageMetas.Add(pageMeta);
            //       // _pageMetaServices.Create(pageMeta);
            //    }
            //    await _db.SaveChangesAsync();
            //    // var pageVM = _mapper.Map<JobVM>(editJob);

            //    AR.Id = page.Id;
            //    AR.Data = RenderPartialViewToString("_JobItem", editJob);

            //    AR.SetSuccess(String.Format(Messages.AlertUpdateSuccess, EntityNames.Job));
            //    return Json(AR, JsonRequestBehavior.DenyGet);
            //}
            //catch (Exception er)
            //{
            //    AR.Setfailure(er.Message);
            //    return Json(AR, JsonRequestBehavior.DenyGet);
            //}
        }
示例#4
0
        public async Task <IActionResult> Edit(JobIM article)
        {
            if (!ModelState.IsValid)
            {
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR));
            }


            try
            {
                var pm = new PageMeta
                {
                    Title       = article.SEOTitle,
                    Description = article.SEODescription,
                    Keywords    = article.SEOKeywords,
                    ModuleType  = (short)ModuleType.JOB
                };


                if (article.Id > 0)
                {
                    var model = await _context.Jobs.FirstOrDefaultAsync(d => d.Id == article.Id);

                    if (model == null)
                    {
                        AR.Setfailure(Messages.HttpNotFound);
                        return(Json(AR));
                    }
                    model = _mapper.Map(article, model);

                    model.UpdatedBy   = User.Identity.Name;
                    model.UpdatedDate = DateTime.Now;


                    _context.Entry(model).State = EntityState.Modified;
                    await _context.SaveChangesAsync();

                    AR.SetSuccess(string.Format(Messages.AlertUpdateSuccess, EntityNames.Job));
                    pm.ObjectId = model.Id.ToString();
                }
                else
                {
                    var model = _mapper.Map <Job>(article);

                    model.CreatedBy   = User.Identity.Name;
                    model.CreatedDate = DateTime.Now;


                    //model.Body = WebUtility.HtmlEncode(page.Body);

                    _context.Add(model);
                    await _context.SaveChangesAsync();

                    pm.ObjectId = model.Id.ToString();

                    AR.SetSuccess(string.Format(Messages.AlertCreateSuccess, EntityNames.Job));
                }



                await CreatedUpdatedPageMetaAsync(_context, pm);

                return(Json(AR));
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!JobExists(article.Id))
                {
                    AR.Setfailure(Messages.HttpNotFound);
                    return(Json(AR));
                }
                else
                {
                    throw;
                }
            }
        }