public virtual int CreateNewProject_Organisms(Project_Organisms newProject_Organisms) { // Validate Parameters if (newProject_Organisms == null) { throw (new ArgumentNullException("newProject_Organisms")); } // Apply business rules OnProject_OrganismsSaving(newProject_Organisms); OnProject_OrganismsCreating(newProject_Organisms); _DatabaseContext.Project_Organisms.AddObject(newProject_Organisms); int numberOfAffectedRows = _DatabaseContext.SaveChanges(); if (numberOfAffectedRows == 0) { throw new DataNotUpdatedException("No project_Organisms created!"); } // Apply business workflow OnProject_OrganismsCreated(newProject_Organisms); OnProject_OrganismsSaved(newProject_Organisms); return(newProject_Organisms.ProjectOrganismID); }
public static bool IsNull(Project_Organisms requestedProjectOrganism, out Project_Organisms organism) { bool isNull = (requestedProjectOrganism == null || requestedProjectOrganism == new Project_Organisms()); organism = isNull ? null : requestedProjectOrganism; return(isNull); }
public void UpdateProject_Organisms(Project_Organisms updatedProject_Organisms) { // Validate Parameters if (updatedProject_Organisms == null) { throw (new ArgumentNullException("updatedProject_Organisms")); } // Validate Primary key value if (updatedProject_Organisms.ProjectOrganismID.IsInvalidKey()) { BusinessLayerHelper.ThrowErrorForInvalidDataKey("ProjectOrganismID"); } // Apply business rules OnProject_OrganismsSaving(updatedProject_Organisms); OnProject_OrganismsUpdating(updatedProject_Organisms); //attaching and making ready for parsistance if (updatedProject_Organisms.EntityState == EntityState.Detached) { _DatabaseContext.Project_Organisms.Attach(updatedProject_Organisms); } _DatabaseContext.ObjectStateManager.ChangeObjectState(updatedProject_Organisms, System.Data.EntityState.Modified); //this line makes the code un-testable! int numberOfAffectedRows = _DatabaseContext.SaveChanges(); if (numberOfAffectedRows == 0) { throw new DataNotUpdatedException("No project_Organisms updated!"); } //Apply business workflow OnProject_OrganismsUpdated(updatedProject_Organisms); OnProject_OrganismsSaved(updatedProject_Organisms); }
public void DeleteProject_Organisms(Project_Organisms project_OrganismsToBeDeleted) { //Validate Input if (project_OrganismsToBeDeleted == null) { throw (new ArgumentNullException("project_OrganismsToBeDeleted")); } // Validate Primary key value if (project_OrganismsToBeDeleted.ProjectOrganismID.IsInvalidKey()) { BusinessLayerHelper.ThrowErrorForInvalidDataKey("ProjectOrganismID"); } OnProject_OrganismsSaving(project_OrganismsToBeDeleted); OnProject_OrganismsDeleting(project_OrganismsToBeDeleted); if (project_OrganismsToBeDeleted.EntityState == EntityState.Detached) { _DatabaseContext.Project_Organisms.Attach(project_OrganismsToBeDeleted); } _DatabaseContext.Project_Organisms.DeleteObject(project_OrganismsToBeDeleted); int numberOfAffectedRows = _DatabaseContext.SaveChanges(); if (numberOfAffectedRows == 0) { throw new DataNotUpdatedException("No Project_Organisms deleted!"); } OnProject_OrganismsDeleted(project_OrganismsToBeDeleted); OnProject_OrganismsSaved(project_OrganismsToBeDeleted); }
public static void AddTreeToAutoCADImportFile(Project_Organisms project_Organism, string path) { try { TreeDetail treeDetail = project_Organism.TreeDetails.First(); string toWrite = treeDetail.Number + "," + String.Format("{0:0.####################################}", treeDetail.Y) + "," + String.Format("{0:0.####################################}", treeDetail.X) + ",0," + project_Organism.Organism.CommonName.CommonNameDesc; using (StreamWriter writer = new StreamWriter(path, true)) { writer.WriteLine(toWrite); writer.Flush(); writer.Close(); } } catch (Exception ex) { throw new Exception("Error on AddTree method: " + ex.Message); } }
public void DeleteProject_OrganismByProjectOrganismID(int projectOrganismID) { int projectOrganismIDINT = Convert.ToInt32(projectOrganismID); Project_Organisms project_Organism = _DatabaseContext.Project_Organisms.First(instance => instance.ProjectOrganismID == projectOrganismIDINT); DeleteProject_OrganismByProjectOrganismID(project_Organism); }
protected void gridViewOrganisms_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName != "Page") { ProjectBLL projectBLL = new ProjectBLL(); Project project = projectBLL.GetProjectByProjectID(Convert.ToInt32(Page.RouteData.Values["project_id"])); OrganismBLL organismBLL = new OrganismBLL(); Organism organism = organismBLL.GetOrganismByOrganismID(Convert.ToInt32(e.CommandArgument)); Project_OrganismsBLL project_OrganismsBLL = new Project_OrganismsBLL(); Project_Organisms project_Organism = new Project_Organisms(); project_Organism.ProjectID = project.ProjectID; project_Organism.ProjectReference.EntityKey = project.EntityKey; project_Organism.OrganismID = organism.OrganismID; project_Organism.OrganismReference.EntityKey = organism.EntityKey; project_Organism.CreatedDate = DateTime.Now; project_Organism.EditedDate = DateTime.Now; project_OrganismsBLL.CreateNewProject_Organisms(project_Organism); Response.RedirectToRoute("organismsinproject", new { project_id = (Page.RouteData.Values["project_id"] as string) }); } }
public void DeleteProject_Organisms(List <int> projectOrganismIDsToDelete) { //Validate Input foreach (int projectOrganismID in projectOrganismIDsToDelete) { if (projectOrganismID.IsInvalidKey()) { BusinessLayerHelper.ThrowErrorForInvalidDataKey("ProjectOrganismID"); } } List <Project_Organisms> project_OrganismssToBeDeleted = new List <Project_Organisms>(); foreach (int projectOrganismID in projectOrganismIDsToDelete) { Project_Organisms project_Organisms = new Project_Organisms { ProjectOrganismID = projectOrganismID }; _DatabaseContext.Project_Organisms.Attach(project_Organisms); _DatabaseContext.Project_Organisms.DeleteObject(project_Organisms); project_OrganismssToBeDeleted.Add(project_Organisms); OnProject_OrganismsDeleting(project_Organisms); } int numberOfAffectedRows = _DatabaseContext.SaveChanges(); if (numberOfAffectedRows != projectOrganismIDsToDelete.Count) { throw new DataNotUpdatedException("One or more project_Organisms records have not been deleted."); } foreach (Project_Organisms project_OrganismsToBeDeleted in project_OrganismssToBeDeleted) { OnProject_OrganismsDeleted(project_OrganismsToBeDeleted); } }
public void DeleteProject_Organisms(List <int> organismIDsToDelete, int projectID) { Project_OrganismsBLL Project_OrganismsBLL = new Project_OrganismsBLL(); foreach (int organismID in organismIDsToDelete) { Project_Organisms Project_Organisms = Project_OrganismsBLL.GetProject_OrganismByProjectIDOrganismID(organismID, projectID); Project_OrganismsBLL.DeleteProject_Organisms(Project_Organisms); } }
public object Delete([FromBody] ProjectOrganismIDModel projectOrganismIDModel) { Project_Organisms projectOrganism = (Project_Organisms)HttpContext.Current.Items["projectOrganism"]; HttpContext.Current.Items["project"] = projectOrganism.Project; new Project_OrganismsBLL().DeleteProject_OrganismByProjectOrganismID((int)projectOrganismIDModel.ProjectOrganismID); return(this.GetAll(new ProjectIDModel())); }
public static bool TryParse(string projectOrganismID, out Project_Organisms projectOrganism) { int projectOrganismID_int; if (!int.TryParse(projectOrganismID, out projectOrganismID_int)) { projectOrganism = null; return(false); } else { return(TryParse(projectOrganismID_int, out projectOrganism)); } }
public static bool TryParse_ByNumber(string number, out Project_Organisms projectOrganism) { int number_int; if (!int.TryParse(number, out number_int)) { projectOrganism = null; return(false); } else { return(TryParse_ByNumber(number_int, out projectOrganism)); } }
protected void FormViewTlProject_Organism_DataBinding(object sender, EventArgs e) { string project_organismID = Page.RouteData.Values["project_organism_id"] as string; if (project_organismID != null && project_organismID != "0") { this.tree = new Project_OrganismsBLL().GetProject_OrganismsByProjectOrganismID(Convert.ToInt32(project_organismID)); this.editor = new Eisk.BusinessLogicLayer.UserBLL().GetUserByUserID(tree.EditorUserID); this.creator = new Eisk.BusinessLogicLayer.UserBLL().GetUserByUserID(tree.CreatorUserID); if (tree.TreeDetails.Count > 0) { this.treeDetail = tree.TreeDetails.First(); } if (tree.Organism != null) { this.organism = tree.Organism; } } }
public void DeleteProject_OrganismByProjectOrganismID(Project_Organisms project_Organism) { int treeDetailsIDINT = project_Organism.TreeDetails.ToArray()[0].TreeDetailsID; TreeDetail treeDetail = _DatabaseContext.TreeDetails.First(instance => instance.TreeDetailsID == treeDetailsIDINT); List <Dap> tempDaps = _DatabaseContext.Daps.Where(instance => instance.TreeDetailsID == treeDetailsIDINT).ToList(); foreach (Dap dap in tempDaps) { _DatabaseContext.Daps.DeleteObject(dap); } _DatabaseContext.TreeDetails.DeleteObject(treeDetail); _DatabaseContext.Project_Organisms.DeleteObject(project_Organism); _DatabaseContext.SaveChanges(); //Sort Numbers after deleting int projectIDINT = Convert.ToInt32(project_Organism.ProjectID); List <TreeDetail> treeDetails = _DatabaseContext.TreeDetails .Where(instance => instance.Project_Organisms.ProjectID == projectIDINT) .OrderBy(instance => instance.Number) .ToList(); int number = 1; foreach (TreeDetail tDetail in treeDetails) { tDetail.Number = number; number++; } // _DatabaseContext.SaveChanges(); }
partial void OnProject_OrganismsDeleted(Project_Organisms project_Organisms);
partial void OnProject_OrganismsSaved(Project_Organisms project_Organisms);
partial void OnProject_OrganismsUpdated(Project_Organisms project_Organisms);
partial void OnProject_OrganismsCreated(Project_Organisms project_Organisms);
public object Update([FromBody] ProjectOrganismUpdateModel projectOrganismUpdate) { //var projectOrganism = (Project_Organisms)HttpContext.Current.Items["projectOrganism"]; //var organism = (Organism)HttpContext.Current.Items["organism"]; var project = (Project)HttpContext.Current.Items["project"]; var groups = (List <Group>)HttpContext.Current.Items["groups"]; var user = (User)HttpContext.Current.Items["user"]; //var actionProposed = (ActionProposed)HttpContext.Current.Items["actionProposed"]; //var condition = (Condition)HttpContext.Current.Items["condition"]; var daps = (int[])HttpContext.Current.Items["daps"]; var varas = (int)HttpContext.Current.Items["varas"]; using (DatabaseContext _DatabaseContext = new DatabaseContext()) { // TreeDetail Project_Organisms projectOrganism = _DatabaseContext.Project_Organisms.First(instance => instance.ProjectOrganismID == projectOrganismUpdate.ProjectOrganismID); TreeDetail treeDetail = _DatabaseContext.TreeDetails.First(instance => instance.ProjectOrganismID == projectOrganism.ProjectOrganismID); //Delete existing Daps foreach (Dap item in _DatabaseContext.Daps.Where(instance => instance.TreeDetailsID == treeDetail.TreeDetailsID).ToList()) { _DatabaseContext.Daps.DeleteObject(item); } if (varas != 0) // Is Cepa { treeDetail.Dap = 0; treeDetail.Dap_Counter = 0; } else if (daps.Length == 1) // Solo un Dap { treeDetail.Dap = Convert.ToDecimal(daps[0]); treeDetail.Dap_Counter = 1; Dap dapObj = new Dap(); dapObj.DapValue = Convert.ToDecimal(daps[0]); dapObj.TreeDetailsID = treeDetail.TreeDetailsID; dapObj.TreeDetailReference.EntityKey = treeDetail.EntityKey; _DatabaseContext.Daps.AddObject(dapObj); } else // 1 o Mas de un Dap { double dapTotal = 0; foreach (int dap in daps) { dapTotal += Convert.ToDouble(dap); } //dapTotal;// new DapBLL().GetDap(0); treeDetail.Dap = Convert.ToDecimal(Math.Round(Math.Sqrt(Math.Pow(dapTotal, 2D) / Convert.ToDouble(daps.Count())) * 100) / 100); treeDetail.Dap_Counter = Convert.ToInt32(daps.Length); //new DapBLL().GetDapCount(0); foreach (int dapInt in daps) { Dap dap = new Dap(); dap.DapValue = Convert.ToDecimal(dapInt); dap.TreeDetailsID = treeDetail.TreeDetailsID; dap.TreeDetailReference.EntityKey = treeDetail.EntityKey; _DatabaseContext.Daps.AddObject(dap); } } //treeDetail.Dap = new DapBLL().GetDap(treeDetail.TreeDetailsID); //Convert.ToDecimal(hfDap.Value); //treeDetail.Dap_Counter = new DapBLL().GetDapCount(treeDetail.TreeDetailsID); //Convert.ToInt32(hfDapCounter.Value); treeDetail.Varas = projectOrganismUpdate.Varas; treeDetail.Height = Convert.ToDecimal(projectOrganismUpdate.Height); int CommentaryMaxLength = Convert.ToInt32(ConfigurationManager.AppSettings["CommentaryMaxLength"]); if (!string.IsNullOrEmpty(projectOrganismUpdate.Commentary)) { treeDetail.Commentary = (projectOrganismUpdate.Commentary.Length > CommentaryMaxLength) ? projectOrganismUpdate.Commentary.Substring(0, CommentaryMaxLength) : projectOrganismUpdate.Commentary; } else { treeDetail.Commentary = ""; } treeDetail.Number = Convert.ToInt32(treeDetail.Number); treeDetail.Lat = Convert.ToDecimal(projectOrganismUpdate.Lat); treeDetail.Lon = Convert.ToDecimal(projectOrganismUpdate.Lon); Dictionary <string, object> anewpointObj = Utility.ConvertToStatePlane(projectOrganismUpdate.Lon.ToString(), projectOrganismUpdate.Lat.ToString(), @"~/Javascript/"); treeDetail.X = Convert.ToDecimal(anewpointObj["x"]); treeDetail.Y = Convert.ToDecimal(anewpointObj["y"]); // treeDetail.EditedDate = DateTime.Now; treeDetail.EditorUserID = user.UserID; //projectOrganism Organism organism = new OrganismBLL().GetOrganismByOrganismID(Convert.ToInt32(projectOrganismUpdate.OrganismID)); projectOrganism.OrganismID = organism.OrganismID; projectOrganism.OrganismReference.EntityKey = organism.EntityKey; //ActionProposed ActionProposed actionProposed = new ActionProposedBLL().GetActionProposedByActionProposedID(Convert.ToInt32(projectOrganismUpdate.ActionProposedID)); treeDetail.ActionProposedID = actionProposed.ActionProposedID; treeDetail.ActionProposedReference.EntityKey = actionProposed.EntityKey; //Condition Condition condition = new ConditionBLL().GetConditionByConditionID(Convert.ToInt32(projectOrganismUpdate.ConditionID)); treeDetail.ConditionID = condition.ConditionID; treeDetail.ConditionReference.EntityKey = condition.EntityKey; treeDetail.ProjectOrganismID = (int)projectOrganismUpdate.ProjectOrganismID; treeDetail.Project_OrganismsReference.EntityKey = projectOrganism.EntityKey; _DatabaseContext.SaveChanges(); // } var updatedProjectOrganism = new Project_OrganismsBLL().GetProject_OrganismsByProjectOrganismID((int)projectOrganismUpdate.ProjectOrganismID); return(ProjectOrganismModel.GetProjectOrganismObject(updatedProjectOrganism)); }
protected void ButtonDeleteSelected_Click(object sender, System.EventArgs e) { try { // Create a List to hold the ProjectID values to delete List <Int32> TreeDetailIDsToDelete = new List <Int32>(); List <Int32> ProjectOrganismsIDsToDelete = new List <Int32>(); List <Int32> DapIDsToDelete = new List <Int32>(); // 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); List <Int32> tempDaps = new DapBLL().GetDapsByTreeDetailsID(treeDetailsID).Select(instance => instance.DapID).ToList(); // Add it to the List... ProjectOrganismsIDsToDelete.Add(treeDetail.ProjectOrganismID); TreeDetailIDsToDelete.Add(treeDetail.TreeDetailsID); DapIDsToDelete.AddRange(tempDaps); } } using (DatabaseContext _DatabaseContext = new DatabaseContext()) { foreach (int dapID in DapIDsToDelete) { Dap dap = _DatabaseContext.Daps.First(instance => instance.DapID == dapID); _DatabaseContext.Daps.DeleteObject(dap); _DatabaseContext.SaveChanges(); } foreach (int treeDetailsID in TreeDetailIDsToDelete) { TreeDetail treeDetail = _DatabaseContext.TreeDetails.First(instance => instance.TreeDetailsID == treeDetailsID); _DatabaseContext.TreeDetails.DeleteObject(treeDetail); _DatabaseContext.SaveChanges(); } foreach (int ProjectOrganismID in ProjectOrganismsIDsToDelete) { Project_Organisms project_Organism = _DatabaseContext.Project_Organisms.First(instance => instance.ProjectOrganismID == ProjectOrganismID); _DatabaseContext.Project_Organisms.DeleteObject(project_Organism); _DatabaseContext.SaveChanges(); } //Sort Numbers after deleting int projectIDINT = Convert.ToInt32(RouteData.Values["Project_id"]); List <TreeDetail> treeDetails = _DatabaseContext.TreeDetails .Where(instance => instance.Project_Organisms.ProjectID == projectIDINT) .OrderBy(instance => instance.Number) .ToList(); int number = 1; foreach (TreeDetail tDetail in treeDetails) { tDetail.Number = number; number++; } // _DatabaseContext.SaveChanges(); } // Add a confirmation message ltlMessage.Text += String.Format(MessageFormatter.GetFormattedSuccessMessage("Eliminación de árboles satisfactoria. <b>{0}</b> árboles eliminados"), ProjectOrganismsIDsToDelete.Count); } catch (Exception ex) { ltlMessage.Text = ExceptionManager.DoLogAndGetFriendlyMessageForException(ex); } //binding the grid gridViewTreeDetails.PageIndex = 0; gridViewTreeDetails.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); gridViewTreeDetails.DataBind(); }
public static object GetProjectOrganismObject(Project_Organisms organism) { TreeDetail treeDetail = organism.TreeDetails.First(); return(GetProjectOrganismObject(treeDetail)); }
//------------------------------------------------------------------------------------------------------------------------------------------------------------- public TreeDetail CreateProject_Organism(int varas, decimal height, decimal lat, decimal lon, int[] daps, ActionProposed actionProposed, Condition condition, string commentary, Organism organism, Project project, Eisk.BusinessEntities.User user) { Project_Organisms project_Organism = new Project_Organisms(); project_Organism.CreatorUserID = user.UserID; project_Organism.CreatedDate = DateTime.Now; project_Organism.EditorUserID = user.UserID; project_Organism.EditedDate = DateTime.Now; project_Organism.OrganismID = organism.OrganismID; project_Organism.OrganismReference.EntityKey = organism.EntityKey; project_Organism.ProjectID = project.ProjectID; project_Organism.ProjectReference.EntityKey = project.EntityKey; int project_OrganismID = new Project_OrganismsBLL().CreateNewProject_Organisms(project_Organism); TreeDetail treeDetail = new TreeDetail(); if (varas != 0) // Is Cepa { treeDetail.Dap = 0; treeDetail.Dap_Counter = 0; } else if (daps.Length == 1) // Solo un Dap { treeDetail.Dap = daps[0]; treeDetail.Dap_Counter = 1; } else // Mas de un Dap { double dapTotal = 0; foreach (int dap in daps) { dapTotal += dap; } treeDetail.Dap = Convert.ToDecimal(Math.Round(Math.Sqrt(Math.Pow(dapTotal, 2D) / Convert.ToDouble(daps.Length)) * 100) / 100); treeDetail.Dap_Counter = daps.Length; } treeDetail.Varas = varas; treeDetail.Height = height; treeDetail.Commentary = commentary; List <Project_Organisms> project_Organisms = new Project_OrganismsBLL().GetProject_OrganismsByProjectID(project.ProjectID); Dictionary <string, object> anewpointObj = JavaScriptHelper.ConvertToStatePlane(lon.ToString(), lat.ToString()); treeDetail.Number = project_Organisms.Count; treeDetail.Y = Convert.ToDecimal(anewpointObj["y"]); treeDetail.X = Convert.ToDecimal(anewpointObj["x"]); treeDetail.Lat = Convert.ToDecimal(lat); treeDetail.Lon = Convert.ToDecimal(lon); treeDetail.CreatedDate = DateTime.Now; treeDetail.CreatorUserID = user.UserID; treeDetail.EditedDate = DateTime.Now; treeDetail.EditorUserID = user.UserID; treeDetail.ActionProposedID = actionProposed.ActionProposedID; treeDetail.ActionProposedReference.EntityKey = actionProposed.EntityKey; treeDetail.ConditionID = condition.ConditionID; treeDetail.ConditionReference.EntityKey = condition.EntityKey; treeDetail.ProjectOrganismID = project_Organism.ProjectOrganismID; treeDetail.Project_OrganismsReference.EntityKey = project_Organism.EntityKey; int treeDetailID = new TreeDetailBLL().CreateNewTreeDetail(treeDetail); foreach (decimal dapDecimal in daps) { Dap dap = new Dap(); dap.DapValue = dapDecimal; dap.TreeDetailsID = treeDetailID; dap.TreeDetailReference.EntityKey = treeDetail.EntityKey; new DapBLL().CreateNewDap(dap); } return(treeDetail); }
public static bool TryParse(int projectOrganismID, out Project_Organisms projectOrganism) { projectOrganism = (new DatabaseContext().Project_Organisms.FirstOrDefault(project_Organisms => project_Organisms.ProjectOrganismID == projectOrganismID)); return(projectOrganism != null); }
public object Get([FromBody] ProjectOrganismIDModel projectOrganismIDModel) { Project_Organisms projectOrganism = (Project_Organisms)HttpContext.Current.Items["projectOrganism"]; return(ProjectOrganismModel.GetProjectOrganismObject(projectOrganism)); }
public static bool TryParse_ByNumber(int number, out Project_Organisms projectOrganism) { projectOrganism = (new DatabaseContext().Project_Organisms.FirstOrDefault(project_Organisms => project_Organisms.TreeDetails.FirstOrDefault().Number.Value == number)); return(projectOrganism != null); }
public static bool IsAuthorized(Project_Organisms project_Organisms, List <Group> groups) { return(groups.Contains(project_Organisms.Project.Group_Projects.First().Group)); }
/// <summary> /// Deprecated Method for adding a new object to the Project_Organisms EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToProject_Organisms(Project_Organisms project_Organisms) { base.AddObject("Project_Organisms", project_Organisms); }
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"; } } }