2013-12-19 23:51:20 +08:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
2014-01-29 18:33:24 +08:00
|
|
|
|
namespace Wox.Plugin
|
2013-12-19 23:51:20 +08:00
|
|
|
|
{
|
|
|
|
|
public class Query
|
|
|
|
|
{
|
|
|
|
|
public string RawQuery { get; set; }
|
|
|
|
|
public string ActionName { get; private set; }
|
|
|
|
|
public List<string> ActionParameters { get; private set; }
|
|
|
|
|
|
|
|
|
|
public Query(string rawQuery)
|
|
|
|
|
{
|
|
|
|
|
RawQuery = rawQuery;
|
2013-12-20 19:38:10 +08:00
|
|
|
|
ActionParameters = new List<string>();
|
2013-12-19 23:51:20 +08:00
|
|
|
|
ParseQuery();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ParseQuery()
|
|
|
|
|
{
|
2013-12-20 19:38:10 +08:00
|
|
|
|
if (string.IsNullOrEmpty(RawQuery)) return;
|
|
|
|
|
|
|
|
|
|
string[] strings = RawQuery.Split(' ');
|
2014-02-28 23:21:01 +08:00
|
|
|
|
//todo:not exactly correct. query that didn't containing a space should be a valid query
|
2013-12-22 00:44:56 +08:00
|
|
|
|
if (strings.Length == 1) return; //we consider a valid query must contain a space
|
|
|
|
|
|
2013-12-20 19:38:10 +08:00
|
|
|
|
ActionName = strings[0];
|
2013-12-22 00:44:56 +08:00
|
|
|
|
for (int i = 1; i < strings.Length; i++)
|
2013-12-20 19:38:10 +08:00
|
|
|
|
{
|
2013-12-22 00:44:56 +08:00
|
|
|
|
if (!string.IsNullOrEmpty(strings[i]))
|
2013-12-20 19:38:10 +08:00
|
|
|
|
{
|
|
|
|
|
ActionParameters.Add(strings[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-12-19 23:51:20 +08:00
|
|
|
|
}
|
2014-02-28 23:21:01 +08:00
|
|
|
|
|
|
|
|
|
public string GetAllRemainingParameter()
|
|
|
|
|
{
|
2014-03-17 01:53:51 +08:00
|
|
|
|
|
|
|
|
|
string[] strings = RawQuery.Split(new char[]{ ' ' }, 2, System.StringSplitOptions.None);
|
2014-02-28 23:21:01 +08:00
|
|
|
|
if (strings.Length > 1)
|
|
|
|
|
{
|
2014-03-17 01:53:51 +08:00
|
|
|
|
return strings[1];
|
2014-02-28 23:21:01 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return string.Empty;
|
|
|
|
|
}
|
2013-12-19 23:51:20 +08:00
|
|
|
|
}
|
|
|
|
|
}
|