休息时的关系?

时间:2012-04-06 16:20:02

标签: c# wcf web-services rest

我想在社区中添加一个人,我不确定它是如何完成的?

我的datacontract看起来像这样:

[DataContract(Name = "Community")]
public class Community
{

    public Group() 
    {
        People = new List<Person>();
    }
    [DataMember(Name = "CommunityName")]
    public string CommunityName { get; set; }
    public List<Person> People { get; set; }

}
[DataContract(Name = "Person")]
public class Person
{
    [DataMember(Name = "PersonName")]
    public string PersonName { get; set; }
}

在我的服务中,我可以像这样添加一个人或社区:

List<Community> Communitys = new List<Community>();
List<Person> people = new List<Person>();
public void AddCommunity(Community community)
{
     Communitys.Add(community);
}
public void AddPerson(Person person)
{
     people.Add(person); 
}

public void AddPersonToCommunity(Person person, Community community)
{
    //not sure what to do here
} 

但我不确定如何将一个人加入社区

public void AddPersonToCommunity(Person person, Community community)
{
    //community.CommunityName(Person.Add);?
} 

我有一个Windows窗体,当我发布一个人或一个社区时,就像这样:

{
    StringBuilder Community = new StringBuilder();
    Community.AppendLine("<Community>");
    Community.AppendLine("<CommunityName>" + this.textBox4.Text + "</CommunityName>");
    Community.AppendLine("</Community>");

但是,您(如果已完成)将如何使用AddPersonToCommunity并创建字符串构建器以将人员添加到社区?

    {
        StringBuilder CommunityAddPerson = new StringBuilder();
        CommunityAddPerson.AppendLine("<Community&{1}>");
        CommunityAddPerson.AppendLine ......
        CommunityAddPerson.AppendLine("<CommunityName>" + this.textBox4.Text + "</CommunityName>");
        CommunityAddPerson.AppendLine("</Community>");

希望这更清楚它的两个问题我猜。

2 个答案:

答案 0 :(得分:1)

我认为你的方法,基于你所说的,可能看起来像这样:

public void AddPersonToCommunity(string person, string communityName)
{
    var result = communities.Where(n => String.Equals(n.CommunityName, communityName)).FirstOrDefault();
    if (result != null)
    {
        result.Add(new Person() { Name = person });
    }
} 

您的POST数据可能如下所示:

<Community>
  <CommunityName>CrazyTown</CommunityName>
  <People>
     <Person>Moe Howard</Person>
  </People>
</Community>

答案 1 :(得分:0)

您始终可以添加一种方法来向社区添加人员:

public void AddPersonToCommunity(Person person, Community community)...

public void AddPersonToCommunity(string personName, string communityName)...