protected void btnCloneBase_Click(object sender, EventArgs e) { pnlCloneError.Style["display"] = "none"; lblCloneError.Text = ""; string message = ""; Project_Organisms project_Organism; if (!Project_OrganismsBLL.TryParse_ByNumber(txtCloneBase.Text, out project_Organism)) { message = " • Número del Árbol a ser Copiado Inválido<br />"; } else { var treeInfo = project_Organism.TreeDetails.First(); lblNumber.Text = treeInfo.Number.Value.ToString(); lblNombreComun.Text = project_Organism.Organism.CommonName.CommonNameDesc; lblVaras.Text = treeInfo.Varas.Value.ToString(); pnlCloneVarasChk.Visible = treeInfo.Varas.Value != 0; pnlCloneVaras.Visible = treeInfo.Varas.Value != 0; lblDap.Text = String.Format("{0:0.####################################}", treeInfo.Dap) + "' "; pnlCloneDapChk.Visible = treeInfo.Dap != 0; pnlCloneDap.Visible = treeInfo.Dap != 0; lblAltura.Text = String.Format("{0:0.####################################}", treeInfo.Height.Value) + "'' "; lblAcciónPropuesta.Text = treeInfo.ActionProposed.ActionProposedDesc; lblCondicion.Text = treeInfo.Condition.ConditionDesc; lblLitoral.Text = treeInfo.Littoral ? "Si" : "No"; lblMaritimoTerrestre.Text = treeInfo.MaritimeZone ? "Si" : "No"; txtCloneBase.Style["background-color"] = "#E3E9EF"; txtCloneBase.Enabled = false; } if (!string.IsNullOrEmpty(message)) { pnlCloneError.Style["display"] = "block"; pnlLoading.Style["display"] = "block"; pnlClone.Style["display"] = "block"; lblCloneError.Text = "<strong>Favor validar los siguientes detalles:</strong><br />" + message; return; } btnCloneBase.Visible = false; btnCloneBaseClear.Visible = true; pnlCloneRange.Style["display"] = (rbtCloneRange.Checked) ? "block" : "none"; }
protected void btnCloneSelected_Click(object sender, EventArgs e) { pnlCloneError.Style["display"] = "none"; lblCloneError.Text = ""; string invalidMessage = ""; string successMessage = ""; bool dapOrVaras = false; if (pnlCloneDap.Visible) { dapOrVaras = chkCloneDap.Checked; } else { dapOrVaras = chkCloneVaras.Checked; } #region Validate Characteristics if ( !chkCloneNombre.Checked && !dapOrVaras && !chkAltura.Checked && !chkAcciónPropuesta.Checked && !chkCondicion.Checked && !chkLitoral.Checked && !chkMaritimoTerrestre.Checked && !chkComentarios.Checked ) { invalidMessage += " • Seleccione al menos una característica <br />"; } #endregion #region Validate Árbol a ser Clonado Project_Organisms project_OrganismBase; if (!Project_OrganismsBLL.TryParse_ByNumber(txtCloneBase.Text, out project_OrganismBase)) { invalidMessage = " • Número del Árbol a ser Copiado Inválido<br />"; } #endregion List <Project_Organisms> ProjectOrganismsIDsToClone = new List <Project_Organisms>(); Project_Organisms project_OrganismFROM = null; Project_Organisms project_OrganismTO = null; if (!rbtCloneRange.Checked && rbtCloneSelect.Checked) {// Selected #region validate selected // Iterate through the Projects.Rows property foreach (GridViewRow row in gridViewTreeDetails.Rows) { // Access the CheckBox CheckBox cb = (CheckBox)(row.FindControl("chkTreeDetailsSelector")); if (cb != null && cb.Checked) { // Save the ProjectID value for deletion // First, get the ProjectID for the selected row Int32 treeDetailsID = (Int32)gridViewTreeDetails.DataKeys[row.RowIndex].Value; Eisk.BusinessEntities.TreeDetail treeDetail = new TreeDetailBLL().GetTreeDetailByTreeDetailsID(treeDetailsID); ProjectOrganismsIDsToClone.Add(treeDetail.Project_Organisms); } } if (ProjectOrganismsIDsToClone.Count == 0) { invalidMessage += " • Para copiar las características a los árboles previamente seleccionados debe seleccionar al menos uno <br />"; } #endregion } else {// Range #region validate range if (!Project_OrganismsBLL.TryParse_ByNumber(txtCloneFrom.Text, out project_OrganismFROM)) { invalidMessage += " • Número del Árbol " + '"' + "Desde" + '"' + " Inválido <br />"; } if (!Project_OrganismsBLL.TryParse_ByNumber(txtCloneTo.Text, out project_OrganismTO)) { invalidMessage += " • Número del Árbol " + '"' + "Hasta" + '"' + " Inválido <br />"; } if (project_OrganismFROM != null && project_OrganismTO != null) { if (project_OrganismFROM.TreeDetails.First().Number > project_OrganismTO.TreeDetails.First().Number) { invalidMessage += " • Número del Árbol " + '"' + "Desde" + '"' + " menor que " + '"' + "Hasta" + '"' + " <br />"; } } #endregion } if (!string.IsNullOrEmpty(invalidMessage)) { pnlCloneError.Style["display"] = "block"; pnlLoading.Style["display"] = "block"; pnlClone.Style["display"] = "block"; pnlCloneRange.Style["display"] = (rbtCloneRange.Checked) ? "block" : "none"; lblCloneError.Text = "<strong>Favor validar los siguientes detalles:</strong><br />" + invalidMessage; return; } else { using (DatabaseContext _DatabaseContext = new DatabaseContext()) { var treeDetailBASE = project_OrganismBase.TreeDetails.First(); if (!rbtCloneRange.Checked && rbtCloneSelect.Checked) {// Selected foreach (var projectOrganism in ProjectOrganismsIDsToClone) { var projectOrganismTHIS = _DatabaseContext.Project_Organisms.Where(i => i.ProjectOrganismID == projectOrganism.ProjectOrganismID).First(); var treeDetailTHIS = _DatabaseContext.TreeDetails.First(i => i.ProjectOrganismID == projectOrganismTHIS.ProjectOrganismID); if (chkCloneNombre.Checked) { Organism organism = new OrganismBLL().GetOrganismByOrganismID(project_OrganismBase.OrganismID); projectOrganismTHIS.OrganismID = organism.OrganismID; projectOrganismTHIS.OrganismReference.EntityKey = organism.EntityKey; } foreach (var item in _DatabaseContext.Daps.Where(instance => instance.TreeDetailsID == treeDetailTHIS.TreeDetailsID).ToList()) { _DatabaseContext.Daps.DeleteObject(item); } if (chkCloneVaras.Checked) { treeDetailTHIS.Varas = treeDetailBASE.Varas; } if (chkCloneDap.Checked) { treeDetailTHIS.Dap = treeDetailBASE.Dap; treeDetailTHIS.Dap_Counter = treeDetailBASE.Dap_Counter; foreach (var dap in treeDetailBASE.Daps) { Dap dapTHIS = new Dap(); dapTHIS.DapValue = dap.DapValue; dapTHIS.TreeDetailsID = treeDetailTHIS.TreeDetailsID; dapTHIS.TreeDetailReference.EntityKey = treeDetailTHIS.EntityKey; _DatabaseContext.Daps.AddObject(dapTHIS); } } if (chkAltura.Checked) { treeDetailTHIS.Height = treeDetailBASE.Height; } if (chkAcciónPropuesta.Checked) { ActionProposed actionProposed = new ActionProposedBLL().GetActionProposedByActionProposedID(Convert.ToInt32(treeDetailBASE.ActionProposedID)); treeDetailTHIS.ActionProposedID = actionProposed.ActionProposedID; treeDetailTHIS.ActionProposedReference.EntityKey = actionProposed.EntityKey; } if (chkCondicion.Checked) { Condition condition = new ConditionBLL().GetConditionByConditionID(Convert.ToInt32(treeDetailBASE.ConditionID)); treeDetailTHIS.ConditionID = condition.ConditionID; treeDetailTHIS.ConditionReference.EntityKey = condition.EntityKey; } if (chkLitoral.Checked) { treeDetailTHIS.Littoral = treeDetailBASE.Littoral; } if (chkMaritimoTerrestre.Checked) { treeDetailTHIS.MaritimeZone = treeDetailBASE.MaritimeZone; } if (chkComentarios.Checked) { treeDetailTHIS.Commentary = treeDetailBASE.Commentary; } } successMessage = "Las siguientes cararcterísticas del árbol #" + txtCloneBase.Text + " han sido copiadas satisfactóriamente a los " + ProjectOrganismsIDsToClone.Count + " árboles seleccionados: "; } else {// Range int from = project_OrganismFROM.TreeDetails.FirstOrDefault().Number.Value; int to = project_OrganismTO.TreeDetails.FirstOrDefault().Number.Value; for (int i = from; i <= to; i++) { var projectOrganismTHIS = _DatabaseContext.Project_Organisms.Where(instance => instance.TreeDetails.FirstOrDefault().Number == i).First(); var treeDetailTHIS = _DatabaseContext.TreeDetails.First(instance => instance.ProjectOrganismID == projectOrganismTHIS.ProjectOrganismID); if (chkCloneNombre.Checked) { Organism organism = new OrganismBLL().GetOrganismByOrganismID(project_OrganismBase.OrganismID); projectOrganismTHIS.OrganismID = organism.OrganismID; projectOrganismTHIS.OrganismReference.EntityKey = organism.EntityKey; } foreach (var item in _DatabaseContext.Daps.Where(instance => instance.TreeDetailsID == treeDetailTHIS.TreeDetailsID).ToList()) { _DatabaseContext.Daps.DeleteObject(item); } if (chkCloneVaras.Checked) { treeDetailTHIS.Varas = treeDetailBASE.Varas; } if (chkCloneDap.Checked) { treeDetailTHIS.Dap = treeDetailBASE.Dap; treeDetailTHIS.Dap_Counter = treeDetailBASE.Dap_Counter; foreach (var dap in treeDetailBASE.Daps) { Dap dapTHIS = new Dap(); dapTHIS.DapValue = dap.DapValue; dapTHIS.TreeDetailsID = treeDetailTHIS.TreeDetailsID; dapTHIS.TreeDetailReference.EntityKey = treeDetailTHIS.EntityKey; _DatabaseContext.Daps.AddObject(dapTHIS); } } if (chkAltura.Checked) { treeDetailTHIS.Height = treeDetailBASE.Height; } if (chkAcciónPropuesta.Checked) { ActionProposed actionProposed = new ActionProposedBLL().GetActionProposedByActionProposedID(Convert.ToInt32(treeDetailBASE.ActionProposedID)); treeDetailTHIS.ActionProposedID = actionProposed.ActionProposedID; treeDetailTHIS.ActionProposedReference.EntityKey = actionProposed.EntityKey; } if (chkCondicion.Checked) { Condition condition = new ConditionBLL().GetConditionByConditionID(Convert.ToInt32(treeDetailBASE.ConditionID)); treeDetailTHIS.ConditionID = condition.ConditionID; treeDetailTHIS.ConditionReference.EntityKey = condition.EntityKey; } if (chkLitoral.Checked) { treeDetailTHIS.Littoral = treeDetailBASE.Littoral; } if (chkMaritimoTerrestre.Checked) { treeDetailTHIS.MaritimeZone = treeDetailBASE.MaritimeZone; } if (chkComentarios.Checked) { treeDetailTHIS.Commentary = treeDetailBASE.Commentary; } } successMessage = "Las siguientes cararcterísticas del árbol <b>#" + txtCloneBase.Text + "</b> han sido copiadas satisfactóriamente a los árboles desde el árbol <b>#" + from + "</b> al árbol <b>#" + to + "</b>: <br />"; } if (chkCloneNombre.Checked) { successMessage += "<b> • Nombre Común - Nombre Científico</b><br />"; } if (chkCloneVaras.Checked) { successMessage += "<b> • Varas</b><br />"; } if (chkCloneDap.Checked) { successMessage += "<b> • D.A.P</b><br />"; } if (chkAltura.Checked) { successMessage += "<b> • Altura (pies)</b><br />"; } if (chkAcciónPropuesta.Checked) { successMessage += "<b> • Acción Propuesta</b><br />"; } if (chkCondicion.Checked) { successMessage += "<b> • Condición</b><br />"; } if (chkLitoral.Checked) { successMessage += "<b> • Árbol en la Servidumbre de Vigilancia de Litoral</b><br />"; } if (chkMaritimoTerrestre.Checked) { successMessage += "<b> • Árbol en la Zona Marítimo Terrestre</b><br />"; } if (chkComentarios.Checked) { successMessage += "<b> • Comentarios</b>"; } _DatabaseContext.SaveChanges(); pnlCloneRange.Style["display"] = (rbtCloneRange.Checked) ? "block" : "none"; gridViewTreeDetails.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); gridViewTreeDetails.DataBind(); ltlMessage.Text += MessageFormatter.GetFormattedSuccessMessage(successMessage); btnClear_Click(null, null); pnlClone.Style["display"] = "none"; pnlLoading.Style["display"] = "none"; } } }