protected void btnClearSelection_Click(Object Sender, EventArgs e) { if (hdnOrderId.Value != "") { oAssetOrder.DeleteAssetOrderAssetSelection(Int32.Parse(hdnOrderId.Value)); } rblOrderType.Enabled = true; ddlModel.Enabled = true; btnViewSelection.Enabled = true; SetControls(false, true); }
protected void btnSubmit_Click(Object Sender, EventArgs e) { int intUser = 0; string strAssets = ""; if (Int32.TryParse(Request.Form["hdnAJAXValue"], out intUser) == true && intUser > 0) { foreach (RepeaterItem ri in rptDevices.Items) { CheckBox chkDevice = (CheckBox)ri.FindControl("chkDevice"); Label lblName = (Label)ri.FindControl("lblName"); Label lblSerial = (Label)ri.FindControl("lblSerial"); Label lblStatus = (Label)ri.FindControl("lblStatus"); bool boolComplete = lblStatus.Text.ToUpper().Contains("COMPLETED"); oLog.AddEvent(lblName.Text, lblSerial.Text, "RECOMMISSION: Started by " + oUser.GetFullNameWithLanID(intProfile), LoggingType.Information); if (chkDevice.Checked == true) { if (chkDevice.ToolTip[0].ToString() == "S") { int intServer = Int32.Parse(chkDevice.ToolTip.Substring(1)); DataSet dsServers = oServer.GetAssetsServer(intServer); foreach (DataRow drServer in dsServers.Tables[0].Rows) { int intAsset = Int32.Parse(drServer["assetid"].ToString()); string strName = lblName.Text; if (drServer["dr"].ToString() == "1") { strName += "-DR"; } // Update Recommission Reason oAsset.UpdateDecommissionRecommission(intAsset, intUser, txtReason.Text); // Set status to InUse oAsset.AddStatus(intAsset, strName, (int)AssetStatus.InUse, intUser, DateTime.Now); // Clear cv_servers_assets DECOM field oServer.UpdateAssetDecom(intServer, intAsset, ""); if (boolComplete == true) { DataSet dsOrders = oAssetOrder.GetByAsset(intAsset, false); foreach (DataRow drOrders in dsOrders.Tables[0].Rows) { int intOrder = Int32.Parse(drOrders["orderid"].ToString()); // Cancel Resource Requests int intResource = 0; if (Int32.TryParse(drOrders["resourceid"].ToString(), out intResource) == true) { oResourceRequest.UpdateStatusOverallWorkflow(intResource, (int)ResourceRequestStatus.Cancelled); } // Delete Order oAssetOrder.DeleteOrder(intOrder); // Delete Asset Order Asset Selection oAssetOrder.DeleteAssetOrderAssetSelection(intOrder, intAsset); } // Set NewOrderID = 0 oAsset.updateNewOrderId(0, intAsset); } // Set strAssets to assets recommissioned (for status message on postback) if (strAssets != "") { strAssets += strSplit[0].ToString(); } strAssets += intAsset.ToString(); } // Remove previous decom records if (boolComplete == true) { bool boolPNC = (oServer.Get(intServer, "pnc") == "1"); // Update Server Name Record int intName = Int32.Parse(oServer.Get(intServer, "nameid")); if (boolPNC) { oServerName.UpdateFactory(intName, 0); } else { oServerName.Update(intName, 0); } } // Clear cv_servers DECOM field oServer.UpdateDecommissioned(intServer, ""); // Update IP Address(es) availability DataSet dsIP = oServer.GetIP(intServer, 0, 0, 0, 0); foreach (DataRow drIP in dsIP.Tables[0].Rows) { int intIP = Int32.Parse(drIP["ipaddressid"].ToString()); oIPAddresses.UpdateAvailable(intIP, 0); } // Restore Avamar Group(s) if (chkAvamar.Checked) { Avamar oAvamar = new Avamar(0, dsn); AvamarRegistration oAvamarRegistration = new AvamarRegistration(0, dsn); ClearViewWebServices oWebService = new ClearViewWebServices(); System.Net.NetworkCredential oCredentialsDNS = new System.Net.NetworkCredential(oVariable.ADUser(), oVariable.ADPassword(), oVariable.Domain()); oWebService.Credentials = oCredentialsDNS; oWebService.Url = oVariable.WebServiceURL(); string strError = ""; // First, query for groups. DataSet dsGroups = oAvamar.GetDecoms(lblName.Text); if (dsGroups.Tables[0].Rows.Count > 0) { string client = dsGroups.Tables[0].Rows[0]["client"].ToString(); string grid = dsGroups.Tables[0].Rows[0]["grid"].ToString(); string domain = dsGroups.Tables[0].Rows[0]["domain"].ToString(); // Second, add the groups. foreach (DataRow drGroup in dsGroups.Tables[0].Rows) { if (String.IsNullOrEmpty(strError) == false) { break; } AvamarReturnType restore = oAvamarRegistration.API(oWebService.AddAvamarGroup(grid, domain, client, drGroup["group"].ToString())); if (restore.Error == true) { strError = restore.Message; } } // Third, remove the /Decom group AvamarReturnType decom = oAvamarRegistration.API(oWebService.DeleteAvamarGroup(grid, domain, client, oAvamar.DecomGroup)); if (decom.Error == false) { // Fourth, recommission the saved decom groups. oAvamar.UpdateDecom(client); } else { strError = decom.Message; } } if (String.IsNullOrEmpty(strError)) { oLog.AddEvent(lblName.Text, lblSerial.Text, "RECOMMISSION: Avamar completed.", LoggingType.Information); } else { oLog.AddEvent(lblName.Text, lblSerial.Text, "RECOMMISSION: Avamar encountered an error = " + strError, LoggingType.Error); } } // Add log entry oLog.AddEvent(lblName.Text, lblSerial.Text, "Asset Recommissioned (Client = " + oUser.GetFullName(intUser) + ")", LoggingType.Information); } else { // Manual recommission - just delete the resource request to get out of the person's queue int intResource = Int32.Parse(chkDevice.ToolTip.Substring(1)); oResourceRequest.UpdateStatusOverall(intResource, -2); } } } } Response.Redirect(Request.Path + "?assets=" + strAssets); }
protected void SaveRequest(int intStatus) { intOrderType = Int32.Parse(rblASEOrderType.SelectedValue); int intClusterType = 0; if (hdnRequestId.Value == "") { hdnRequestId.Value = "0"; } if (hdnItemId.Value == "") { hdnItemId.Value = "0"; } if (hdnNumber.Value == "") { hdnNumber.Value = "0"; } if (rblClusterTypes.SelectedValue == "1") { intClusterType = Int32.Parse(rblClusterTypes.SelectedValue); } if (txtStorageAmt.Text == "") { txtStorageAmt.Text = "0.00"; } intModel = Int32.Parse(ddlModel.SelectedValue); foreach (TreeNode oNode in tvParent.Nodes) { if (oNode.ChildNodes.Count > 0) { resursiveChildNode(oNode); } else { if (oNode.Checked == true) { hdnParentId.Value = oNode.Value; } } } intParent = Int32.Parse(hdnParentId.Value); if (intStatus == (int)AssestOrderReqStatus.Active) { int intNewRequest = oRequest.AddTask(0, intProfile, txtDescription.Text, DateTime.Now, DateTime.Now); hdnRequestId.Value = intNewRequest.ToString(); int intServiceId = 0; int intItemID = 0; if (intOrderType == (int)AssetSharedEnvOrderType.AddCluster) { intServiceId = Int32.Parse(ConfigurationManager.AppSettings["SERVICEID_ASSET_SHARED_ENV_ADD_CLUSTER"]); } else if (intOrderType == (int)AssetSharedEnvOrderType.AddHost) { intServiceId = Int32.Parse(ConfigurationManager.AppSettings["SERVICEID_ASSET_SHARED_ENV_ADD_HOST"]); } else if (intOrderType == (int)AssetSharedEnvOrderType.AddStorage) { intServiceId = Int32.Parse(ConfigurationManager.AppSettings["SERVICEID_ASSET_SHARED_ENV_ADD_STORAGE"]); } intItemID = oService.GetItemId(intServiceId); hdnItemId.Value = intItemID.ToString(); hdnNumber.Value = "1"; } if (hdnOrderId.Value == "" || hdnOrderId.Value == "0") //New Order { int intOrderId = intOrderId = oAssetOrder.AddOrderId(intProfile); hdnOrderId.Value = intOrderId.ToString(); oAssetSharedEnvOrder.AddOrder(Int32.Parse(hdnOrderId.Value), Int32.Parse(hdnRequestId.Value), Int32.Parse(hdnItemId.Value), Int32.Parse(hdnNumber.Value), intOrderType, txtDescription.Text.Trim(), Int32.Parse(ddlModel.SelectedValue), Int32.Parse(hdnLocation.Value), Int32.Parse(ddlClass.SelectedValue), Int32.Parse((hdnEnvironment.Value != "" ? hdnEnvironment.Value : "0")), intParent, DateTime.Parse(txtRequestedByDate.Text.Trim()), intClusterType, 0, 0, 0, 0, //(chkFunctionWorkstation.Checked == true ? 1 : 0), //(chkFunctionServer.Checked == true ? 1 : 0), //(chkFunctionWindows.Checked == true ? 1 : 0), //(chkFunctionLinux.Checked == true ? 1 : 0), (chkFunctionContainer.Checked == true ? 1 : 0), (chkFunctionLDOM.Checked == true ? 1 : 0), float.Parse(txtStorageAmt.Text), intStatus, intProfile); } else //In Process Order { oAssetSharedEnvOrder.UpdateOrder(Int32.Parse(hdnOrderId.Value), Int32.Parse(hdnRequestId.Value), Int32.Parse(hdnItemId.Value), Int32.Parse(hdnNumber.Value), intOrderType, txtDescription.Text.Trim(), Int32.Parse(ddlModel.SelectedValue), Int32.Parse(hdnLocation.Value), Int32.Parse(ddlClass.SelectedValue), Int32.Parse((hdnEnvironment.Value != "" ? hdnEnvironment.Value : "0")), intParent, DateTime.Parse(txtRequestedByDate.Text.Trim()), intClusterType, 0, 0, 0, 0, //(chkFunctionWorkstation.Checked == true ? 1 : 0), //(chkFunctionServer.Checked == true ? 1 : 0), //(chkFunctionWindows.Checked == true ? 1 : 0), //(chkFunctionLinux.Checked == true ? 1 : 0), (chkFunctionContainer.Checked == true ? 1 : 0), (chkFunctionLDOM.Checked == true ? 1 : 0), float.Parse(txtStorageAmt.Text), intStatus, intProfile); } //1. Remove Previous Host Asset selection - In case of selection changes oAssetOrder.DeleteAssetOrderAssetSelection(Int32.Parse(hdnOrderId.Value)); //2. Add Host Asset Selection for Cluster Or Host if (intOrderType == (int)AssetSharedEnvOrderType.AddCluster || intOrderType == (int)AssetSharedEnvOrderType.AddHost) { foreach (DataListItem dlItem in dlAssetsSelection.Items) { HiddenField hdnAssetId = (HiddenField)dlItem.FindControl("hdnAssetId"); CheckBox chkSelectAsset = (CheckBox)dlItem.FindControl("chkSelectAsset"); if (chkSelectAsset.Checked == true) { oAssetOrder.AddRemoveAssetOrderAssetSelection( Int32.Parse(hdnOrderId.Value), Int32.Parse(hdnAssetId.Value), intProfile, 1); } } } if (intStatus == (int)AssestOrderReqStatus.Active) { //1. For selected assets set NewOrderId=RequestID if (intOrderType == (int)AssetSharedEnvOrderType.AddCluster || intOrderType == (int)AssetSharedEnvOrderType.AddHost) { DataSet dsAssetSelected = oAssetOrder.GetAssetOrderAssetSelection(Int32.Parse(hdnOrderId.Value)); foreach (DataRow dr in dsAssetSelected.Tables[0].Rows) { oAsset.updateNewOrderId(Int32.Parse(hdnOrderId.Value), Int32.Parse(dr["AssetId"].ToString())); } } //2. for Cluster -Add record in Cluster /Server Table if (intOrderType == (int)AssetSharedEnvOrderType.AddCluster || intOrderType == (int)AssetSharedEnvOrderType.AddHost) { CreateClusterAndAddHostsToServer(); } //For Storage Create the Service Requests if (intOrderType == (int)AssetSharedEnvOrderType.AddStorage) { InitiateAddStorageWorkOrder(); } } }