Пример #1
0
    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) });
        }
    }
Пример #2
0
        protected void lbGenerateCSV_Click(object sender, EventArgs e)
        {
            System.Threading.Thread.Sleep(3000);
            string projectID = new Page().RouteData.Values["project_id"] as string;

            // Validar 1 o más arboles
            List <Project_Organisms> project_Organisms = new Project_OrganismsBLL().GetProject_OrganismsByProjectID(Convert.ToInt32(projectID));

            if (project_Organisms.Count == 0)
            {
                ltlMessage.Text = MessageFormatter.GetFormattedNoticeMessage("Generación de reportes cancelada. Entre al menos un arbol al proyecto para permitir la generación de reportes.");
                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "codeBehindToJS", " hideDiv(); ", false);
                return;
            }

            hfReports.Value = Page.GetRouteUrl("tl-report-details-csv",
                                               new
            {
                edit_mode  = "edit",
                project_id = RouteData.Values["Project_id"],
                reports    = "a"
            });

            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "codeBehindToJS", " EndRequest(null,null); ", false);
        }
Пример #3
0
    protected string GetDaps()
    {
        Project_Organisms projectOrganisms = new Project_OrganismsBLL().GetProject_OrganismsByProjectOrganismID(Convert.ToInt32(Page.RouteData.Values["project_organism_id"]));
        List <Dap>        tempDaps         = new DapBLL().GetDapsByTreeDetailsID(projectOrganisms.TreeDetails.First().TreeDetailsID).ToList();

        string daps = "";

        foreach (Dap tempDap in tempDaps)
        {
            daps += Convert.ToDouble(tempDap.DapValue).ToString() + ",";
        }
        daps = (daps.Count() > 1) ? daps.Substring(0, daps.Count() - 1) : daps;

        return(daps);
    }
Пример #4
0
    protected string getTrees()
    {
        List <Project_Organisms> project_Organisms = new Project_OrganismsBLL().GetProject_OrganismsByProjectID(Convert.ToInt32(RouteData.Values["project_id"]));

        List <object> trees = new List <object>();

        foreach (Project_Organisms project_Organism in project_Organisms)
        {
            TreeDetail treeDetail = project_Organism.TreeDetails.ToList()[0];
            var        tree       = new
            {
                treeDetail.ActionProposed.ActionProposedDesc,
                treeDetail.ActionProposed.ActionProposedID,
                treeDetail.ActionProposed.Color.ColorDesc,
                treeDetail.ActionProposed.Color.ColorID,
                treeDetail.ActionProposed.Color.Code,
                treeDetail.MaritimeZone,
                treeDetail.Littoral,
                treeDetail.Commentary,
                treeDetail.Condition.ConditionDesc,
                treeDetail.Condition.ConditionID,
                treeDetail.CreatedDate,
                treeDetail.CreatorUserID,
                treeDetail.Dap,
                treeDetail.Dap_Counter,
                treeDetail.EditedDate,
                treeDetail.EditorUserID,
                treeDetail.Height,
                treeDetail.Lat,
                treeDetail.Lon,
                treeDetail.X,
                treeDetail.Y,
                treeDetail.Number,
                treeDetail.ProjectOrganismID,
                treeDetail.Project_Organisms.ProjectID,
                treeDetail.Project_Organisms.OrganismID,
                treeDetail.Project_Organisms.Organism.CommonName.CommonNameDesc,
                treeDetail.Project_Organisms.Organism.CommonName.CommonNameID,
                treeDetail.Project_Organisms.Organism.ScientificName.ScientificNameDesc,
                treeDetail.Project_Organisms.Organism.ScientificName.ScientificNameID,
                treeDetail.TreeDetailsID,
                treeDetail.Varas
            };
            trees.Add(tree);
        }

        return(new JavaScriptSerializer().Serialize(trees));
    }
Пример #5
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";
        }
Пример #6
0
        protected void ButtonAddNewTreeDetails_Click(object sender, System.EventArgs e)
        {
            ProjectInfoTreeLocation ProjectInfoTreeLocation = new ProjectInfoTreeLocationBLL().GetProjectInfoTreeLocationsByProjectID(Convert.ToInt32(RouteData.Values["Project_id"]))[0];
            int count = new Project_OrganismsBLL().GetTotalCountForAllProject_OrganismsByProjectID(Convert.ToInt32(RouteData.Values["Project_id"]));

            Response.RedirectToRoute("tl-tree-details", new
            {
                edit_mode           = "new",
                Project_id          = RouteData.Values["Project_id"],
                project_organism_id = 0,
                number = count + 1,
                x      = ProjectInfoTreeLocation.X,
                y      = ProjectInfoTreeLocation.Y,
                lat    = ProjectInfoTreeLocation.Lat,
                lon    = ProjectInfoTreeLocation.Lon
            });
        }
