using Cdy.Tag;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Net;
using System.Text;
namespace DBDevelopClientWebApi
{
///
///
///
public class DevelopServiceHelper
{
#region ... Variables ...
WebClient mClient;
private string mLoginId;
public const int PageCount = 500;
#endregion ...Variables...
#region ... Events ...
#endregion ...Events...
#region ... Constructor...
#endregion ...Constructor...
#region ... Properties ...
///
///
///
public string Server { get; set; }
///
///
///
public string LastErroMessage { get; set; }
#endregion ...Properties...
#region ... Methods ...
#region database
///
///
///
///
///
private string Post(string fun, string sval)
{
if (mClient == null)
mClient = new WebClient();
mClient.Headers[HttpRequestHeader.ContentType] = "application/json";
mClient.Encoding = Encoding.UTF8;
return mClient.UploadString(Server + "/DevelopServer/" + fun, sval);
}
///
///
///
///
///
///
public bool Login(string username, string password)
{
LoginMessage login = new LoginMessage() { UserName = username, Password = password };
string sval = Post("Login", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
mLoginId = result.Result.ToString();
return true;
}
}
///
///
///
///
public bool Logout()
{
RequestBase request = new RequestBase() { Id = mLoginId };
Post("Logout", JsonConvert.SerializeObject(request));
return true;
}
///
///
///
///
///
///
public bool NewDatabase(string database, string desc)
{
WebApiNewDatabaseRequest nd = new WebApiNewDatabaseRequest() { Database = database, Desc = desc, Id = mLoginId };
string sval = Post("NewDatabase", JsonConvert.SerializeObject(nd));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return (bool)result.Result;
}
}
///
///
///
///
public List QueryDatabase()
{
RequestBase nd = new RequestBase() { Id = mLoginId };
var sval = Post("QueryDatabase", JsonConvert.SerializeObject(nd));
var result = JsonConvert.DeserializeObject>>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return null;
}
else
{
return result.Result;
}
}
///
///
///
///
public bool Start(string database)
{
WebApiDatabaseRequest wr = new WebApiDatabaseRequest() { Database = database, Id = mLoginId };
var sval = Post("Start", JsonConvert.SerializeObject(wr));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return (bool)result.Result;
}
}
///
///
///
///
///
public bool Stop(string database)
{
WebApiDatabaseRequest wr = new WebApiDatabaseRequest() { Database = database, Id = mLoginId };
var sval = Post("Stop", JsonConvert.SerializeObject(wr));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return (bool)result.Result;
}
}
///
///
///
///
///
public bool ReRun(string database)
{
WebApiDatabaseRequest wr = new WebApiDatabaseRequest() { Database = database, Id = mLoginId };
var sval = Post("ReRun", JsonConvert.SerializeObject(wr));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return (bool)result.Result;
}
}
///
///
///
///
///
public bool IsDatabaseRunning(string database)
{
WebApiDatabaseRequest wr = new WebApiDatabaseRequest() { Database = database, Id = mLoginId };
var sval = Post("IsDatabaseRunning", JsonConvert.SerializeObject(wr));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return (bool)result.Result;
}
}
///
///
///
///
///
public bool IsDatabaseDirty(string database)
{
WebApiDatabaseRequest wr = new WebApiDatabaseRequest() { Database = database, Id = mLoginId };
var sval = Post("IsDatabaseDirty", JsonConvert.SerializeObject(wr));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return (bool)result.Result;
}
}
///
///
///
///
///
public List GetTagGroup(string database)
{
WebApiDatabaseRequest wr = new WebApiDatabaseRequest() { Database = database, Id = mLoginId };
var sval = Post("GetTagGroup", JsonConvert.SerializeObject(wr));
var result = JsonConvert.DeserializeObject>>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return null;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
///
public List> GetTagByGroup(string database, string group, int pageIndex, Dictionary mFilter = null)
{
WebApiGetTagByGroupRequest wr = new WebApiGetTagByGroupRequest() { Database = database, Id = mLoginId, GroupName = group, Index = pageIndex, Filters = mFilter };
var sval = Post("GetTagByGroup", JsonConvert.SerializeObject(wr));
var result = JsonConvert.DeserializeObject>>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return null;
}
else
{
List> re = new List>();
foreach (var vv in result.Result)
{
re.Add(new Tuple(vv.RealTag.ConvertToTagbase(), vv.HisTag));
}
return re;
}
}
///
///
///
///
///
public bool AddTagGroup(string name, string parentName, string database)
{
WebApiAddGroupRequest request = new WebApiAddGroupRequest() { Database = database, Id = mLoginId, Name = name, ParentName = parentName };
var sval = Post("AddTagGroup", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public bool RemoveTagGroup(string fullName, string database)
{
WebApiRemoveGroupRequest request = new WebApiRemoveGroupRequest() { Database = database, Id = mLoginId, FullName = fullName };
var sval = Post("RemoveTagGroup", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
public bool RenameTagGroup(string oldFullName, string newName, string database)
{
WebApiRenameGroupRequest request = new WebApiRenameGroupRequest() { Database = database, Id = mLoginId, Name = newName, OldFullName = oldFullName };
var sval = Post("RenameTagGroup", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
///
public bool MoveTagGroup(string name, string oldParentName, string newParentName, string database)
{
WebApiMoveTagGroupRequest request = new WebApiMoveTagGroupRequest() { Database = database, Id = mLoginId, Name = name, OldParentName = oldParentName, NewParentName = newParentName };
var sval = Post("MoveTagGroup", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public bool RemoveTags(List tagIds, string database)
{
WebApiRemoveTagRequest request = new WebApiRemoveTagRequest() { Database = database, Id = mLoginId, TagIds = tagIds };
var sval = Post("RemoveTag", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public bool RemoveTag(int tagId, string database)
{
return RemoveTags(new List() { tagId }, database);
}
///
///
///
///
///
///
///
public int? AddTag(Tagbase realTag, HisTag histag, string database)
{
WebApiAddTagRequest request = new WebApiAddTagRequest() { Database = database, Id = mLoginId, Tags = new List() { new WebApiTag() { RealTag = WebApiRealTag.CreatFromTagbase(realTag), HisTag = histag } } };
var sval = Post("AddTag", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return null;
}
else
{
return result.Result[0];
}
}
///
///
///
///
///
///
public List AddTags(List> mtags, string database)
{
List ltmp = new List();
foreach (var vv in mtags)
{
ltmp.Add(new WebApiTag() { RealTag = WebApiRealTag.CreatFromTagbase(vv.Item1), HisTag = vv.Item2 });
}
WebApiAddTagRequest request = new WebApiAddTagRequest() { Database = database, Id = mLoginId, Tags = ltmp };
var sval = Post("AddTag", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return null;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public bool UpdateHisTag(HisTag histag, string database)
{
WebApiTagRequest request = new WebApiTagRequest() { Id = mLoginId, Database = database, Tag = new WebApiTag() { HisTag = histag } };
var sval = Post("UpdateHisTag", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public bool UpdateRealTag(Tagbase realtag, string database)
{
WebApiTagRequest request = new WebApiTagRequest() { Id = mLoginId, Database = database, Tag = new WebApiTag() { RealTag = WebApiRealTag.CreatFromTagbase(realtag) } };
var sval = Post("UpdateRealTag", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
///
public int? Import(Tagbase realTag, HisTag histag, int mode, string database)
{
WebApiImportTagRequest request = new WebApiImportTagRequest() { Database = database, Id = mLoginId, Mode = mode, Tag = new WebApiTag() { RealTag = WebApiRealTag.CreatFromTagbase(realTag), HisTag = histag } };
var sval = Post("Import", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return null;
}
else
{
return result.Result;
}
}
///
///
///
///
///
public bool Save(string database)
{
WebApiDatabaseRequest request = new WebApiDatabaseRequest() { Database = database, Id = mLoginId };
var sval = Post("Save", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
public bool Cancel(string database)
{
WebApiDatabaseRequest request = new WebApiDatabaseRequest() { Database = database, Id = mLoginId };
var sval = Post("Cancel", JsonConvert.SerializeObject(request));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
#endregion
#region Database User
///
///
///
///
///
///
public bool AddDatabaseUserGroup(string Name,string Parent,string database)
{
WebApiUserGroupRequest login = new WebApiUserGroupRequest() { Name = Name, Parent = Parent,Database=database,Id=mLoginId };
string sval = Post("AddDatabaseUserGroup", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
public List GetDatabaseUserGroup(string database)
{
WebApiDatabaseRequest login = new WebApiDatabaseRequest() { Database=database,Id=mLoginId };
string sval = Post("GetDatabaseUserGroup", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return null;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
///
public bool MoveDatabaseUserGroup(string name, string oldParentName, string newParentName, string database)
{
WebApiMoveUserGroupRequest login = new WebApiMoveUserGroupRequest() { Name = name, NewParentName = newParentName, OldParentName = oldParentName, Database = database, Id = mLoginId };
string sval = Post("MoveDatabaseUserGroup", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public bool RemoveDatabaseUserGroup(string group,string database)
{
WebApiRequestByUserGroup login = new WebApiRequestByUserGroup() { GroupFullName=group, Database = database, Id = mLoginId };
string sval = Post("RemoveDatabaseUserGroup", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
public bool RenameDatabaseUserGroup(string newName,string oldFullName,string database)
{
WebApiRenameUserGroupRequest login = new WebApiRenameUserGroupRequest() { NewName = newName,OldFullName= oldFullName, Database = database, Id = mLoginId };
string sval = Post("RenameDatabaseUserGroup", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public List GetDatabaseUserByGroup(string groupFullName,string database)
{
WebApiRequestByUserGroup login = new WebApiRequestByUserGroup() { GroupFullName = groupFullName, Database = database, Id = mLoginId };
string sval = Post("GetDatabaseUserByGroup", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return null;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
///
///
public bool NewDatabaseUser(string userName,string password,string group,List permissions,string database)
{
WebApiUserInfo login = new WebApiUserInfo() { UserName = userName, Password = password,Group=group,Permissions=permissions, Database = database, Id = mLoginId };
string sval = Post("NewDatabaseUser", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
///
///
public bool UpdateDatabaseUser(string userName, string password, string group, List permissions, string database)
{
WebApiUserInfo login = new WebApiUserInfo() { UserName = userName, Password = password, Group = group, Permissions = permissions, Database = database, Id = mLoginId };
string sval = Post("UpdateDatabaseUser", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
public bool ModifyDatabaseUserPassword(string userName,string password,string database)
{
WebApiUserAndPassword login = new WebApiUserAndPassword() { UserName = userName, Password = password, Database = database, Id = mLoginId };
string sval = Post("ModifyDatabaseUserPassword", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public bool RemoveDatabaseUser(string userName,string database)
{
WebApiUserRequest login = new WebApiUserRequest() { UserName = userName, Database = database, Id = mLoginId };
string sval = Post("RemoveDatabaseUser", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
///
///
///
public bool NewDatabasePermission(string name, string desc, bool enableWriter, bool superPermission, List group, string database)
{
WebApiNewDatabasePermissionRequest login = new WebApiNewDatabasePermissionRequest() { Name = name, Desc = desc, EnableWrite = enableWriter, SuperPermission = superPermission, Group = group, Database = database, Id = mLoginId };
string sval = Post("NewDatabasePermission", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public bool RemoveDatabasePermission(string permission,string database)
{
WebApiRemoveDatabasePermissionRequest login = new WebApiRemoveDatabasePermissionRequest() { Permission=permission, Database = database, Id = mLoginId };
string sval = Post("RemoveDatabasePermission", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
///
///
///
public bool UpdateDatabasePermission(string name, string desc, bool enableWriter, bool superPermission, List group, string database)
{
WebApiNewDatabasePermissionRequest login = new WebApiNewDatabasePermissionRequest() { Name = name, Desc = desc, EnableWrite = enableWriter, SuperPermission = superPermission, Group = group, Database = database, Id = mLoginId };
string sval = Post("UpdateDatabasePermission", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
#endregion
#region System User
///
///
///
///
///
///
public bool NewUser(string username,string password)
{
WebApiNewSystemUserRequest login = new WebApiNewSystemUserRequest() { UserName = username,Password=password, Id = mLoginId };
string sval = Post("NewUser", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public bool ReNameUser(string oldName,string newName)
{
WebApiReNameSystemUserRequest login = new WebApiReNameSystemUserRequest() { OldName = oldName, NewName = newName, Id = mLoginId };
string sval = Post("ReNameUser", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
public bool ModifyPassword(string userName,string password,string newpassword)
{
WebApiModifySystemUserPasswordRequest login = new WebApiModifySystemUserPasswordRequest() { UserName = userName, Password = password,NewPassword=newpassword, Id = mLoginId };
string sval = Post("ModifyPassword", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
///
///
public bool UpdateUser(string userName,bool isAdmin,bool newDatabasePerssion,List database)
{
WebApiUpdateSystemUserRequest login = new WebApiUpdateSystemUserRequest() { UserName = userName, IsAdmin = isAdmin, NewDatabasePermission = newDatabasePerssion,Databases=database, Id = mLoginId };
string sval = Post("ModifyPassword", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
///
///
public bool UpdateUserPassword(string username,string password)
{
WebApiNewSystemUserRequest login = new WebApiNewSystemUserRequest() { UserName = username, Password=password, Id = mLoginId };
string sval = Post("UpdateUserPassword", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
///
///
///
///
public List GetUsers()
{
RequestBase login = new RequestBase() { Id = mLoginId };
string sval = Post("GetUsers", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return null;
}
else
{
return result.Result;
}
}
///
///
///
///
///
public bool RemoveUser(string userName)
{
WebApiRemoveSystemUserRequest login = new WebApiRemoveSystemUserRequest() { UserName = userName,Id = mLoginId };
string sval = Post("RemoveUser", JsonConvert.SerializeObject(login));
var result = JsonConvert.DeserializeObject>(sval);
if (result.HasErro)
{
LastErroMessage = result.ErroMsg;
return false;
}
else
{
return result.Result;
}
}
#endregion
#endregion ...Methods...
#region ... Interfaces ...
#endregion ...Interfaces...
}
}