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... } }