Пример #7
0
    protected void ButtonDeleteSelected_Click(object sender, System.EventArgs e)
    {
        try
        {
            // Create a List to hold the OrganismID values to delete
            List <Int32> OrganismIDsToDelete = new List <Int32>();

            // Iterate through the Organisms.Rows property
            foreach (GridViewRow row in gridViewOrganisms.Rows)
            {
                // Access the CheckBox
                CheckBox cb = (CheckBox)(row.FindControl("chkOrganismSelector"));
                if (cb != null && cb.Checked)
                {
                    // Save the OrganismID value for deletion
                    // First, get the OrganismID for the selected row
                    Int32 OrganismID = (Int32)gridViewOrganisms.DataKeys[row.RowIndex].Value;
                    Project_OrganismsBLL project_OrganismsBLL = new Project_OrganismsBLL();
                    Eisk.BusinessEntities.Project_Organisms project_Organisms = project_OrganismsBLL.GetProject_OrganismByProjectIDOrganismID(Convert.ToInt32((Page.RouteData.Values["project_id"] as string)), OrganismID);

                    // Add it to the List...
                    OrganismIDsToDelete.Add(project_Organisms.ProjectOrganismID);

                    // Add a confirmation message
                    ltlMessage.Text += String.Format(MessageFormatter.GetFormattedSuccessMessage("Delete successful. <b>{0}</b> - <b>{1}</b>(<b>{2}</b>) has been deleted"), project_Organisms.Organism.OrganismType.OrganismTypeName, project_Organisms.Organism.CommonName, project_Organisms.Organism.ScientificName);
                }
            }

            //perform the actual delete
            new Project_OrganismsBLL().DeleteProject_Organisms(OrganismIDsToDelete);
        }
        catch (Exception ex)
        {
            ltlMessage.Text = ExceptionManager.DoLogAndGetFriendlyMessageForException(ex);
        }

        //binding the grid
        gridViewOrganisms.PageIndex = 0;
        gridViewOrganisms.DataBind();
    }
Пример #8
0
        protected void gridViewTreeDetails_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "lb")
            {
                string project_organism_id = ((System.Web.UI.WebControls.ImageButton)(e.CommandSource)).CommandArgument;

                var project_organism = new Project_OrganismsBLL().GetProject_OrganismsByProjectOrganismID(Convert.ToInt32(project_organism_id));
                var treeDetails      = project_organism.TreeDetails.First();

                string x = Page.GetRouteUrl("tl-tree-details", new
                {
                    edit_mode           = "edit",
                    Project_id          = project_organism.ProjectID.ToString(),
                    project_organism_id = project_organism.ProjectOrganismID.ToString(),
                    number = treeDetails.Number.ToString(),
                    x      = treeDetails.X.ToString(),
                    y      = treeDetails.Y.ToString(),
                    lat    = treeDetails.Lat.ToString(),
                    lon    = treeDetails.Lon.ToString()
                });
                x +=
                    "?s=i"
                    + "&ac=" + ddlActionProposed.Value as string
                    + "&ob=" + ddlOrderBy.SelectedValue as string
                    + "&r=" + (rbReverse.Checked ? "1" : "0") as string
                    + "&c=" + (cbCepas.Checked ? "1" : "0") as string
                    + "&l=" + (chkLittoral.Checked ? "1" : "0") as string
                    + "&m=" + (chkMaritimeZone.Checked ? "1" : "0") as string
                    + "&sri=" + (gridViewTreeDetails.PageIndex * gridViewTreeDetails.PageSize).ToString()
                    + "&mr=" + gridViewTreeDetails.PageSize as string
                    + "&pi=" + gridViewTreeDetails.PageIndex as string
                    + (!string.IsNullOrEmpty(txtFilter.Text) ? "&f=" + txtFilter.Text as string : "");

                Response.Redirect(x);
            }
        }
