コード例 #1
0
        public bool SaveCustomer(PersonEditViewModel personEdit)
        {
            if (personEdit != null)
            {
                using (var context = new AppDbContext())
                {
                    var person = new PersonPoco()
                    {
                        Id         = personEdit.Id,
                        Name       = personEdit.Name,
                        ProvinceId = personEdit.SelectedProvinceId,
                        Telephone  = personEdit.Telephone,
                        PostalCode = personEdit.PostalCode,
                        Salary     = personEdit.Salary
                    };
                    person.ProvincePoco = context.ProvincePocos.Find(personEdit.SelectedProvinceId);

                    context.PersonPocos.Add(person);
                    context.SaveChanges();
                    return(true);
                }
            }
            // Return false if customeredit == null or CustomerID is not a guid
            return(false);
        }
コード例 #2
0
ファイル: PersonProxy.cs プロジェクト: koder05/fogel-ba
        public PersonProxy(PersonPoco poco)
            : base()
        {
            if (poco == null)
                throw new InvalidOperationException("poco");

            if (poco.Id == Guid.Empty) poco.Id = this.Id; else this.Id = poco.Id;

            this._poco = poco;
        }
コード例 #3
0
        public IActionResult ProtoDetail(int id)
        {
            var person = new PersonPoco
            {
                Id    = id,
                Name  = "Susen",
                Email = "*****@*****.**"
            };

            return(Ok(person));
        }
コード例 #4
0
        public void TestDeepCloneWithComplexObjectGraph()
        {
            // arrange test objects
            var personAddress = new AddressPoco {
                City = "Copenhagen", ZipCode = "2300"
            };
            var libraryAddress = new AddressPoco {
                City = "London"
            };
            var otherAddress = new AddressPoco {
                City = "Berlin"
            };
            var arthur = new PersonPoco {
                Name = "Arthur Dent", Address = personAddress, Employer = "British Tea Company", Ssn = 123
            };
            var trish = new PersonPoco {
                Name = "Trish", Address = personAddress, Employer = "", Ssn = 456
            };
            var ford = new PersonPoco {
                Name = "Ford Prefect", Address = otherAddress, Employer = "Ursa Minor Publishing", Ssn = 789
            };
            var library = new LibraryPoco
            {
                Address     = libraryAddress,
                Name        = "The Library",
                WaitingList = new List <PersonPoco> {
                    arthur, trish, ford
                },
            };

            library["foo"]  = "bar";
            library["h2g2"] = "dont panic";

            library.Values.Contains("foo");
            // deep clone
            var clone = library.DeepClone();

            // verify clone
            Assert.Equal(2, clone.Keys.Count);
            Assert.Equal(3, clone.WaitingList.Count);
            Assert.Same(clone.WaitingList[0].Address, clone.WaitingList[1].Address);
            Assert.NotSame(library.Values, clone.Values);
            Assert.Equal(library.Values.Count, clone.Values.Count);
        }
コード例 #5
0
        public IActionResult ProtoForm([FromForm] PersonPoco person)
        {
            var test = person;

            return(Ok(test));
        }
コード例 #6
0
 public IActionResult PostProto([FromBody] PersonPoco person)
 {
     return(Ok(person));
 }
コード例 #7
0
        public static void ProduceConsumeMixedJson(string bootstrapServers, string schemaRegistryServers)
        {
            var producerConfig = new ProducerConfig {
                BootstrapServers = bootstrapServers
            };
            var schemaRegistryConfig = new SchemaRegistryConfig {
                Url = schemaRegistryServers
            };

            using (var topic = new TemporaryTopic(bootstrapServers, 1))
                using (var schemaRegistry = new CachedSchemaRegistryClient(schemaRegistryConfig))
                    using (var producer =
                               new ProducerBuilder <string, PersonPoco>(producerConfig)
                               .SetValueSerializer(new JsonSerializer <PersonPoco>(schemaRegistry))
                               .Build())
                    {
                        // test that a System.ComponentModel.DataAnnotations constraint is effective.
                        {
                            var p = new PersonPoco
                            {
                                FirstName       = "Test",
                                LastName        = "User",
                                NumberWithRange = 7 // range should be between 2 and 5.
                            };
                            Assert.Throws <ProduceException <string, PersonPoco> >(() => {
                                try
                                {
                                    producer.ProduceAsync(topic.Name, new Message <string, PersonPoco> {
                                        Key = "test1", Value = p
                                    }).Wait();
                                }
                                catch (AggregateException ax)
                                {
                                    // what would be thrown if the call was awaited.
                                    throw ax.InnerException;
                                }
                            });
                        }

                        // test that a Newtonsoft.Json constraint is effective.
                        {
                            var p = new PersonPoco
                            {
                                FirstName = "Test",
                                // Omit LastName
                                NumberWithRange = 3
                            };
                            Assert.Throws <AggregateException>(() => {
                                producer.ProduceAsync(topic.Name, new Message <string, PersonPoco> {
                                    Key = "test1", Value = p
                                }).Wait();
                            });
                        }

                        // test all fields valid.
                        {
                            var p = new PersonPoco
                            {
                                FirstName       = "A",
                                MiddleName      = "Test",
                                LastName        = "User",
                                Gender          = GenderEnum.Male,
                                NumberWithRange = 3,
                                Birthday        = new DateTime(2010, 11, 1),
                                Company         = new CompanyPoco
                                {
                                    Name = "Confluent"
                                },
                                Cars = new List <CarPoco>
                                {
                                    new CarPoco
                                    {
                                        Name         = "Volvo",
                                        Manufacturer = new CompanyPoco
                                        {
                                            Name = "Confluent"
                                        }
                                    }
                                }
                            };
                            producer.ProduceAsync(topic.Name, new Message <string, PersonPoco> {
                                Key = "test1", Value = p
                            }).Wait();

                            var schema = schemaRegistry.GetLatestSchemaAsync(SubjectNameStrategy.Topic.ConstructValueSubjectName(topic.Name, null)).Result.SchemaString;

                            var consumerConfig = new ConsumerConfig
                            {
                                BootstrapServers = bootstrapServers,
                                GroupId          = Guid.NewGuid().ToString(),
                                AutoOffsetReset  = AutoOffsetReset.Earliest
                            };

                            using (var consumer =
                                       new ConsumerBuilder <string, PersonPoco>(consumerConfig)
                                       .SetValueDeserializer(new JsonDeserializer <PersonPoco>().AsSyncOverAsync())
                                       .Build())
                            {
                                consumer.Subscribe(topic.Name);
                                var cr = consumer.Consume();
                                Assert.Equal(p.FirstName, cr.Message.Value.FirstName);
                                Assert.Equal(p.MiddleName, cr.Message.Value.MiddleName);
                                Assert.Equal(p.LastName, cr.Message.Value.LastName);
                                Assert.Equal(p.Gender, cr.Message.Value.Gender);
                                Assert.Equal(p.NumberWithRange, cr.Message.Value.NumberWithRange);
                                Assert.Equal(p.Birthday, cr.Message.Value.Birthday);
                                Assert.Equal(p.Company.Name, cr.Message.Value.Company.Name);
                                Assert.Single(cr.Message.Value.Cars);
                                Assert.Equal(cr.Message.Value.Cars[0].Manufacturer.Name, p.Cars[0].Manufacturer.Name);
                                Assert.Equal(cr.Message.Value.Cars[0].Name, p.Cars[0].Name);
                            }
                        }
                    }
        }