Example #1
0
        public PartialViewResult SetVariantNew(RecordModel rmodel)
        {
            string ss = rmodel.name_to_set;
            string prop = rmodel.prop_to_set;
            string eid = rmodel.eid;
            string ty = rmodel.type_to_set;
            string sysobj_id = Sema2012.Engine.CreateSysObject(ty, ss, User.Identity.Name);

            Turgunda.Models.PortraitModel portrait = new Turgunda.Models.PortraitModel(rmodel.id);
            rmodel.SetPortrait(portrait);

            if (sysobj_id != null)
            {
                DirectLink target = RecordModel.GetTarget(rmodel, prop);
                target.target_id = sysobj_id;
                target.target_name = ss;
                RecordModel.SetTarget(rmodel, prop, target);
            }

            return PartialView("EditForm", rmodel);
        }
Example #2
0
        public PartialViewResult EditForm(string id, string eid)
        {
            Turgunda.Models.PortraitModel portrait = (Turgunda.Models.PortraitModel)this.Session["portrait"];
            portrait = new Turgunda.Models.PortraitModel(id);
            //portrait.Eid = eid;
            Turgunda.Models.RecordModel record = new RecordModel(); //new RecordModel(portrait, eid);
            record.eid = eid;
            record.SetPortrait(portrait);
            record.Load();
            record.id = id;

            //SetViewData();
            return PartialView("EditForm", record);
        }
Example #3
0
        public PartialViewResult SetVariant(RecordModel rmodel)
        {
            //RecordModel rmodel = new RecordModel();
            Turgunda.Models.PortraitModel portrait = (Turgunda.Models.PortraitModel)this.Session["portrait"];
            if (true || portrait == null)
                portrait = new Turgunda.Models.PortraitModel(rmodel.id);
            rmodel.SetPortrait(portrait);

            string prop = rmodel.prop_to_set;
            DirectLink target = RecordModel.GetTarget(rmodel, prop);
            target.target_id = rmodel.id_to_set;
            target.target_name = rmodel.name_to_set;
            RecordModel.SetTarget(rmodel, prop, target);
            //SetViewData();
            return PartialView("EditForm", rmodel);
        }
Example #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);
        }
Example #5
0
 public static void SetTarget(RecordModel rmodel, string prop, DirectLink target)
 {
     switch (prop)
     {
         case "father": rmodel.father = target; break;
         case "mother": rmodel.mother = target; break;
         case "wife": rmodel.wife = target; break;
         case "husband": rmodel.husband = target; break;
         case "learning-org": rmodel.learningorg = target; break;
         case "in-org": rmodel.inorg = target; break;
         case "in-doc": rmodel.indoc = target; break;
         case "participant": rmodel.participant = target; break;
         case "learner": rmodel.learner = target; break;
         case "org-child": rmodel.orgchild = target; break;
         case "org-parent": rmodel.orgparent = target; break;
         case "reflected": rmodel.reflected = target; break;
         case "in-archive": rmodel.inarchive = target; break;
         case "info-source": rmodel.infosource = target; break;
         case "author": rmodel.author = target; break;
         case "collection-item": rmodel.collectionitem = target; break;
         case "in-collection": rmodel.incollection = target; break;
         case "inDocument": rmodel.inDocument = target; break;
         case "partItem": rmodel.partItem = target; break;
         default: break;
     }
 }
Example #6
0
 public static DirectLink GetTarget(RecordModel rmodel, string prop)
 {
     DirectLink target = new DirectLink();
     switch (prop)
     {
         case "father": target = rmodel.father; break;
         case "mother": target = rmodel.mother; break;
         case "wife": target = rmodel.wife; break;
         case "husband": target = rmodel.husband; break;
         case "learning-org": target = rmodel.learningorg; break;
         case "in-org": target = rmodel.inorg; break;
         case "in-doc": target = rmodel.indoc; break;
         case "participant": target = rmodel.participant; break;
         case "learner": target = rmodel.learner; break;
         case "org-child": target = rmodel.orgchild; break;
         case "org-parent": target = rmodel.orgparent; break;
         case "reflected": target = rmodel.reflected; break;
         case "in-archive": target = rmodel.inarchive; break;
         case "info-source": target = rmodel.infosource; break;
         case "author": target = rmodel.author; break;
         case "collection-item": target = rmodel.collectionitem; break;
         case "in-collection": target = rmodel.incollection; break;
         case "inDocument": target = rmodel.inDocument; break;
         case "partItem": target = rmodel.partItem; break;
         default: break;
     }
     return target;
 }
Example #7
0
 public static string GetField(RecordModel rmodel, string prop)
 {
     string res = null;
     switch (prop)
     {
         case "name": res = rmodel.name; break;
         case "from-date": res = rmodel.startDate; break;
         case "to-date": res = rmodel.endDate; break;
         case "comment": res = rmodel.comment; break;
         case "description": res = rmodel.description; break;
         case "sex": res = rmodel.gender; break;
         case "role": res = rmodel.participationRole; break;
         case "role-classification": res = rmodel.participationRoleClassification; break;
         case "degree": res = rmodel.titledDegree; break;
         case "alias": res = rmodel.alias; break;
         case "doc-content": res = rmodel.docContent; break;
         case "ground": res = rmodel.ground; break;
         case "pageNumbers": res = rmodel.pageNumbers; break;
         default: break;
     }
     return res;
 }