Пример #9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string projectID = (Page.RouteData.Values["project_id"] as string);

        List <string> repsIdsToCreate = (Page.RouteData.Values["reports"] as string).Split(',').ToList();

        List <Rep> repsToCreate = new List <Rep>();

        foreach (string repID in repsIdsToCreate)
        {
            repsToCreate.Add(new RepBLL().GetRepByRepID(Convert.ToInt32(repID)));
        }

        bool isFullHeader = Convert.ToBoolean(Page.RouteData.Values["headeroneachreport"] as string);// cbHeaderOnEachReport.Checked;

        Eisk.BusinessEntities.Project  project  = new ProjectBLL().GetProjectByProjectID(Convert.ToInt32(projectID));
        Eisk.BusinessEntities.User     user     = new UserBLL().GetUserByUserName((HttpContext.Current.User.Identity).Name);
        Eisk.BusinessEntities.UserInfo userInfo = user.UserInfoes.First(instance => instance.UserID == user.UserID);

        DateTime time = DateTime.Now;

        string name = Reports.Translate(project.ProjectInfoes.First().ProjectName);

        string path = System.Web.HttpContext.Current.Server.MapPath(@System.Configuration.ConfigurationManager.AppSettings["ProjectsRoot"]) + projectID.ToString();

        // check folder exists
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
            System.IO.File.WriteAllText(path + "/" + name + ".xlsx", "");
        }

        FileInfo newFile = new FileInfo(path + @"\" + name + ".xlsx");

        File.Delete(path + @"\" + name + ".xlsx");
        using (ExcelPackage pck = new ExcelPackage(newFile))
        {
            ProjectInfo projectInfo = new ProjectInfoBLL().GetProjectInfoesByProjectID(Convert.ToInt32(projectID)).First();
            List <Project_Organisms> project_Organisms = new Project_OrganismsBLL().GetProject_OrganismsByProjectID(Convert.ToInt32(projectID));

            int totalPages        = 0;
            int currentPageNumber = 0;
            int maxLines          = Convert.ToInt32(@System.Configuration.ConfigurationManager.AppSettings["reportsMaxLines"]);

            List <TreeDetail>   treeDetails            = new List <TreeDetail>();
            List <TreeDetail>   treeComentaries        = new List <TreeDetail>();
            List <TreesSummary> actionProposedID0Items = new List <TreesSummary>();
            List <TreesSummary> actionProposedID1Items = new List <TreesSummary>();
            List <TreesSummary> actionProposedID2Items = new List <TreesSummary>();
            List <TreesSummary> actionProposedID3Items = new List <TreesSummary>();
            List <TreesSummary> actionProposedID4Items = new List <TreesSummary>();

            int treeDetailsCount            = 0;
            int actionProposedID0ItemsCount = 0;
            int actionProposedID1ItemsCount = 0;
            int actionProposedID2ItemsCount = 0;
            int actionProposedID3ItemsCount = 0;
            int actionProposedID4ItemsCount = 0;

            List <Index> idexes = new List <Index>();

            if (repsToCreate.Select(instance => instance.RepID).Contains(1))
            {
                idexes.Add(
                    new Index(
                        repsToCreate.Where(instance => instance.RepID == 1).Select(instance => instance.RepName).First(),
                        1,
                        totalPages + 1,
                        totalPages + 1
                        ));
                totalPages += 1;
            }
            if (repsToCreate.Select(instance => instance.RepID).Contains(2))
            {
                treeDetails       = new TreeDetailBLL().GetTreeDetailsByProjectID(Convert.ToInt32(projectID));
                treeDetailsCount += Reports.GetPageCountOrDefault(maxLines, treeDetails.Count);
                idexes.Add(
                    new Index(
                        repsToCreate.Where(instance => instance.RepID == 2).Select(instance => instance.RepName).First(),
                        2,
                        totalPages + 1,
                        totalPages + treeDetailsCount
                        ));
                totalPages += treeDetailsCount;
            }
            if (repsToCreate.Select(instance => instance.RepID).Contains(3))
            {
                actionProposedID0Items      = new TreesSummaryBLL().GetItems(project_Organisms, 0, true);
                actionProposedID0ItemsCount = Reports.GetPageCountOrDefault(maxLines, actionProposedID0Items.Count);
                ;
                idexes.Add(
                    new Index(
                        repsToCreate.Where(instance => instance.RepID == 3).Select(instance => instance.RepName).First(),
                        3,
                        totalPages + 1,
                        totalPages + actionProposedID0ItemsCount
                        ));
                totalPages += actionProposedID0ItemsCount;
            }
            if (repsToCreate.Select(instance => instance.RepID).Contains(4))
            {
                actionProposedID1Items       = new TreesSummaryBLL().GetItems(project_Organisms, 1, true);
                actionProposedID1ItemsCount += Reports.GetPageCountOrDefault(maxLines, actionProposedID1Items.Count);
                idexes.Add(
                    new Index(
                        repsToCreate.Where(instance => instance.RepID == 4).Select(instance => instance.RepName).First(),
                        4,
                        totalPages + 1,
                        totalPages + actionProposedID1ItemsCount
                        ));
                totalPages += actionProposedID1ItemsCount;
            }
            if (repsToCreate.Select(instance => instance.RepID).Contains(5))
            {
                actionProposedID2Items       = new TreesSummaryBLL().GetItems(project_Organisms, 2, true);
                actionProposedID2ItemsCount += Reports.GetPageCountOrDefault(maxLines, actionProposedID2Items.Count);
                idexes.Add(
                    new Index(
                        repsToCreate.Where(instance => instance.RepID == 5).Select(instance => instance.RepName).First(),
                        5,
                        totalPages + 1,
                        totalPages + actionProposedID2ItemsCount
                        ));
                totalPages += actionProposedID2ItemsCount;
            }
            if (repsToCreate.Select(instance => instance.RepID).Contains(6))
            {
                actionProposedID3Items       = new TreesSummaryBLL().GetItems(project_Organisms, 3, true);
                actionProposedID3ItemsCount += Reports.GetPageCountOrDefault(maxLines, actionProposedID3Items.Count);
                idexes.Add(
                    new Index(
                        repsToCreate.Where(instance => instance.RepID == 6).Select(instance => instance.RepName).First(),
                        6,
                        totalPages + 1,
                        totalPages + actionProposedID3ItemsCount
                        ));
                totalPages += actionProposedID3ItemsCount;
            }
            if (repsToCreate.Select(instance => instance.RepID).Contains(7))
            {
                actionProposedID4Items       = new TreesSummaryBLL().GetItems(project_Organisms, 4, true);
                actionProposedID4ItemsCount += Reports.GetPageCountOrDefault(maxLines, actionProposedID4Items.Count);
                idexes.Add(
                    new Index(
                        repsToCreate.Where(instance => instance.RepID == 7).Select(instance => instance.RepName).First(),
                        7,
                        totalPages + 1,
                        totalPages + actionProposedID4ItemsCount
                        ));
                totalPages += actionProposedID4ItemsCount;
            }
            if (repsToCreate.Select(instance => instance.RepID).Contains(8))
            {
                idexes.Add(
                    new Index(
                        repsToCreate.Where(instance => instance.RepID == 8).Select(instance => instance.RepName).First(),
                        1,
                        totalPages + 1,
                        totalPages + 1
                        ));
                totalPages += 1;
            }
            if (repsToCreate.Select(instance => instance.RepID).Contains(2)) // Se repite el ID de inventario de arboles para anejar comentarios muy largos
            {
                treeComentaries = treeDetails.AsQueryable().DynamicOrderBy("Number").Where(instance => instance.Commentary.Trim().Length > 100).ToList();

                int totalTreeDetailsLines = 0;
                int pageCount             = 0;
                foreach (var treeDetail in treeComentaries)
                {
                    int lines = (int)Math.Ceiling((double)treeDetail.Commentary.Length / 200D);
                    if (totalTreeDetailsLines + lines > maxLines * pageCount)
                    {
                        pageCount++;
                    }

                    totalTreeDetailsLines += lines;
                }

                if (treeComentaries.Count > 0)
                {
                    idexes.Add(
                        new Index(
                            "Comentarios (Continuación)",
                            0,
                            totalPages + 1,
                            totalPages + pageCount
                            ));
                }
                //int pageCount = (int)Math.Ceiling((double)totalTreeDetailsLines / (double)maxLines);
                totalPages += pageCount;
            }

            bool hasIndex = Convert.ToBoolean(Page.RouteData.Values["createindex"] as string);
            if (hasIndex)//cbCreateIndex.Checked)
            {
                Reports.Index(isFullHeader, currentPageNumber, totalPages, "Tabla de Contenido", project, userInfo, idexes, time, pck);
            }

            foreach (Int32 reportID in repsToCreate.Select(instance => instance.RepID))
            {
                switch (reportID)
                {
                case 1:
                {
                    Reports.ProjectInfo(isFullHeader, hasIndex, currentPageNumber, totalPages, project, userInfo, time, pck);
                    currentPageNumber += 1;
                }
                break;

                case 2:
                {
                    Reports.TreeInventory(isFullHeader, hasIndex, currentPageNumber, totalPages, project, userInfo, treeDetails.AsQueryable().DynamicOrderBy("Number").ToList(), time, pck, maxLines);
                    currentPageNumber += treeDetailsCount;
                }
                break;

                case 3:
                {        // actionProposedID = 0; ALL
                    Reports.TreesSummary(isFullHeader, hasIndex, currentPageNumber, totalPages, project, userInfo, actionProposedID0Items, time, pck, maxLines);
                    currentPageNumber += actionProposedID0ItemsCount;
                }
                break;

                case 4:
                {        // actionProposedID = 1; Corte y Remoción
                    Reports.ActionProposedSummary(isFullHeader, hasIndex, currentPageNumber, totalPages, "Resumen de Corte y Remoción", project, userInfo, actionProposedID1Items, time, pck, maxLines);
                    currentPageNumber += actionProposedID1ItemsCount;
                }
                break;

                case 5:
                {        // actionProposedID = 2; Protección
                    Reports.ActionProposedSummary(isFullHeader, hasIndex, currentPageNumber, totalPages, "Resumen de Protección", project, userInfo, actionProposedID2Items, time, pck, maxLines);
                    currentPageNumber += actionProposedID2ItemsCount;
                }
                break;

                case 6:
                {        // actionProposedID = 3; Poda
                    Reports.ActionProposedSummary(isFullHeader, hasIndex, currentPageNumber, totalPages, "Resumen de Poda", project, userInfo, actionProposedID3Items, time, pck, maxLines);
                    currentPageNumber += actionProposedID3ItemsCount;
                }
                break;

                case 7:
                {        // actionProposedID = 4; Transplante
                    Reports.ActionProposedSummary(isFullHeader, hasIndex, currentPageNumber, totalPages, "Resumen de Transplante", project, userInfo, actionProposedID4Items, time, pck, maxLines);
                    currentPageNumber += actionProposedID4ItemsCount;
                }
                break;

                case 8:
                {
                    using (ExcelPackage pck2 = new OfficeOpenXml.ExcelPackage())
                    {
                        ExcelWorksheet wsTemplate = null;
                        pck2.Load(File.OpenRead(System.Web.HttpContext.Current.Server.MapPath(@"~\App_Resources\Excel\Totales.xlsx")));
                        wsTemplate = pck2.Workbook.Worksheets.First();
                        Reports.ProjectResults(isFullHeader, hasIndex, currentPageNumber, totalPages, project_Organisms, project, userInfo, time, pck, wsTemplate);
                        currentPageNumber += 1;
                    }
                }
                break;

                default:
                    break;
                }
            }

            if (treeComentaries.Count > 0 && treeDetailsCount > 0)
            {
                Reports.Comentaries(isFullHeader, hasIndex, currentPageNumber, totalPages, "Comentarios (Continuación)", project, userInfo, treeComentaries, time, pck, maxLines);
            }

            pck.Save();
            pck.Dispose();
        }

        System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
        response.ClearContent();
        response.Clear();
        response.ContentType = "application/ms-excel";
        response.AddHeader("Content-Disposition", "attachment; filename=" + name + ".xlsx");
        response.WriteFile(path + @"/" + name + ".xlsx");

        response.End();
    }
Пример #10
0
    protected void FormViewTlProject_Organism_ItemUpdating(object sender, FormViewUpdateEventArgs e)
    {
        User editor = new UserBLL().GetUserByUserName((HttpContext.Current.User.Identity).Name);

        Project_Organisms project_Organisms = new Project_OrganismsBLL().GetProject_OrganismsByProjectOrganismID((int)e.Keys["ProjectOrganismID"]);

        using (DatabaseContext _DatabaseContext = new DatabaseContext())
        {
            // TreeDetail
            TextBox     txtVaras      = (TextBox)formViewTlProject_Organism.FindControl("txtVaras");
            HiddenField hfDap         = (HiddenField)formViewTlProject_Organism.FindControl("hfDap");
            TextBox     txtHeight     = (TextBox)formViewTlProject_Organism.FindControl("txtHeight");
            TextBox     txtCommentary = (TextBox)formViewTlProject_Organism.FindControl("txtCommentary");

            Label   lblNumber = (Label)formViewTlProject_Organism.FindControl("lblNumber");
            TextBox txtX      = (TextBox)formViewTlProject_Organism.FindControl("txtX");
            TextBox txtY      = (TextBox)formViewTlProject_Organism.FindControl("txtY");
            TextBox txtLat    = (TextBox)formViewTlProject_Organism.FindControl("txtLat");
            TextBox txtLon    = (TextBox)formViewTlProject_Organism.FindControl("txtLon");

            RadioButtonList rblActionProposed = (RadioButtonList)formViewTlProject_Organism.FindControl("rblActionProposed");
            RadioButtonList rblCondition      = (RadioButtonList)formViewTlProject_Organism.FindControl("rblCondition");

            // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            // Edgardo Ramos - 20130928
            CheckBox chkLittoral     = (CheckBox)formViewTlProject_Organism.FindControl("chkLittoral");
            CheckBox chkMaritimeZone = (CheckBox)formViewTlProject_Organism.FindControl("chkMaritimeZone");
            CheckBox cbCepa          = (CheckBox)formViewTlProject_Organism.FindControl("cbCepa");
            // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

            TreeDetail treeDetail = _DatabaseContext.TreeDetails.First(instance => instance.ProjectOrganismID == project_Organisms.ProjectOrganismID);

            //Delete existing Daps
            foreach (Dap item in _DatabaseContext.Daps.Where(instance => instance.TreeDetailsID == treeDetail.TreeDetailsID).ToList())
            {
                _DatabaseContext.Daps.DeleteObject(item);
            }

            if (cbCepa.Checked)// Is Cepa
            {
                treeDetail.Dap         = 0;
                treeDetail.Dap_Counter = 0;

                treeDetail.Varas = Convert.ToInt32(string.IsNullOrEmpty(txtVaras.Text) ? "0" : txtVaras.Text);
            }
            else
            {
                treeDetail.Varas = 0;

                var dapsList = hfDap.Value.Split(',').ToList();
                if (dapsList.Count == 1) // Solo un Dap
                {
                    decimal dap = Convert.ToDecimal(dapsList[0]);

                    treeDetail.Dap         = dap;
                    treeDetail.Dap_Counter = 1;

                    Dap dapObj = new Dap();
                    dapObj.DapValue      = dap;
                    dapObj.TreeDetailsID = treeDetail.TreeDetailsID;
                    dapObj.TreeDetailReference.EntityKey = treeDetail.EntityKey;

                    _DatabaseContext.Daps.AddObject(dapObj);
                }
                else // 1 o Mas de un Dap
                {
                    string[] daps     = hfDap.Value.Split(',');
                    double   dapTotal = 0;
                    foreach (string dap in daps)
                    {
                        dapTotal += Convert.ToDouble(dap);
                    }
                    treeDetail.Dap         = Convert.ToDecimal(Math.Round(Math.Sqrt(Math.Pow(dapTotal, 2D) / Convert.ToDouble(daps.Count())) * 100) / 100);
                    treeDetail.Dap_Counter = daps.Count();

                    foreach (string dapString in daps)
                    {
                        Dap dap = new Dap();
                        dap.DapValue      = Convert.ToDecimal(dapString);
                        dap.TreeDetailsID = treeDetail.TreeDetailsID;
                        dap.TreeDetailReference.EntityKey = treeDetail.EntityKey;

                        _DatabaseContext.Daps.AddObject(dap);
                    }
                }
            }

            treeDetail.Height     = Convert.ToDecimal(txtHeight.Text);
            treeDetail.Commentary = (txtCommentary.Text.Length > txtCommentary.MaxLength) ? txtCommentary.Text.Substring(0, txtCommentary.MaxLength) : txtCommentary.Text;

            treeDetail.Number = Convert.ToInt32(lblNumber.Text);

            // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            // Edgardo Ramos - 20130928
            decimal         dec;
            RadioButtonList rblPosition = (RadioButtonList)formViewTlProject_Organism.FindControl("rblPosition");

            if (rblPosition.SelectedValue == "0") // Nad83
            {
                treeDetail.X = decimal.TryParse(txtX.Text, out dec) ? Convert.ToDecimal(txtX.Text) : 0;
                treeDetail.Y = decimal.TryParse(txtY.Text, out dec) ? Convert.ToDecimal(txtY.Text) : 0;

                if (treeDetail.X != 0 && treeDetail.Y != 0)
                {
                    Dictionary <string, object> anewpointObj = Utility.ConvertToLatLng(treeDetail.X.ToString(), treeDetail.Y.ToString(), @"~/App_Resources/client-scripts/tl/");

                    treeDetail.Lat = Convert.ToDecimal(anewpointObj["y"]);
                    txtLat.Text    = treeDetail.Lat.ToString();
                    treeDetail.Lon = Convert.ToDecimal(anewpointObj["x"]);
                    txtLon.Text    = treeDetail.Lon.ToString();
                }
                else
                {
                    treeDetail.Lat = 0;
                    treeDetail.Lon = 0;
                }
            }
            else // StatePlanes
            {
                treeDetail.Lat = decimal.TryParse(txtLat.Text, out dec) ? Convert.ToDecimal(txtLat.Text) : 0;
                treeDetail.Lon = decimal.TryParse(txtLon.Text, out dec) ? Convert.ToDecimal(txtLon.Text) : 0;

                if (treeDetail.Lat != 0 && treeDetail.Lon != 0)
                {
                    Dictionary <string, object> anewpointObj = Utility.ConvertToStatePlane(treeDetail.Lon.ToString(), treeDetail.Lat.ToString(), @"~/App_Resources/client-scripts/tl/");

                    treeDetail.X = Convert.ToDecimal(anewpointObj["x"]);
                    txtX.Text    = treeDetail.X.ToString();
                    treeDetail.Y = Convert.ToDecimal(anewpointObj["y"]);
                    txtY.Text    = treeDetail.Y.ToString();
                }
                else
                {
                    treeDetail.X = 0;
                    treeDetail.Y = 0;
                }
            }

            //treeDetail.X = Convert.ToDecimal(txtX.Text);
            //treeDetail.Y = Convert.ToDecimal(txtY.Text);
            //treeDetail.Lat = Convert.ToDecimal(txtLat.Text);
            //treeDetail.Lon = Convert.ToDecimal(txtLon.Text);

            treeDetail.Littoral     = chkLittoral.Checked;
            treeDetail.MaritimeZone = chkMaritimeZone.Checked;

            // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

            treeDetail.EditedDate   = DateTime.Now;
            treeDetail.EditorUserID = editor.UserID;

            ActionProposed actionProposed = new ActionProposedBLL().GetActionProposedByActionProposedID(Convert.ToInt32(rblActionProposed.SelectedValue));
            treeDetail.ActionProposedID = actionProposed.ActionProposedID;
            treeDetail.ActionProposedReference.EntityKey = actionProposed.EntityKey;

            Condition condition = new ConditionBLL().GetConditionByConditionID(Convert.ToInt32(rblCondition.SelectedValue));
            treeDetail.ConditionID = condition.ConditionID;
            treeDetail.ConditionReference.EntityKey = condition.EntityKey;

            treeDetail.ProjectOrganismID = project_Organisms.ProjectOrganismID;
            treeDetail.Project_OrganismsReference.EntityKey = project_Organisms.EntityKey;

            _DatabaseContext.SaveChanges();
            //
        }

        Type myType = (typeof(Project_Organisms));

        PropertyInfo[] props = myType.GetProperties();

        string[] arrNewValues = new string[e.NewValues.Keys.Count];
        e.NewValues.Keys.CopyTo(arrNewValues, 0);

        foreach (var prop in props)
        {
            if (("System.String,System.Int,System.DateTime,System.Guid,System.Boolean").IndexOf((prop.PropertyType).FullName) >= 0) // Si la propiedad es de tipo Guid, String, Int, Boolean o DateTime
            {
                if (!arrNewValues.Contains(prop.Name))
                {
                    e.NewValues[prop.Name] = prop.GetValue(project_Organisms, null);
                }
            }
        }

        e.NewValues["ProjectID"]  = RouteData.Values["Project_id"].ToString();
        e.NewValues["OrganismID"] = ((HiddenField)formViewTlProject_Organism.FindControl("hfOrganism")).Value;

        e.NewValues["EditorUserId"] = editor.UserID.ToString();
        e.NewValues["EditedDate"]   = DateTime.Now;
    }
Пример #11
0
    protected void OdsProject_Organism_Details_Inserted(object sender, System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs e)
    {
        int result = Convert.ToInt32(e.ReturnValue, System.Globalization.CultureInfo.CurrentCulture.NumberFormat);

        //string lat = "";
        //string lon = "";
        if (result != 0)
        {
            Project_Organisms       project_Organisms       = new Project_OrganismsBLL().GetProject_OrganismsByProjectOrganismID(result);
            ProjectInfoTreeLocation projectInfoTreeLocation = new ProjectInfoTreeLocationBLL().GetProjectInfoTreeLocationsByProjectID(project_Organisms.ProjectID)[0];
            bool fromInventory = false;

            UserBLL userBLL = new UserBLL();
            Eisk.BusinessEntities.User user = userBLL.GetUserByUserName((HttpContext.Current.User.Identity).Name);

            if (user != null)
            {
                // TreeDetail
                TextBox     txtVaras      = (TextBox)formViewTlProject_Organism.FindControl("txtVaras");
                HiddenField hfDap         = (HiddenField)formViewTlProject_Organism.FindControl("hfDap");
                TextBox     txtDap        = (TextBox)formViewTlProject_Organism.FindControl("txtDap");
                TextBox     txtDapCounter = (TextBox)formViewTlProject_Organism.FindControl("txtDapCounter");
                TextBox     txtHeight     = (TextBox)formViewTlProject_Organism.FindControl("txtHeight");
                TextBox     txtCommentary = (TextBox)formViewTlProject_Organism.FindControl("txtCommentary");

                Label   lblNumber = (Label)formViewTlProject_Organism.FindControl("lblNumber");
                TextBox txtX      = (TextBox)formViewTlProject_Organism.FindControl("txtX");
                TextBox txtY      = (TextBox)formViewTlProject_Organism.FindControl("txtY");
                TextBox txtLat    = (TextBox)formViewTlProject_Organism.FindControl("txtLat");
                TextBox txtLon    = (TextBox)formViewTlProject_Organism.FindControl("txtLon");

                RadioButtonList rblActionProposed = (RadioButtonList)formViewTlProject_Organism.FindControl("rblActionProposed");
                RadioButtonList rblCondition      = (RadioButtonList)formViewTlProject_Organism.FindControl("rblCondition");

                // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                // Edgardo Ramos - 20130928
                CheckBox chkLittoral     = (CheckBox)formViewTlProject_Organism.FindControl("chkLittoral");
                CheckBox chkMaritimeZone = (CheckBox)formViewTlProject_Organism.FindControl("chkMaritimeZone");
                // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                TreeDetail treeDetail = new TreeDetail();

                if (!string.IsNullOrEmpty(txtVaras.Text) && txtVaras.Text != "0") // Is Cepa
                {
                    treeDetail.Dap         = 0;
                    treeDetail.Dap_Counter = 0;
                }
                else if (txtDapCounter.Text == "1") // Solo un Dap
                {
                    //treeDetail.Dap = Convert.ToDecimal(txtDap.Text);// new DapBLL().GetDap(0);
                    //treeDetail.Dap_Counter = Convert.ToInt32(txtDapCounter.Text); //new DapBLL().GetDapCount(0);
                    treeDetail.Dap         = Convert.ToDecimal(hfDap.Value); // new DapBLL().GetDap(0);
                    treeDetail.Dap_Counter = Convert.ToInt32(1);             //new DapBLL().GetDapCount(0);
                }
                else // Mas de un Dap
                {
                    string[] daps     = hfDap.Value.Split(',');
                    double   dapTotal = 0;
                    foreach (string 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(txtDapCounter.Text); //new DapBLL().GetDapCount(0);
                }

                treeDetail.Varas = Convert.ToInt32(string.IsNullOrEmpty(txtVaras.Text) ? "0" : txtVaras.Text);

                treeDetail.Height     = Convert.ToDecimal(txtHeight.Text);
                treeDetail.Commentary = (txtCommentary.Text.Length > txtCommentary.MaxLength) ? txtCommentary.Text.Substring(0, txtCommentary.MaxLength) : txtCommentary.Text;

                treeDetail.Number = Convert.ToInt32(lblNumber.Text);


                // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                // Edgardo Ramos - 20130928
                decimal         dec;
                RadioButtonList rblPosition = (RadioButtonList)formViewTlProject_Organism.FindControl("rblPosition");

                if (rblPosition.SelectedValue == "0") // Nad83
                {
                    treeDetail.X = decimal.TryParse(txtX.Text, out dec) ? Convert.ToDecimal(txtX.Text) : 0;
                    treeDetail.Y = decimal.TryParse(txtY.Text, out dec) ? Convert.ToDecimal(txtY.Text) : 0;

                    if (treeDetail.X != 0 && treeDetail.Y != 0)
                    {
                        Dictionary <string, object> anewpointObj = Utility.ConvertToLatLng(treeDetail.X.ToString(), treeDetail.Y.ToString(), @"~/App_Resources/client-scripts/tl/");

                        treeDetail.Lat = Convert.ToDecimal(anewpointObj["y"]);
                        txtLat.Text    = treeDetail.Lat.ToString();
                        treeDetail.Lon = Convert.ToDecimal(anewpointObj["x"]);
                        txtLon.Text    = treeDetail.Lon.ToString();
                    }
                    else
                    {
                        treeDetail.Lat = 0;
                        treeDetail.Lon = 0;
                    }
                }
                else // StatePlanes
                {
                    treeDetail.Lat = decimal.TryParse(txtLat.Text, out dec) ? Convert.ToDecimal(txtLat.Text) : 0;
                    treeDetail.Lon = decimal.TryParse(txtLon.Text, out dec) ? Convert.ToDecimal(txtLon.Text) : 0;

                    if (treeDetail.Lat != 0 && treeDetail.Lon != 0)
                    {
                        Dictionary <string, object> anewpointObj = Utility.ConvertToStatePlane(treeDetail.Lon.ToString(), treeDetail.Lat.ToString(), @"~/App_Resources/client-scripts/tl/");

                        treeDetail.X = Convert.ToDecimal(anewpointObj["x"]);
                        txtX.Text    = treeDetail.X.ToString();
                        treeDetail.Y = Convert.ToDecimal(anewpointObj["y"]);
                        txtY.Text    = treeDetail.Y.ToString();
                    }
                    else
                    {
                        treeDetail.X = 0;
                        treeDetail.Y = 0;
                    }
                }

                //treeDetail.X = Convert.ToDecimal(txtX.Text);
                //treeDetail.Y = Convert.ToDecimal(txtY.Text);
                //treeDetail.Lat = Convert.ToDecimal(txtLat.Text);
                //treeDetail.Lon = Convert.ToDecimal(txtLon.Text);

                treeDetail.Littoral     = chkLittoral.Checked;
                treeDetail.MaritimeZone = chkMaritimeZone.Checked;

                // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                treeDetail.CreatedDate   = DateTime.Now;
                treeDetail.CreatorUserID = user.UserID;
                treeDetail.EditedDate    = DateTime.Now;
                treeDetail.EditorUserID  = user.UserID;

                ActionProposed actionProposed = new ActionProposedBLL().GetActionProposedByActionProposedID(Convert.ToInt32(rblActionProposed.SelectedValue));
                treeDetail.ActionProposedID = actionProposed.ActionProposedID;
                treeDetail.ActionProposedReference.EntityKey = actionProposed.EntityKey;

                Condition condition = new ConditionBLL().GetConditionByConditionID(Convert.ToInt32(rblCondition.SelectedValue));
                treeDetail.ConditionID = condition.ConditionID;
                treeDetail.ConditionReference.EntityKey = condition.EntityKey;

                treeDetail.ProjectOrganismID = project_Organisms.ProjectOrganismID;
                treeDetail.Project_OrganismsReference.EntityKey = project_Organisms.EntityKey;

                int treeDetailID = new TreeDetailBLL().CreateNewTreeDetail(treeDetail);

                if (treeDetail.Varas != null && treeDetail.Varas > 0) // Is Cepa
                {
                    //
                }
                else if (txtDapCounter.Text == "1") // Solo un Dap
                {
                    Dap dap = new Dap();
                    dap.DapValue      = Convert.ToDecimal(hfDap.Value);
                    dap.TreeDetailsID = treeDetailID;
                    dap.TreeDetailReference.EntityKey = treeDetail.EntityKey;

                    new DapBLL().CreateNewDap(dap);
                }
                else // Mas de un Dap
                {
                    string[] daps = hfDap.Value.Split(',');
                    foreach (string dapString in daps)
                    {
                        Dap dap = new Dap();
                        dap.DapValue      = Convert.ToDecimal(dapString);
                        dap.TreeDetailsID = treeDetailID;
                        dap.TreeDetailReference.EntityKey = treeDetail.EntityKey;

                        new DapBLL().CreateNewDap(dap);
                    }
                }

                fromInventory = Convert.ToDecimal(projectInfoTreeLocation.X) == Convert.ToDecimal(treeDetail.X) && Convert.ToDecimal(projectInfoTreeLocation.Y) == Convert.ToDecimal(treeDetail.Y);
                //
            }

            if (fromInventory)
            {
                Response.RedirectToRoute("tl-treeinventory", new { project_id = RouteData.Values["project_id"] });
            }
            else
            {
                Response.RedirectToRoute("tl", new { Project_id = RouteData.Values["Project_id"] });
                Response.RedirectLocation += "?poid=" + project_Organisms.ProjectOrganismID + "&lat=0&lon=0";
            }

            //Response.RedirectToRoute("tl-tree-details_edit", new { edit_mode = "edit", project_id = Page.RouteData.Values["project_id"] as string, project_organism_id = result });
        }
    }
Пример #12
0
        protected void lbtGenerateReports_Click(object sender, EventArgs e)
        {
            ltlMessage.Text = "";

            try
            {
                //  Create a List to hold the ProjectID values to delete
                List <Rep>    repsToCreate = new List <Rep>();
                StringBuilder sbReports    = new StringBuilder();

                // Iterate through the Projects.Rows property
                foreach (GridViewRow row in gridViewReports.Rows)
                {
                    // Access the CheckBox
                    CheckBox cb = (CheckBox)(row.FindControl("chkReportSelector"));
                    if (cb != null && cb.Checked)
                    {
                        Rep rep = new RepBLL().GetRepByRepID((Int32)gridViewReports.DataKeys[row.RowIndex].Value);
                        repsToCreate.Add(rep);
                        sbReports.Append(rep.RepID + ",");
                    }
                }

                // Al menos un reporte seleccionado
                if (repsToCreate.Count == 0)
                {
                    ltlMessage.Text = MessageFormatter.GetFormattedNoticeMessage("Generación de reportes cancelada. Seleccione al menos un reporte para generar.");
                    this.ClientScript.RegisterClientScriptBlock(this.GetType(), "codeBehindToJS", " hideDiv(); ", false);
                    return;
                }

                // Validar 1 o más arboles
                string projectID = (Page.RouteData.Values["project_id"] as string);
                List <Project_Organisms> project_Organisms = new Project_OrganismsBLL().GetProject_OrganismsByProjectID(Convert.ToInt32(projectID));
                if (project_Organisms.Count == 0)
                {
                    ltlMessage.Text = MessageFormatter.GetFormattedNoticeMessage("Generación de reportes cancelada. Entre al menos un arbol al proyecto para permitir la generación de reportes.");
                    this.ClientScript.RegisterClientScriptBlock(this.GetType(), "codeBehindToJS", " hideDiv(); ", false);
                    return;
                }

                // Validar Desconocido y/o Accion Propuesta Det Luego
                string message;
                ValidateItems(project_Organisms, out message);
                if (!(message == ""))
                {
                    ltlMessage.Text = MessageFormatter.GetFormattedNoticeMessage("Generación de reportes cancelada. Al menos un arbol " + message);
                    this.ClientScript.RegisterClientScriptBlock(this.GetType(), "codeBehindToJS", " hideDiv(); ", false);
                    return;
                }

                System.Threading.Thread.Sleep(3000);

                hfReports.Value = Page.GetRouteUrl("tl-report-details",
                                                   new
                {
                    edit_mode          = "edit",
                    project_id         = RouteData.Values["Project_id"],
                    headeroneachreport = cbHeaderOnEachReport.Checked,
                    createindex        = cbCreateIndex.Checked,
                    reports            = sbReports.ToString().Substring(0, sbReports.ToString().Length - 1)
                });

                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "codeBehindToJS", " EndRequest(null,null); ", false);
            }
            catch (Exception ex)
            {
                ltlMessage.Text = ExceptionManager.DoLogAndGetFriendlyMessageForException(ex);
            }
        }
Пример #13
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";
                }
            }
        }
