public async Task <string> RequestAdminAction(string admin, string address, AdminActionTypes actionType) { try { var msg = string.Empty; if (VEDLDataContext.Accounts.TryGetValue(admin, out var acc)) { var areq = AdminActionFactory.GetAdminAction(admin, actionType, address); if (areq == null) { throw new HttpResponseException((HttpStatusCode)501, $"Cannot create this type of action."); } msg = areq.CreateNewMessage(); VEDLDataContext.AdminActionsRequests.TryAdd(areq.Message, areq); } else { throw new HttpResponseException((HttpStatusCode)501, $"Cannot find admin account."); } if (!string.IsNullOrEmpty(msg)) { return(msg); } else { return(string.Empty); } } catch (Exception ex) { throw new HttpResponseException((HttpStatusCode)501, $"Cannot Create Admin Action Request!" + ex.Message); } }
/// <summary> /// Get Admin action for access to the Accounts list in the VEDLDataContext.Accounts /// </summary> /// <param name="admin"></param> /// <param name="type"></param> /// <param name="address"></param> /// <returns></returns> /// <exception cref="Exception"></exception> public static IAdminAction GetAdminAction(string admin, AdminActionTypes type, string address) { if (string.IsNullOrEmpty(admin)) { throw new Exception("You must fill the admin."); } switch (type) { case AdminActionTypes.ImportVENFTBackup: return(new ImportVENFTBackupRequestDto(admin, address)); } return(null); }