public void Execute(IPlatformFactory factory, ITestLogger logger) { MgPropertyCollection propVals = new MgPropertyCollection(); MgInt32Property prop = new MgInt32Property("prop", 1); propVals.Add(prop); MgUpdateFeatures update = new MgUpdateFeatures("class2", propVals, "where cat < dog"); MgInsertFeatures insert = new MgInsertFeatures("class3", propVals); MgDeleteFeatures del = new MgDeleteFeatures("class1", "where cat > dog"); MgFeatureCommandCollection coll = new MgFeatureCommandCollection(); coll.Add(update); coll.Add(insert); coll.Add(del); Assert.AreEqual(3, coll.Count); Assert.AreEqual(MgFeatureCommandType.DeleteFeatures, coll[2].GetCommandType()); coll[0] = coll[1]; string txt = ""; foreach (MgFeatureCommand cmd in coll) { txt += "[" + cmd.GetCommandType() + "]"; } Assert.AreEqual("[0][0][2]", txt); }
internal void DeleteLayer(RedlineLayer layer) { var regId = GetRegistryFeatureSource(); MgFeatureCommandCollection commands = new MgFeatureCommandCollection(); MgDeleteFeatures delete = new MgDeleteFeatures("Default:MarkupRegistry", "ResourceId = '" + layer.FeatureSource + "'"); commands.Add(delete); MgPropertyCollection results = _featSvc.UpdateFeatures(regId, commands, false); MgInt32Property deleteResult = results.GetItem(0) as MgInt32Property; if (deleteResult != null && deleteResult.GetValue() > 0) { var ldfId = new MgResourceIdentifier(layer.LayerDefinition); var fsId = new MgResourceIdentifier(layer.FeatureSource); if (_resSvc.ResourceExists(ldfId)) { _resSvc.DeleteResource(ldfId); } if (_resSvc.ResourceExists(fsId)) { _resSvc.DeleteResource(fsId); } } }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgPropertyCollection coll = new MgPropertyCollection(); MgDoubleProperty dblProp = new MgDoubleProperty("DoubleProp", 1.1111); MgInt32Property intProp = new MgInt32Property("IntProp", 1); MgDateTime dateTime = new MgDateTime(2006, 9, 21); MgDateTimeProperty dateProp = new MgDateTimeProperty("DateProp", dateTime); MgSingleProperty single = new MgSingleProperty("SingleProp", (float)2.2222); coll.Add(dblProp); coll.Add(intProp); coll.Add(dateProp); coll[2] = single; Assert.AreEqual(1.1111, (coll[0] as MgDoubleProperty).GetValue()); Assert.AreEqual(MgPropertyType.Double, coll[0].GetPropertyType()); Assert.AreEqual(MgPropertyType.Int32, coll[1].GetPropertyType()); Assert.AreEqual(MgPropertyType.Single, coll[2].GetPropertyType()); Assert.AreEqual((float)2.2222, (coll[2] as MgSingleProperty).GetValue()); Assert.AreEqual(3, coll.Count); Assert.AreEqual(MgPropertyType.Double, coll[0].GetPropertyType()); string str = ""; foreach (MgProperty prop in coll) { str = str + "[" + prop.GetName() + "]"; } Assert.AreEqual("[DoubleProp][IntProp][SingleProp]", str); }
internal void AddRedlineLayer(RedlineLayer layer, string fdoProvider) { var fsId = GetRegistryFeatureSource(); MgFeatureCommandCollection commands = new MgFeatureCommandCollection(); MgPropertyCollection insertVals = new MgPropertyCollection(); MgStringProperty regId = new MgStringProperty("ResourceId", layer.FeatureSource); MgStringProperty ldfId = new MgStringProperty("LayerDefinition", layer.LayerDefinition); MgStringProperty name = new MgStringProperty("Name", layer.Name); MgStringProperty provider = new MgStringProperty("FdoProvider", fdoProvider); MgInt32Property geomTypes = new MgInt32Property("GeometryTypes", layer.GeometryTypes); MgInt32Property styleType = new MgInt32Property("StyleType", (int)layer.StyleType); insertVals.Add(regId); insertVals.Add(ldfId); insertVals.Add(name); insertVals.Add(provider); insertVals.Add(geomTypes); insertVals.Add(styleType); MgInsertFeatures insert = new MgInsertFeatures("Default:MarkupRegistry", insertVals); commands.Add(insert); MgPropertyCollection result = _featSvc.UpdateFeatures(fsId, commands, false); MgFeatureProperty insertResult = result.GetItem(0) as MgFeatureProperty; if (insertResult != null) { MgFeatureReader fr = insertResult.GetValue(); fr.Close(); } }
public void BatchPropertyCollection() { MgPropertyCollection coll1 = new MgPropertyCollection(); MgDoubleProperty dblProp = new MgDoubleProperty("DoubleProp", 1.1111); coll1.Add(dblProp); MgPropertyCollection coll2 = new MgPropertyCollection(); MgInt32Property intProp = new MgInt32Property("IntProp", 1); coll2.Add(intProp); MgPropertyCollection coll3 = new MgPropertyCollection(); MgSingleProperty single = new MgSingleProperty("SingleProp", (float)2.2222); coll3.Add(single); MgBatchPropertyCollection coll = new MgBatchPropertyCollection(); coll.Add(coll1); coll.Add(coll2); Assert.AreEqual(2, coll.Count); Assert.AreEqual(MgPropertyType.Double, coll[0][0].GetPropertyType()); Assert.AreEqual(MgPropertyType.Int32, coll[1][0].GetPropertyType()); coll[1] = coll3; string str = ""; foreach (MgPropertyCollection c in coll) { str = str + "[" + c[0].GetName() + "]"; } Assert.AreEqual("[DoubleProp][SingleProp]", str); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgInt32Property ip = new MgInt32Property("Int32PropName", -2147483648); Assert.AreEqual("Int32PropName", ip.Name); Assert.AreEqual(MgPropertyType.Int32, ip.PropertyType); Assert.AreEqual(Int32.MinValue, ip.Value); }
public static void AddFeatureToCollection(MgBatchPropertyCollection propCollection, MgAgfReaderWriter agfRW, int featureId, MgGeometry featureGeom) { MgPropertyCollection bufferProps = new MgPropertyCollection(); MgInt32Property idProp = new MgInt32Property("ID", featureId); //NOXLATE bufferProps.Add(idProp); MgByteReader geomReader = agfRW.Write(featureGeom); MgGeometryProperty geomProp = new MgGeometryProperty("GEOM", geomReader); //NOXLATE bufferProps.Add(geomProp); propCollection.Add(bufferProps); }
internal void UpdateRedlineText(string text, int[] ids) { MgMapBase map = _viewer.GetMap(); MgLayerCollection layers = map.GetLayers(); MgLayerBase redlineLayer = layers.GetItem(_layer.SystemName); //HACK: Workaround FeatId leaky abstraction in SHP provider MgClassDefinition cls = redlineLayer.GetClassDefinition(); MgPropertyDefinitionCollection idProps = cls.GetIdentityProperties(); MgPropertyDefinition idProp = idProps.GetItem(0); redlineLayer.ForceRefresh(); //This lib doesn't reference mg-desktop so the convenience APIs aren't available to us //Gotta go the old verbose route List <string> filters = new List <string>(); foreach (int id in ids) { filters.Add(idProp.Name + " = " + id); } string updateFilter = string.Join(" OR ", filters.ToArray()); MgFeatureCommandCollection commands = new MgFeatureCommandCollection(); MgPropertyCollection updateValues = new MgPropertyCollection(); MgStringProperty updateProp = new MgStringProperty(RedlineSchemaFactory.TEXT_NAME, text); updateValues.Add(updateProp); MgUpdateFeatures update = new MgUpdateFeatures(redlineLayer.FeatureClassName, updateValues, updateFilter); commands.Add(update); MgPropertyCollection result = redlineLayer.UpdateFeatures(commands); MgInt32Property updateResult = result.GetItem(0) as MgInt32Property; MgStringProperty errorResult = result.GetItem(0) as MgStringProperty; if (errorResult != null) { throw new Exception(errorResult.GetValue()); } _viewer.RefreshMap(); }
public void Execute(IPlatformFactory factory, ITestLogger logger) { MgPropertyCollection coll1 = new MgPropertyCollection(); MgDoubleProperty dblProp = new MgDoubleProperty("DoubleProp", 1.1111); coll1.Add(dblProp); MgPropertyCollection coll2 = new MgPropertyCollection(); MgInt32Property intProp = new MgInt32Property("IntProp", 1); coll2.Add(intProp); MgPropertyCollection coll3 = new MgPropertyCollection(); MgSingleProperty single = new MgSingleProperty("SingleProp", (float)2.2222); coll3.Add(single); MgBatchPropertyCollection coll = new MgBatchPropertyCollection(); coll.Add(coll1); coll.Add(coll2); Assert.AreEqual(2, coll.Count); Assert.AreEqual(MgPropertyType.Double, coll[0][0].GetPropertyType()); Assert.AreEqual(MgPropertyType.Int32, coll[1][0].GetPropertyType()); coll[1] = coll3; string str = ""; foreach (MgPropertyCollection c in coll) { str = str + "[" + c[0].GetName() + "]"; } Assert.AreEqual("[DoubleProp][SingleProp]", str); }
internal void DeleteRedlines(int[] ids) { MgMapBase map = _viewer.GetMap(); MgLayerCollection layers = map.GetLayers(); MgLayerBase redlineLayer = layers.GetItem(_layer.SystemName); //HACK: Workaround FeatId leaky abstraction in SHP provider MgClassDefinition cls = redlineLayer.GetClassDefinition(); MgPropertyDefinitionCollection idProps = cls.GetIdentityProperties(); MgPropertyDefinition idProp = idProps.GetItem(0); redlineLayer.ForceRefresh(); //This lib doesn't reference mg-desktop so the convenience APIs aren't available to us //Gotta go the old verbose route List <string> filters = new List <string>(); foreach (int id in ids) { filters.Add(idProp.Name + " = " + id); } string deleteFilter = string.Join(" OR ", filters.ToArray()); MgFeatureCommandCollection commands = new MgFeatureCommandCollection(); MgDeleteFeatures delete = new MgDeleteFeatures(redlineLayer.FeatureClassName, deleteFilter); commands.Add(delete); MgPropertyCollection result = redlineLayer.UpdateFeatures(commands); MgInt32Property deleteResult = result.GetItem(0) as MgInt32Property; if (deleteResult != null && deleteResult.GetValue() > 0) { _viewer.RefreshMap(); } }
internal static void Populate(MgPropertyCollection props, IMutableRecord record) { for (int i = 0; i < record.FieldCount; i++) { var pt = record.GetPropertyType(i); string name = record.GetName(i); if (record.IsNull(i)) { switch (pt) { case PropertyValueType.Blob: { var propVal = new MgBlobProperty(name, null); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.Boolean: { var propVal = new MgBooleanProperty(name, false); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.Byte: { var propVal = new MgByteProperty(name, 0); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.Clob: { var propVal = new MgClobProperty(name, null); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.DateTime: { var propVal = new MgDateTimeProperty(name, null); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.Double: { var propVal = new MgDoubleProperty(name, 0.0); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.Geometry: { var propVal = new MgGeometryProperty(name, null); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.Int16: { var propVal = new MgInt16Property(name, 0); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.Int32: { var propVal = new MgInt32Property(name, 0); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.Int64: { var propVal = new MgInt64Property(name, 0L); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.Single: { var propVal = new MgSingleProperty(name, 0.0f); propVal.SetNull(true); props.Add(propVal); } break; case PropertyValueType.String: { var propVal = new MgStringProperty(name, ""); propVal.SetNull(true); props.Add(propVal); } break; default: throw new NotSupportedException(); } } else { switch (pt) { case PropertyValueType.Blob: { var bytes = record.GetBlob(i); var br = new MgByteSource(bytes, bytes.Length); var bv = new MgBlobProperty(name, br.GetReader()); props.Add(bv); } break; case PropertyValueType.Boolean: { props.Add(new MgBooleanProperty(name, record.GetBoolean(i))); } break; case PropertyValueType.Byte: { props.Add(new MgByteProperty(name, record.GetByte(i))); } break; case PropertyValueType.Clob: { var bytes = record.GetBlob(i); var br = new MgByteSource(bytes, bytes.Length); var bv = new MgClobProperty(name, br.GetReader()); props.Add(bv); } break; case PropertyValueType.DateTime: { var dt = record.GetDateTime(i); var mdt = new MgDateTime((short)dt.Year, (short)dt.Month, (short)dt.Day, (short)dt.Hour, (short)dt.Minute, (short)dt.Second, dt.Millisecond * 1000); props.Add(new MgDateTimeProperty(name, mdt)); } break; case PropertyValueType.Double: { props.Add(new MgDoubleProperty(name, record.GetDouble(i))); } break; case PropertyValueType.Geometry: { MgByteReader agf = GeomConverter.GetAgf(record.GetGeometry(i)); props.Add(new MgGeometryProperty(name, agf)); } break; case PropertyValueType.Int16: { props.Add(new MgInt16Property(name, record.GetInt16(i))); } break; case PropertyValueType.Int32: { props.Add(new MgInt32Property(name, record.GetInt32(i))); } break; case PropertyValueType.Int64: { props.Add(new MgInt64Property(name, record.GetInt64(i))); } break; case PropertyValueType.Single: { props.Add(new MgSingleProperty(name, record.GetSingle(i))); } break; case PropertyValueType.String: { props.Add(new MgStringProperty(name, record.GetString(i))); } break; default: throw new NotSupportedException(); } } } }
public void PropertyCollection() { MgPropertyCollection coll = new MgPropertyCollection(); MgDoubleProperty dblProp = new MgDoubleProperty("DoubleProp", 1.1111); MgInt32Property intProp = new MgInt32Property("IntProp", 1); MgDateTime dateTime = new MgDateTime(2006, 9, 21); MgDateTimeProperty dateProp = new MgDateTimeProperty("DateProp", dateTime); MgSingleProperty single = new MgSingleProperty("SingleProp", (float) 2.2222); coll.Add(dblProp); coll.Add(intProp); coll.Add(dateProp); coll[2] = single; Assert.AreEqual(1.1111, (coll[0] as MgDoubleProperty).GetValue()); Assert.AreEqual(MgPropertyType.Double, coll[0].GetPropertyType()); Assert.AreEqual(MgPropertyType.Int32, coll[1].GetPropertyType()); Assert.AreEqual(MgPropertyType.Single, coll[2].GetPropertyType()); Assert.AreEqual((float) 2.2222, (coll[2] as MgSingleProperty).GetValue()); Assert.AreEqual(3, coll.Count); Assert.AreEqual(MgPropertyType.Double, coll[0].GetPropertyType()); string str = ""; foreach (MgProperty prop in coll) { str = str+"["+prop.GetName()+"]"; } Assert.AreEqual("[DoubleProp][IntProp][SingleProp]", str); }
public void FeatureCommandCollection() { MgPropertyCollection propVals = new MgPropertyCollection(); MgInt32Property prop = new MgInt32Property("prop", 1); propVals.Add(prop); MgUpdateFeatures update = new MgUpdateFeatures("class2", propVals, "where cat < dog"); MgInsertFeatures insert = new MgInsertFeatures("class3", propVals); MgDeleteFeatures del = new MgDeleteFeatures("class1", "where cat > dog"); MgFeatureCommandCollection coll = new MgFeatureCommandCollection(); coll.Add(update); coll.Add(insert); coll.Add(del); Assert.AreEqual(3, coll.Count); Assert.AreEqual(MgFeatureCommandType.DeleteFeatures, coll[2].GetCommandType()); coll[0] = coll[1]; string txt = ""; foreach (MgFeatureCommand cmd in coll) { txt += "[" + cmd.GetCommandType() + "]"; } Assert.AreEqual("[0][0][2]", txt); }
public void Int32Property() { MgInt32Property ip = new MgInt32Property("Int32PropName", -2147483648); Assert.AreEqual("Int32PropName", ip.Name); Assert.AreEqual(MgPropertyType.Int32, ip.PropertyType); Assert.AreEqual(Int32.MinValue, ip.Value); }
public MgProperty GenerateProperty() { MgProperty prop = null; if (IsReadOnly || IsIdentity || !IsUpdated) return null; switch (PropertyType) { case MgPropertyType.Boolean: bool val = new bool(); if (!bool.TryParse(Value.ToString(), out val)) { throw new InvalidOperationException(string.Format("<b>{0}</b> - נתון אינו תקין", Alias)); } prop = new MgBooleanProperty(Name, val); break; case MgPropertyType.Byte: byte val2 = new byte(); if (!byte.TryParse(Value.ToString(), out val2)) { throw new InvalidOperationException(string.Format("<b>{0}</b> - נתון אינו תקין", Alias)); } prop = new MgByteProperty(Name, val2); break; case MgPropertyType.Double: double val3 = new double(); if (!double.TryParse(Value.ToString(), out val3)) { throw new InvalidOperationException(string.Format("<b>{0}</b> חייב להיות מספר", Alias)); } prop = new MgDoubleProperty(Name, val3); break; case MgPropertyType.Int16: short val4 = new short(); if (!short.TryParse(Value.ToString(), out val4)) { throw new InvalidOperationException(string.Format("<b>{0}</b> חייב להיות מספר", Alias)); } prop = new MgInt16Property(Name, val4); break; case MgPropertyType.Int32: int val5 = new int(); if (!int.TryParse(Value.ToString(), out val5)) { throw new InvalidOperationException(string.Format("<b>{0}</b> חייב להיות מספר", Alias)); } prop = new MgInt32Property(Name, val5); break; case MgPropertyType.Int64: long val6 = new long(); if (!long.TryParse(Value.ToString(), out val6)) { throw new InvalidOperationException(string.Format("<b>{0}</b> חייב להיות מספר", Alias)); } prop = new MgInt64Property(Name, val6); break; case MgPropertyType.DateTime: MgDateTime dt = new MgDateTime(); short day, month, year; if (Alias == "תאריך עדכון" || Alias == "עדכון אחרון") { Value = DateTime.Now.ToString("dd/MM/yyyy"); } string[] arrDT = Value.ToString().Split('/'); if (!short.TryParse(arrDT[0], out day) || !short.TryParse(arrDT[1], out month) || !short.TryParse(arrDT[2], out year)) { throw new InvalidOperationException(string.Format("<b>{0}</b> פורמת תאריך שגוי", Alias)); } dt.Day = day; dt.Month = month; dt.Year = year; prop = new MgDateTimeProperty(Name, dt); break; case MgPropertyType.String: string val7 = ""; val7 = Value.ToString(); prop = new MgStringProperty(Name, val7); break; default: break; } return prop; }