public ActionResult AddPropDialog(int idNode) { //получим OPC сервера var OpcServers = tagConfigurator.getOpcServersName(); ViewBag.OpcServers = OpcServers; //строка подключения //var connectionStr = jstree.getConnectionProp(idNode); //ID сервера к которому относится узел var OPCId = jstree.getOPCID(); //получим родительский узел var parentGroup = tagConfigurator.getParentGroup(idNode); //каналы ViewBag.SelectChannel = tagConfigurator.getChannels(); var model = new AddPropViewModel(); var userModel = new AddUserPropModel(); var standartModel = new AddStandartPropModelHelp(); //проинициализируем объекты пользовательских и стандартных свойств userModel.selectValue = 9; userModel.BoolenType = true; userModel.Id = idNode; standartModel.selectValueStd = 1; standartModel.ParentGroup = parentGroup; standartModel.Id = idNode; standartModel.Opc = OPCId; model.userPropModel = userModel; model.standartPropModel = standartModel; //ViewBag.ModulesToAdd = tagConfigurator.AddModuleDialog(); //ViewBag.ActiveModules = tagConfigurator.GetConnectedModules(); return(PartialView("addPropPartial", model)); }
public ActionResult AddPropDialogTypedNode(int idNode) { var OpcServers = tagConfigurator.getOpcServersName(); var parentGroup = tagConfigurator.getParentGroup(idNode); ViewBag.OpcServers = OpcServers; ViewBag.SelectChannel = tagConfigurator.getChannels(); ViewBag.ParentGroup = parentGroup; var userModel = new AddUserPropModel(); userModel.selectValue = 9; userModel.BoolenType = true; userModel.Id = idNode; return(PartialView("addPropPartialTypedNode", userModel)); }
//[OutputCache(Location = OutputCacheLocation.None, NoStore = true)] public ActionResult AddUserProp(AddUserPropModel model) { //Название совпадает со стандартным List <string> propsNames = new List <string> { "special", "Id", "Name", "Opc", "Connection", "Alarm_IsPermit", "HiHiText", "HiText", "NormalText", "LoText", "LoLoText", "HiHiSeverity", "HiSeverity", "LoSeverity", "LoLoSeverity", "ControllerType", "RealType", "RealType", "Register", "AccessType", "Order", "InMin", "InMax", "OutMin", "OutMax", "History_IsPermit", "RegPeriod", "Deadbend", "IsSpecialTag", "ChannelType", "InterPollPause", "MaxErrorsToSwitchChannel", "MaxErrorsToBadQuality", "TimeTryGoBackToPrimary", "IpAddress", "Port", "ReadTimeout", "WriteTimeout", "PortName", "BaudRate", "Parity", "StopBits", "Address", "Driver", "RetrCount", "ParentGroup", "PrimaryChannel", "SecondaryChannel", "Start", "Count", "Function", "Type", "Connect" }; if (propsNames.IndexOf(model.Name) != -1) { ModelState.AddModelError("Name", "Совпадает с названием стандартного свойства"); } if (model.selectValue == 10) { var validString = tagConfigurator.checkUserStrProp(model.StringValue); if (validString == false) { ModelState.AddModelError("StringValue", "Строка содержит запрещенные символы"); } } Dictionary <int, string> standartPropTypes = new Dictionary <int, string> { { 1, "byte" }, { 2, "word" }, { 3, "dword" }, { 4, "shortInt" }, { 5, "smallInt" }, { 6, "longInt" }, { 7, "float" }, { 8, "double" }, { 9, "bool" }, { 10, "string" } }; var userProps = tagConfigurator.getUserProps(model.Id); //var standartProps = tagConfigurator.getStandartProps(model.Id); var upgradeName = model.Name + "_" + standartPropTypes[model.selectValue]; if (!String.IsNullOrEmpty(model.Name)) { if (userProps.ContainsKey(upgradeName)) { ModelState.AddModelError("Name", "Свойство с таким названием уже добавлено"); } } if (ModelState.IsValid) { var propName = model.Name; //var stdTypeName = ModelState.Keys.Last(); var propValue = ModelState.Values.Last().Value.AttemptedValue; //PropertyInfo pi = model.GetType().GetProperty(stdTypeName); string value = ""; //подготовим свойство для записи в строку в зависимости от типа, который выбрал пользователь switch (model.selectValue) { //строковое case 10: value = "\"" + propValue + "\""; break; //булево case 9: value = (model.BoolenValue).ToString().ToLower(); break; //float double case 7: case 8: value = propValue.Replace(",", "."); break; //value = propValue.Replace(",", "."); //break; default: value = propValue; break; } //в дополнение к имени, которое вписал пользователь, будет прописан тип, выбранный юзером //дабы суметь валидировать измененное значение string forWrite = ",\"" + propName + "_" + standartPropTypes[model.selectValue] + "\":" + value; //пишем в базу tagConfigurator.addProp(forWrite, model.Id); //даем знать странице, что диалоговое окно надо надо закрыть, контейнер со свойствами перерисовать //улетает в checkValid var data = new { valid = true }; return(Json(data, JsonRequestBehavior.AllowGet)); } else { return(PartialView("addUserPropPartial", model)); } }
public ActionResult ChangeRegExp(string typeNumber) { var model = new AddUserPropModel(); model.BoolenType = false; model.ByteType = false; model.WordType = false; model.DWordType = false; model.ShortIntType = false; model.SmallIntType = false; model.LongIntType = false; model.FloatType = false; model.DoubleType = false; model.StringType = false; switch (typeNumber) { case "1": { model.ByteType = true; break; } case "2": { model.WordType = true; break; } case "3": { model.DWordType = true; break; } case "4": { model.ShortIntType = true; break; } case "5": { model.SmallIntType = true; break; } case "6": { model.LongIntType = true; break; } case "7": { model.FloatType = true; break; } case "8": { model.DoubleType = true; break; } case "9": { model.BoolenType = true; break; } case "10": { model.StringType = true; break; } } return(PartialView("ChangeInputUserPropPartial", model)); }