예제 #1
0
 public PartialViewResult AjSearch(SearchModel model)
 {
     if (!string.IsNullOrEmpty(model.searchstring))
         model.SearchResults = Sema2012.Engine.SearchByName(model.searchstring, model.type, false);
     return PartialView(model);
 }
예제 #2
0
 public ActionResult Search()
 {
     if (!StaticObjects.Initiated) StaticObjects.Init(Request.MapPath("~/"));
     var model = new Turgunda.Models.SearchModel();
     return View(model);
 }
예제 #3
0
 public ActionResult Search(SearchModel model)
 {
     if (!StaticObjects.Initiated) StaticObjects.Init(Request.MapPath("~/"));
     //if (!string.IsNullOrEmpty(model.searchstring))
         model.SearchResults = Sema2012.Engine.SearchByName(model.searchstring, model.type, false).Take(100);
     return View(model);
 }
예제 #4
0
        public PartialViewResult EditForm(/*string lang, */RecordModel rmodel)
        {
            var ok = rmodel.ok;
            var cancel = rmodel.cancel;
            var chk = rmodel.chk;
            var chlang = rmodel.l;

            Turgunda.Models.PortraitModel portrait = (Turgunda.Models.PortraitModel)this.Session["portrait"];
            if (true || portrait == null)
                portrait = new Turgunda.Models.PortraitModel(rmodel.id);
            rmodel.SetPortrait(portrait);

            if (chlang != null)
            {
                rmodel.lang = rmodel.lang == "ru" ? "en" : "ru";
                return PartialView("EditForm", rmodel);
            }

            if (cancel != null)
            {
                return PartialView("RecordView", rmodel);
            }
            if (ok != null)
            {
                // Если фиксация результата, то надо обратиться к сервису изменений, а также перевычислить
                // и переприсвоить портрет
                XElement rec = rmodel.MakeRecord();
                Sema2012.Engine.ReplaceRecord(rec, User.Identity.Name);
                //? if (dc == null) dc = new DbCreation(Engine.connectionstring, Engine._configuration);
                //? dc.SaveRecord(rmodel, User.Identity.Name);
                portrait = new Turgunda.Models.PortraitModel(rmodel.id);
                //Session["portrait"] = portrait;
                rmodel.SetPortrait(portrait);
                return PartialView("RecordView", rmodel);
            }

            // chk: Проверка. Для всех прямых ссылок нужно зафиксировать ситуацию, когда
            // идентификатор цели не установлен, но есть образец для просмотра, тогда в модель надо
            // "толкнуть" варианты, подходящие под образец
            foreach (var dir_format in rmodel.xformat.Elements("direct"))
            {
                string prop = dir_format.Attribute("prop").Value;
                DirectLink target = RecordModel.GetTarget(rmodel, prop);
                if (target.target_id != null || target.target_name == null) continue;
                string type = target.target_type ?? "person";
                var searchresults = new Turgunda.Models.SearchModel(target.target_name, type);
                target.target_list = searchresults.SearchResults
                    .Select(res => new DirectLink { target_id = res.Attribute("id").Value, target_name = res.Value })
                    .ToList();
                RecordModel.SetTarget(rmodel, prop, target);
            }
            //SetViewData();
            return PartialView("EditForm", rmodel);
        }