zxing/csharp/client/result/SMSParsedResult.cs
2013-01-18 20:14:03 +00:00

142 lines
2.8 KiB
C#
Executable file

using System.Text;
/*
* Copyright 2008 ZXing authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace com.google.zxing.client.result
{
/// <summary>
/// @author Sean Owen
/// </summary>
public sealed class SMSParsedResult : ParsedResult
{
private readonly string[] numbers;
private readonly string[] vias;
private readonly string subject;
private readonly string body;
public SMSParsedResult(string number, string via, string subject, string body) : base(ParsedResultType.SMS)
{
this.numbers = new string[] {number};
this.vias = new string[] {via};
this.subject = subject;
this.body = body;
}
public SMSParsedResult(string[] numbers, string[] vias, string subject, string body) : base(ParsedResultType.SMS)
{
this.numbers = numbers;
this.vias = vias;
this.subject = subject;
this.body = body;
}
public string SMSURI
{
get
{
StringBuilder result = new StringBuilder();
result.Append("sms:");
bool first = true;
for (int i = 0; i < numbers.Length; i++)
{
if (first)
{
first = false;
}
else
{
result.Append(',');
}
result.Append(numbers[i]);
if (vias != null && vias[i] != null)
{
result.Append(";via=");
result.Append(vias[i]);
}
}
bool hasBody = body != null;
bool hasSubject = subject != null;
if (hasBody || hasSubject)
{
result.Append('?');
if (hasBody)
{
result.Append("body=");
result.Append(body);
}
if (hasSubject)
{
if (hasBody)
{
result.Append('&');
}
result.Append("subject=");
result.Append(subject);
}
}
return result.ToString();
}
}
public string[] Numbers
{
get
{
return numbers;
}
}
public string[] Vias
{
get
{
return vias;
}
}
public string Subject
{
get
{
return subject;
}
}
public string Body
{
get
{
return body;
}
}
public override string DisplayResult
{
get
{
StringBuilder result = new StringBuilder(100);
maybeAppend(numbers, result);
maybeAppend(subject, result);
maybeAppend(body, result);
return result.ToString();
}
}
}
}