示例#1
0
        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);
        }
示例#2
0
        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();
                }
            }
        }