


using System.Runtime.Serialization;
namespace PostCardSender.Web
{
/// <summary>
///
/// </summary>
[DataContract]
public class PostCard
{
/// <summary>
///
/// </summary>
[DataMember]
public string Name { get ; set ; }
/// <summary>
/// Email
/// </summary>
[DataMember]
public string Email { get ; set ; }
/// <summary>
///
/// </summary>
[DataMember]
public CardStroke[] Strokes { get ; set ; }
}
/// <summary>
/// ()
/// </summary>
[DataContract]
public class CardStroke
{
/// <summary>
///
/// </summary>
[DataMember]
public double Width { get ; set ; }
/// <summary>
///
/// </summary>
[DataMember]
public double Height { get ; set ; }
/// <summary>
///
/// </summary>
[DataMember]
public StrokePoint[] Points { get ; set ; }
}
/// <summary>
///
/// </summary>
[DataContract]
public class StrokePoint
{
/// <summary>
/// X
/// </summary>
[DataMember]
public double X { get ; set ; }
/// <summary>
/// Y
/// </summary>
[DataMember]
public double Y { get ; set ; }
}
}
* This source code was highlighted with Source Code Highlighter .
using System.ServiceModel;
namespace PostCardSender.Web
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IPostCardService" in both code and config file together.
[ServiceContract]
public interface IPostCardService
{
/// <summary>
///
/// </summary>
[OperationContract]
void SendPostCard(PostCard card);
}
}
* This source code was highlighted with Source Code Highlighter .using System.Xml;
namespace PostCardSender.Web
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "PostCardService" in code, svc and config file together.
public class PostCardService : IPostCardService
{
#region IPostCardService Members
public void SendPostCard(PostCard card)
{
if (card == null )
return ;
/// , xml .
string fileName = @"D:\Projects\PostCardSender\PostCardSender.Web\App_Data\{0}.xml" ;
XmlWriter writer = XmlWriter.Create( string .Format(fileName, card.Name));
writer.WriteStartDocument();
writer.WriteStartElement( "user" );
writer.WriteAttributeString( "name" , card.Name);
writer.WriteAttributeString( "email" , card.Email);
writer.WriteStartElement( "strokes" );
if (card.Strokes != null && card.Strokes.Length > 0)
{
foreach (CardStroke stroke in card.Strokes)
{
writer.WriteStartElement( "stroke" );
writer.WriteAttributeString( "width" , stroke.Width.ToString());
writer.WriteAttributeString( "height" , stroke.Height.ToString());
if (stroke.Points != null && stroke.Points.Length > 0)
{
writer.WriteStartElement( "points" );
foreach (StrokePoint point in stroke.Points)
{
writer.WriteStartElement( "point" );
writer.WriteAttributeString( "x" , point.X.ToString());
writer.WriteAttributeString( "y" , point.Y.ToString());
writer.WriteEndElement();
}
writer.WriteEndElement();
}
//stroke
writer.WriteEndElement();
}
}
//end strokes
writer.WriteEndElement();
//end user
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
}
#endregion
}
}
* This source code was highlighted with Source Code Highlighter .

< UserControl x:Class ="PostCardSender.MainPage" xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d ="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc ="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable ="d" d:DesignHeight ="300" d:DesignWidth ="400" Width ="600" Height ="400" BorderBrush ="#FF700404" BorderThickness ="1" >
< Grid x:Name ="LayoutRoot" Background ="White" >
< Grid.ColumnDefinitions >
< ColumnDefinition />
< ColumnDefinition Width ="Auto" />
</ Grid.ColumnDefinitions >
< StackPanel VerticalAlignment ="Top" Grid . Column ="1" >
< TextBlock Text ="" Margin ="12,7,7,2" FontSize ="16" />
< TextBox x:Name ="textBoxName" TextWrapping ="Wrap" Width ="180" Margin ="7,0,7,7" FontSize ="16" Foreground ="#FF700404" FontWeight ="Bold" />
< TextBlock TextWrapping ="Wrap" Text ="Email" d:LayoutOverrides ="Width" Margin ="12,7,7,2" FontSize ="16" />
< TextBox x:Name ="textBoxEmail" TextWrapping ="Wrap" Width ="180" Margin ="7,0,7,7" FontSize ="16" Foreground ="#FF700404" FontWeight ="Bold" />
< Button x:Name ="buttonSend" Content ="!" Margin ="5,15,5,0" FontSize ="26.667" Click ="ButtonSendClick" />
</ StackPanel >
< Border BorderBrush ="#FF0010FF" BorderThickness ="1" Margin ="5" >
< InkPresenter x:Name ="inkPostCard" MouseLeftButtonDown ="InkPostCardMouseLeftButtonDown" MouseLeftButtonUp ="InkPostCardMouseLeftButtonUp" MouseMove ="InkPostCardMouseMove" Background ="#FFCEF9FF" />
</ Border >
</ Grid >
</ UserControl >
* This source code was highlighted with Source Code Highlighter .


Source: https://habr.com/ru/post/99464/
All Articles