Exemplo n.º 1
0
        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";
        }
Exemplo n.º 2
0
        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";
                }
            }
        }