public static void FluentBuilderDemo() { var builder = new Person.Builder(); var person = builder.Called("Pranav").WorksAsA("Accountant").BornAt("11-02-1995").Build(); Console.WriteLine(person); }
private static void Main(string[] args) { var builder = new Person.Builder(); var person = builder.WorksAsA("Developer").Called("John Doe").Build(); Console.WriteLine(person.ToString()); }
public static void Main(string[] args) { var builder = new Person.Builder(); var person = builder.Called("Lucho").WorksAsA("Son").Build(); Console.WriteLine(person); Console.ReadKey(); }
static void Main(string[] args) { var jon = new Person.Builder { Name = "Jon", Address = new Address.Builder { City = "Reading", Street = "..." }.Build(), Phones = { } }.Build(); }
/// <summary> /// Builds a person based on user input /// </summary> static Person PromptForAddress(TextReader input, TextWriter output) { Person.Builder person = Person.CreateBuilder(); output.Write("Enter person ID: "); person.Id = int.Parse(input.ReadLine()); output.Write("Enter name: "); person.Name = input.ReadLine(); output.Write("Enter email address (blank for none): "); string email = input.ReadLine(); if (email.Length > 0) { person.Email = email; } while (true) { output.Write("Enter a phone number (or leave blank to finish): "); string number = input.ReadLine(); if (number.Length == 0) { break; } Person.Types.PhoneNumber.Builder phoneNumber = Person.Types.PhoneNumber.CreateBuilder().SetNumber(number); output.Write("Is this a mobile, home, or work phone? "); String type = input.ReadLine(); switch (type) { case "mobile": phoneNumber.Type = Person.Types.PhoneType.MOBILE; break; case "home": phoneNumber.Type = Person.Types.PhoneType.HOME; break; case "work": phoneNumber.Type = Person.Types.PhoneType.WORK; break; default: output.Write("Unknown phone type. Using default."); break; } person.AddPhone(phoneNumber); } return(person.Build()); }
static void Main(string[] args) { // byte[] bytes; // //Create a builder to start building a message // Person.Builder newContact = Person.CreateBuilder(); // //Set the primitive properties // newContact.SetId(1) // .SetName("Foo") // .SetEmail("foo@bar"); // //Now add an item to a list (repeating) field // newContact.AddPhone( // //Create the child message inline // Person.Types.PhoneNumber.CreateBuilder().SetNumber("555-1212").Build() // ); // //Now build the final message: // Person person = newContact.Build(); // //The builder is no longer valid (at least not now, scheduled for 2.4): // newContact = null; // using (MemoryStream stream = new MemoryStream()) // { // //Save the person to a stream // person.WriteTo(stream); // bytes = stream.ToArray(); // } // //Create another builder, merge the byte[], and build the message: // Person copy = Person.CreateBuilder().MergeFrom(bytes).Build(); // //A more streamlined approach might look like this: // bytes = AddressBook.CreateBuilder().AddPerson(copy).Build().ToByteArray(); // //And read the address book back again // AddressBook restored = AddressBook.CreateBuilder().MergeFrom(bytes).Build(); // //The message performs a deep-comparison on equality: // if (restored.PersonCount != 1 || !person.Equals(restored.PersonList[0])) // throw new ApplicationException("There is a bad person in here!"); // CSHead.Builder myCSHeadBuilder = CSHead.CreateBuilder(); // myCSHeadBuilder.SetCommand(1); // myCSHeadBuilder.SetSubcmd(2); // myCSHeadBuilder.SetUuid(ByteString.CopyFrom("3", Encoding.ASCII)); // myCSHeadBuilder.SetRouteKey(4); // CSHead cshead = myCSHeadBuilder.Build(); //byte[] CSHeadBuffer = cshead.ToByteArray(); Person p = new Person.Builder().SetId(1).SetName("lee").SetEmail("*****@*****.**").Build(); byte[] buffer = null; using (MemoryStream ms = new MemoryStream()) { p.WriteTo(ms); buffer = ms.ToArray(); } Person p2 = Person.CreateBuilder().MergeFrom(buffer).Build(); }
static void Main(string[] args) { var jon = new Person.Builder { Name = "Jon", Address = new Address.Builder { City = "Reading", Street = "..." }.Build(), Phones = { } }; }
static void Main(string[] args) { var jon = new Person.Builder { Name = "Jon", Address = new Address.Builder { City = "Reading", Street = "..." }.Build(), Phones = { new PhoneNumber.Builder { Type = PhoneNumberType.Home, Number = "1234" }.Build(), new PhoneNumber.Builder { Type = PhoneNumberType.Mobile, Number = "5678" }.Build(), } }.Build(); }
public void TestProtocolBuffers() { // 注意: 这里没办法简单 Person person = new Person(); Person.Builder builder = new Person.Builder(); builder.SetEmail("*****@*****.**"); builder.SetId(123); builder.SetName("张三"); builder.AddPhone(new Person.Types.PhoneNumber.Builder().SetNumber("13012345678").SetType(Person.Types.PhoneType.MOBILE)); builder.AddPhone(new Person.Types.PhoneNumber.Builder().SetNumber("02112345678").SetType(Person.Types.PhoneType.HOME)); // 生成 person 类 Person person = builder.Build(); // 序列化. byte[] buf = person.ToByteArray(); // 写入文件. System.IO.File.WriteAllBytes("test.dat", buf); // 读取. byte[] dataBuff = System.IO.File.ReadAllBytes("test.dat"); // 反序列化. try { Person person2 = Person.ParseFrom(dataBuff); Console.WriteLine(person2.Id + "," + person2.Name + ", " + person2.Email); IList <Person.Types.PhoneNumber> lstPhones = person2.PhoneList; foreach (Person.Types.PhoneNumber phoneNumber in lstPhones) { Console.WriteLine(phoneNumber.Number + " : " + phoneNumber.Type); } } catch (InvalidProtocolBufferException e) { // TODO Auto-generated catch block Console.WriteLine(e.Message); } Console.WriteLine("Finish!!!"); Console.ReadLine(); }
public static void Run() { PersonInformation.Builder personInformationBuilder = new PersonInformation.Builder(); Person.Builder personBuilder = new Person.Builder(); Person person = personBuilder.SetAge(28).SetName("Name").Build(); Address.Builder address = new Address.Builder(); address.SetFlatNo("2").SetLane("Lane").SetLandmark("Landmark"); personInformationBuilder .SetPerson(personBuilder) .SetAddress(address) .Build(); personInformationBuilder.GetPerson().GetAge(); }
static void Main(string[] args) { //new Person.Builder().SetId(1).SetName("王尼玛").SetEmail("*****@*****.**").Build().ToByteArray(); byte[] bytes; Person.Builder newContact = Person.CreateBuilder(); newContact.SetId(1).SetName("Foo").SetEmail("foo@bar"); newContact.AddPhone(Person.Types.PhoneNumber.CreateBuilder().SetNumber("555-1212").BuildPartial()); Person person = newContact.BuildPartial(); newContact = null; using (MemoryStream ms = new MemoryStream()) { person.WriteTo(new CodedOutputStream(ms)); bytes = ms.ToArray(); } Console.WriteLine("Hello World!"); }
static void Main(string[] args) { Console.WriteLine("==== Builder Validation ===="); try { var a = new Person.Builder { FirstName = "Alex", LastName = "Bloggs" }.Build(); var b = new Person.Builder(a).Build(); Console.WriteLine($"a = {a}"); Console.WriteLine($"b = {b}"); Console.WriteLine($"ReferenceEquals: {ReferenceEquals(a, b)}"); Console.WriteLine($"Equals: {Equals(a, b)}"); var c = new Person.Builder(b) { LastName = "Blobbs" }.Build(); Console.WriteLine($"c = {c}"); Console.WriteLine($"ReferenceEquals: {ReferenceEquals(b, c)}"); Console.WriteLine($"Equals: {Equals(b, c)}"); } catch (Person.Builder.ValidationException ex) { Console.WriteLine(ex); } }
public Builder SetPerson(Person.Builder p) { personBuilder = p; return(this); }
public void CreateProductIfcTest() { // === create request string projectName = "test project"; string projectDescription = "project for test purposes"; Project project = new Project.Builder().withName(projectName) .withDescription(projectDescription) .build(); string personGivenName = "Cedric"; string personFamilyName = "Mélange"; string personIdentifier = "cmela"; Person person = new Person.Builder().withGivenName(personGivenName) .withFamilyName(personFamilyName) .withIdentifier(personIdentifier) .build(); string organizationName = "EC Life"; string organizationDescription = "EC Life - for an easy, economical and ecological life"; string organizationIdentifier = "ECL"; Organization organization = new Organization.Builder().withName(organizationName) .withDescription(organizationDescription) .withIdentifier(organizationIdentifier) .build(); string applicationName = "ECL IfcCreator"; string applicationVersion = "1.0"; string applicationIdentifier = "IfcCreator"; Application application = new Application.Builder().withName(applicationName) .withVersion(applicationVersion) .withIdentifier(applicationIdentifier) .withOrganization(new Organization.Builder().build()) .build(); OwnerHistory owner = new OwnerHistory.Builder().withPerson(person) .withOrganization(organization) .withApllication(application) .build(); string productName = "test product"; string productDescription = "product for test purposes"; string constructionString = "SHAPE({POLYLINE2D([[0,0],[0,1],[1,1],[1,0]])}).EXTRUDE(1)"; var material0 = new Material.Builder().withName("material0") .withColor(new ColorRGBa(1, 0, 0, 1)) .withRoughness(0) .isMetal() .build(); var material1 = new Material.Builder().withName("material1") .withColor(new ColorRGBa(0, 0, 1, 1)) .withRoughness(1) .isDielectric() .build(); RepresentationItem representationItem0 = new RepresentationItem.Builder() .withConstructionString(constructionString) .withMaterial(material0.id) .build(); var rotationQ = new Quaternion(); rotationQ.SetFromEuler(new double[] { 90, 90, 90 }); RepresentationItem representationItem1 = new RepresentationItem.Builder() .withConstructionString(constructionString) .withTransformation(new Transformation.Builder() .withTranslation(new double[] { 2, 0, 0 }) .withRotation(rotationQ.ToArray()) .build()) .withMaterial(material1.id) .build(); Representation representation = new Representation.Builder().AddRepresentationItem(representationItem0) .AddRepresentationItem(representationItem1) .addMaterial(material0) .addMaterial(material1) .build(); Product product = new Product.Builder().withName(productName) .withDescription(productDescription) .withType(ProductType.PROXY) .addRepresenation(representation) .build(); IfcSchema schema = IfcSchema.IFC2X3; ProductIfcRequest request = new ProductIfcRequest.Builder().withProject(project) .withOwner(owner) .withProduct(product) .withSchema(schema) .build(); // === convert to IFC stream MemoryStream memStream = new MemoryStream(); IProductIfcCreator productIfcCreator = new ProductIfcCreator(); productIfcCreator.CreateProductIfc(request, memStream); // === write to IFC file using (FileStream fileStream = File.Create("./product_ifc_creator_test.ifc")) { memStream.WriteTo(fileStream); } // === parse IFC stream Serializer serializer = new StepSerializer(typeof(IfcProject), null, schema.ToString(), null, "ECL IfcCreator"); IfcProject parsedProject = (IfcProject)serializer.ReadObject(memStream); // === test values Assert.Equal(projectName, parsedProject.Name); Assert.Equal(projectDescription, parsedProject.Description); IfcOwnerHistory parsedowner = parsedProject.OwnerHistory; Assert.Equal(personGivenName, parsedowner.OwningUser.ThePerson.GivenName); Assert.Equal(personFamilyName, parsedowner.OwningUser.ThePerson.FamilyName); Assert.Equal(personIdentifier, parsedowner.OwningUser.ThePerson.Identification.Value.Value); Assert.Equal(organizationName, parsedowner.OwningUser.TheOrganization.Name); Assert.Equal(organizationDescription, parsedowner.OwningUser.TheOrganization.Description); Assert.Equal(applicationName, parsedowner.OwningApplication.ApplicationFullName); Assert.Equal(applicationVersion, parsedowner.OwningApplication.Version); Assert.Equal(applicationIdentifier, parsedowner.OwningApplication.ApplicationIdentifier.Value); IfcSite parsedSite = (IfcSite)GetItem(GetItem(parsedProject.IsDecomposedBy, 0).RelatedObjects, 0); Assert.Equal(personGivenName, parsedSite.OwnerHistory.OwningUser.ThePerson.GivenName); IfcBuilding parsedBuilding = (IfcBuilding)GetItem(GetItem(parsedSite.IsDecomposedBy, 0).RelatedObjects, 0); Assert.Equal(personGivenName, parsedBuilding.OwnerHistory.OwningUser.ThePerson.GivenName); IfcBuildingStorey parsedStorey = (IfcBuildingStorey)GetItem(GetItem(parsedBuilding.IsDecomposedBy, 0).RelatedObjects, 0); Assert.Equal(personGivenName, parsedStorey.OwnerHistory.OwningUser.ThePerson.GivenName); IfcProduct parsedProduct = (IfcProduct)GetItem(GetItem(parsedStorey.ContainsElements, 0).RelatedElements, 0); Assert.Equal(personGivenName, parsedProduct.OwnerHistory.OwningUser.ThePerson.GivenName); Assert.Equal(productName, parsedProduct.Name); Assert.Equal(productDescription, parsedProduct.Description); Assert.Equal(1, parsedProduct.Representation.Representations.Count); IfcRepresentation parsedShapeRepresentation = GetItem(parsedProduct.Representation.Representations, 0); Assert.Equal("Body", parsedShapeRepresentation.RepresentationIdentifier); Assert.Equal("SolidModel", parsedShapeRepresentation.RepresentationType); Assert.Equal(2, parsedShapeRepresentation.Items.Count); Assert.IsType <IfcExtrudedAreaSolid>(GetItem(parsedShapeRepresentation.Items, 0)); Assert.IsType <IfcExtrudedAreaSolid>(GetItem(parsedShapeRepresentation.Items, 1)); var parsedItem0 = (IfcExtrudedAreaSolid)GetItem(parsedShapeRepresentation.Items, 0); Assert.Equal(1, parsedItem0.StyledByItem.Count); var StyledItem0 = GetItem(parsedItem0.StyledByItem, 0); Assert.Equal("material0", ((IfcSurfaceStyle)GetItem(StyledItem0.Styles, 0)).Name); var parsedItem1 = (IfcExtrudedAreaSolid)GetItem(parsedShapeRepresentation.Items, 1); Assert.Equal(2, parsedItem1.Position.Location.Coordinates[0].Value); Assert.Equal(0, parsedItem1.Position.Location.Coordinates[1].Value); Assert.Equal(0, parsedItem1.Position.Location.Coordinates[2].Value); Assert.Equal(1, parsedItem1.Position.Axis.DirectionRatios[0].Value, 5); Assert.Equal(0, parsedItem1.Position.Axis.DirectionRatios[1].Value, 5); Assert.Equal(0, parsedItem1.Position.Axis.DirectionRatios[2].Value, 5); Assert.Equal(0, parsedItem1.Position.RefDirection.DirectionRatios[0].Value, 5); Assert.Equal(0, parsedItem1.Position.RefDirection.DirectionRatios[1].Value, 5); Assert.Equal(1, parsedItem1.Position.RefDirection.DirectionRatios[2].Value, 5); Assert.Equal(1, parsedItem0.StyledByItem.Count); var StyledItem1 = GetItem(parsedItem1.StyledByItem, 0); Assert.Equal("material1", ((IfcSurfaceStyle)GetItem(StyledItem1.Styles, 0)).Name); }
public static IEnumerable <object[]> GetAddressBookCases() { Person.Builder personBuilder = Person.CreateBuilder(); personBuilder.SetId(1); personBuilder.SetName("Foo"); personBuilder.SetEmail("foo@bar"); Person.Types.PhoneNumber.Builder phoneBuilder = Person.Types.PhoneNumber.CreateBuilder(); phoneBuilder.SetType(Person.Types.PhoneType.HOME); phoneBuilder.SetNumber("555-1212"); Person.Types.PhoneNumber phone1 = phoneBuilder.Build(); personBuilder.AddPhone(phone1); Person person1 = personBuilder.Build(); AddressBook.Builder addressBuilder = AddressBook.CreateBuilder(); addressBuilder.AddPerson(person1); yield return(new object[] { addressBuilder.Build(), false }); yield return(new object[] { addressBuilder.Build(), true }); phoneBuilder = Person.Types.PhoneNumber.CreateBuilder(); phoneBuilder.SetType(Person.Types.PhoneType.MOBILE); phoneBuilder.SetNumber("+61 123456789"); Person.Types.PhoneNumber phone2 = phoneBuilder.Build(); personBuilder.AddPhone(phone1); personBuilder.AddPhone(phone2); addressBuilder = AddressBook.CreateBuilder(); addressBuilder.AddPerson(person1); yield return(new object[] { addressBuilder.Build(), false }); yield return(new object[] { addressBuilder.Build(), true }); personBuilder = Person.CreateBuilder(); personBuilder.SetId(2); personBuilder.SetName("姓名"); personBuilder.SetEmail("*****@*****.**"); personBuilder.AddPhone(phone2); personBuilder.AddPhone(phone1); Person person2 = personBuilder.Build(); addressBuilder = AddressBook.CreateBuilder(); addressBuilder.AddPerson(person1); addressBuilder.AddPerson(person2); yield return(new object[] { addressBuilder.Build(), false }); yield return(new object[] { addressBuilder.Build(), true }); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_main); //------------------------------------------------------------------ // Display Cutout Mode demo Button shortEdgesBtn = FindViewById <Button>(Resource.Id.short_btn); Button neverBtn = FindViewById <Button>(Resource.Id.never_btn); Button resetBtn = FindViewById <Button>(Resource.Id.reset_btn); shortEdgesBtn.Click += (sender, e) => { Window.Attributes.LayoutInDisplayCutoutMode = Android.Views.LayoutInDisplayCutoutMode.ShortEdges; Window.AddFlags(WindowManagerFlags.Fullscreen); Toast.MakeText(this, "Cutout Short Edges", ToastLength.Short).Show(); }; neverBtn.Click += (sender, e) => { Window.Attributes.LayoutInDisplayCutoutMode = Android.Views.LayoutInDisplayCutoutMode.Never; Window.AddFlags(WindowManagerFlags.Fullscreen); Toast.MakeText(this, "Cutout Never", ToastLength.Short).Show(); }; resetBtn.Click += (sender, e) => { Window.Attributes.LayoutInDisplayCutoutMode = Android.Views.LayoutInDisplayCutoutMode.Never; Window.ClearFlags(WindowManagerFlags.Fullscreen); Toast.MakeText(this, "Reset to non Full-screen", ToastLength.Short).Show(); }; //------------------------------------------------------------------ // Image Notification demo: Button notifBtn = FindViewById <Button>(Resource.Id.notification_btn); notifBtn.Click += (sender, e) => { // Create a demo notification channel for notifications in this app: string chanName = GetString(Resource.String.noti_chan_demo); var importance = NotificationImportance.High; NotificationChannel chan = new NotificationChannel(DEMO_CHANNEL, chanName, importance); chan.EnableVibration(true); chan.LockscreenVisibility = NotificationVisibility.Public; NotificationManager notificationManager = (NotificationManager)GetSystemService(NotificationService); notificationManager.CreateNotificationChannel(chan); // Create a Person object that represents the sender: Icon senderIcon = Icon.CreateWithResource(this, Resource.Drawable.sender_icon); Person fromPerson = new Person.Builder() .SetIcon(senderIcon) .SetName("Mark Sender") .Build(); // Create a text notification to send before the image notification: Notification.BigTextStyle textStyle = new Notification.BigTextStyle(); string longTextMessage = "We've just arrived at the Colosseum, let me send"; longTextMessage += " you a pic before we go inside."; textStyle.BigText(longTextMessage); // Notification builder using this style: Notification.Builder builder = new Notification.Builder(this, DEMO_CHANNEL) .SetContentTitle("At the Colosseum") .SetSmallIcon(Resource.Mipmap.ic_notification) .SetStyle(textStyle) .SetChannelId(DEMO_CHANNEL); // Publish the text notification: const int notificationId = 1000; notificationManager.Notify(notificationId, builder.Build()); Thread.Sleep(5000); // Send Image notification ........................................... // Create a message from the sender with the image to send: Uri imageUri = Uri.Parse("android.resource://com.xamarin.pminidemo/drawable/example_image"); Notification.MessagingStyle.Message message = new Notification.MessagingStyle .Message("Here's a picture of where I'm currently standing", 0, fromPerson) .SetData("image/", imageUri); // Add the message to a notification style: Notification.MessagingStyle style = new Notification.MessagingStyle(fromPerson) .AddMessage(message); // Notification builder using this style: builder = new Notification.Builder(this, DEMO_CHANNEL) .SetContentTitle("Tour of the Colosseum") .SetContentText("We're standing in front of the Colosseum and I just took this shot!") .SetSmallIcon(Resource.Mipmap.ic_notification) .SetStyle(style) .SetChannelId(DEMO_CHANNEL); // Publish the notification: const int notificationId2 = 1001; notificationManager.Notify(notificationId2, builder.Build()); }; }