Пример #14
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string projectID = (Page.RouteData.Values["project_id"] as string);

        string repsIdsToCreate = (Page.RouteData.Values["reports"] as string);

        // Validar 1 o más arboles
        List <Project_Organisms> project_Organisms = new List <Project_Organisms>();

        if (repsIdsToCreate == "a")
        {
            project_Organisms = new Project_OrganismsBLL().GetProject_OrganismsByProjectID(Convert.ToInt32(projectID));
        }
        else if (repsIdsToCreate == "b")
        {
            project_Organisms = new Project_OrganismsBLL().GetProject_OrganismsByProjectID(Convert.ToInt32(projectID)).Where(i => i.TreeDetails.First().ActionProposedID == 2 || i.TreeDetails.First().ActionProposedID == 2).ToList();
        }
        else
        {
            return;
        }

        Eisk.BusinessEntities.Project project = new ProjectBLL().GetProjectByProjectID(Convert.ToInt32(projectID));

        string name = Reports.Translate(project.ProjectInfoes.First().ProjectName).Replace(" ", "_");

        if (repsIdsToCreate == "b")
        {
            name += "(Proteccion_Poda)";
        }

        string path = System.Web.HttpContext.Current.Server.MapPath(@System.Configuration.ConfigurationManager.AppSettings["ProjectsRoot"]) + projectID.ToString();

        // check folder exists
        if (File.Exists(path))
        {
            File.Delete(path);
        }

        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
            System.IO.File.WriteAllText(path + "/" + name + ".csv", "");
        }

        FileInfo newFile = new FileInfo(path + @"\" + name + ".csv");

        File.Delete(path + @"\" + name + ".csv");

        foreach (Project_Organisms project_Organism in project_Organisms)
        {
            AddTreeToAutoCADImportFile(project_Organism, path + @"\" + name + ".csv");
        }

        System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
        response.ClearContent();
        response.Clear();
        response.ContentType = "application/ms-excel";
        response.AddHeader("Content-Disposition", "attachment; filename=" + name + ".csv");
        response.WriteFile(path + @"/" + name + ".csv");

        response.End();
    }
Пример #15
0
        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));
        }