private int SaveRequest()
        {
            int           requestId = 0;
            DateTime      dt;
            ClientRequest rqst = new ClientRequest()
            {
                FirstName      = Request.Form["txtFirstName"],
                LastName       = Request.Form["txtLastName"],
                Degree         = Request.Form["txtDegree"],
                Email          = Request.Form["txtEmail"],
                Phone          = Request.Form["txtPhone"],
                Department     = Request.Form["txtDept"],
                InvestStatus   = Request.Form["ddlPIStatus"],
                ProjectTitle   = Request.Form["txtProjectTitle"],
                ProjectSummary = Request.Form["txtProjectSummary"],
                DueDate        = DateTime.TryParse(txtDueDate.Text, out dt) ? dt : (DateTime?)null,
                PreferBiostat  = Request.Form["txtPreferBiostat"],
                StudyArea      = string.Join("; ", GetCheckedValue(tblStudyArea)),
                ServiceType    = string.Join("; ", GetCheckedValue(tblServiceType)),
                Creator        = Request.UserHostAddress.ToString(),
                CreationDate   = DateTime.Now,
                RequestStatus  = "Created",
                ProjectId      = -1
            };

            try
            {
                using (ProjectTrackerContainer db = new ProjectTrackerContainer())
                {
                    db.ClientRequest.Add(rqst);
                    db.SaveChanges();

                    requestId = rqst.Id;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(requestId);
        }
Exemple #2
0
        /// <summary>
        /// Loads the list of QHS faculty/staff on the table grid.
        /// </summary>
        private void BindGrid()
        {
            using (ProjectTrackerContainer context = new ProjectTrackerContainer())
            {
                /// Loads list of QHS faculty/staff there is at least 1 PI in the system.
                /// Otherwise, a blank table is provided.
                if (context.Invests.Count() > 0)
                {
                    var query = context.BioStats
                                .Where(d => d.Id != 99)
                                .OrderBy(d => d.Id);

                    GridView1.DataSource = query.ToList();

                    /// Populates "User Rights" checkbox grid in Admin/StaffForm page.
                    var qUserRights = context.AspNetRoles.OrderBy(x => ((x.Name == "Super") ? 1 :
                                                                        ((x.Name == "Admin") ? 2 :
                                                                         ((x.Name == "Biostat") ? 3 : 4)))).ToList();

                    GridView1.DataBind();
                }
                else
                {
                    var obj = new List <Invests>();
                    obj.Add(new Invests());
                    // Bind the DataTable which contain a blank row to the GridView
                    GridView1.DataSource = obj;
                    GridView1.DataBind();
                    int columnsCount = GridView1.Columns.Count;
                    GridView1.Rows[0].Cells.Clear();                      // clear all the cells in the row
                    GridView1.Rows[0].Cells.Add(new TableCell());         //add a new blank cell
                    GridView1.Rows[0].Cells[0].ColumnSpan = columnsCount; //set the column span to the new added cell

                    //You can set the styles here
                    GridView1.Rows[0].Cells[0].HorizontalAlign = HorizontalAlign.Center;
                    GridView1.Rows[0].Cells[0].ForeColor       = System.Drawing.Color.Red;
                    GridView1.Rows[0].Cells[0].Font.Bold       = true;
                    //set No Results found to the new added cell
                    GridView1.Rows[0].Cells[0].Text = "NO RESULT FOUND!";
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// Pre-loads dropdown list based on what the type of reports there are for the Ola Hawaii Summary reports.
        /// Uses Rmatrix Summary drop downs as they are the same for Ola Hawaii reports.
        /// </summary>
        private void BindControl()
        {
            using (ProjectTrackerContainer context = new ProjectTrackerContainer())
            {
                IDictionary <int, string> dropDownSource = new Dictionary <int, string>();

                //11  RmatrixSummary Projects
                //12  RmatrixSummary HealthcareData
                //13  RmatrixSummary NonUH
                //14  RmatrixSummary Publications
                //15  RmatrixSummary AbstractsPresentations
                //16  RmatrixSummary Academic
                dropDownSource = context.BiostatReports
                                 .Where(b => b.ReportType == "RmatrixSummary")
                                 .OrderBy(b => b.Id)
                                 .ToDictionary(c => c.Id, c => c.ReportName);

                PageUtility.BindDropDownList(ddlReport, dropDownSource, "--- Select Report ---");
            }
        }
        private void BindRptNewInvoice(int invoiceId)
        {
            if (invoiceId > 0)
            {
                using (ProjectTrackerContainer db = new ProjectTrackerContainer())
                {
                    var invoice = db.Invoice1Set.FirstOrDefault(n => n.Id == invoiceId);

                    if (invoice != null)
                    {
                        var query = db.P_INVOICE_HOURS(invoice.CollabCtrId, invoice.Id, invoice.StartDate, invoice.EndDate, false);

                        db.SaveChanges();

                        rptNewInvoice.DataSource = query;
                        rptNewInvoice.DataBind();
                    }
                }
            }
        }
Exemple #5
0
        public List<Project> GetAllProjects()
        {
            var projects = new List<Project>();
            using (ProjectTrackerContainer container = new ProjectTrackerContainer())
            {
                var proj = container.dProjects.Select(x => x);
                projects = (from p in proj
                            select new Project()
                            {
                                DueDate = p.DueDate,
                                Priority = p.Priority,
                                Title = p.Title,
                                StartDate = p.StartDate,
                                Status = p.Status,
                                ID = p.Id
                            }).ToList();
            }


            return projects;
        }
Exemple #6
0
        public Project GetProject(int ID)
        {
            var proj = new Project();
            using (ProjectTrackerContainer container = new ProjectTrackerContainer())
            {
                var dProj = container.dProjects.Find(ID);
                if (dProj == null)
                    return null;

                proj = new Project()
                {
                    Title = dProj.Title,
                    DueDate = dProj.DueDate,
                    Priority = dProj.Priority,
                    Status = dProj.Status,
                    StartDate = dProj.StartDate,
                    ID = dProj.Id,
                };
            }
            return proj;
        }
Exemple #7
0
        public int UpdateProject(Project p)
        {
            using (ProjectTrackerContainer container = new ProjectTrackerContainer())
            {
                var proj = container.dProjects.Find(p.ID);
                if (proj == null)
                    return -1;
                proj.Title = p.Title;
                //
                proj.DueDate = p.DueDate;
                proj.StartDate = p.StartDate;
                proj.Status = p.Status;
                proj.Priority = p.Priority;

                container.SaveChanges();


                return container.dProjects.Where(x => x.Id == p.ID).Select(x => x.Id).SingleOrDefault();

            }
        }
        private void BindControl()
        {
            IDictionary <int, string> dropDownSource = new Dictionary <int, string>();
            int ccid = 0;

            using (ProjectTrackerContainer db = new ProjectTrackerContainer())
            {
                //dropDownSource = db.BioStats
                //                //.Where(b => b.EndDate > DateTime.Now)
                //                .OrderByDescending(b => b.Id)
                //                .ToDictionary(c => c.Id, c => c.Name);

                //PageUtility.BindDropDownList(ddlBiostatHdn, dropDownSource, "- Select -");

                Int32.TryParse(Request.QueryString["CCId"], out ccid);

                txtCCId.Value = ccid.ToString();

                //dropDownSource = db.ClientAgmt
                //                .Where(a => a.CollabCtr.Id == ccid)
                //                .ToDictionary(c => c.Id, c => c.CollabCtr.NameAbbrv + "-" + c.Id);

                //PageUtility.BindDropDownList(ddlAgreementHdn, dropDownSource, "--- Select ---");

                dropDownSource = db.CollabCtr
                                 .OrderBy(c => c.Id)
                                 .Where(c => c.Id > 0)
                                 .Select(x => new { x.Id, FullName = (x.NameAbbrv + " | " + x.Name) })
                                 .ToDictionary(c => c.Id, c => c.FullName);

                PageUtility.BindDropDownList(ddlCollab, dropDownSource, string.Empty);
            }

            //BindgvInvoiceItem(-1);

            BindRptInvoice();

            //if (ccid > 0)
            //    BindRptNewInvoice(ccid);
        }
Exemple #9
0
        internal void SaveGrantBiostat(int grantId, List <GrantBiostat> lstBiostat)
        {
            using (ProjectTrackerContainer db = new ProjectTrackerContainer())
            {
                //var grantBiostats = db.GrantBiostats.Where(b => b.GrantId == grantId);

                //List<int> lstNewBiostat = new List<int>();

                foreach (var biostat in lstBiostat)
                {
                    var biostatDB = db.GrantBiostats.FirstOrDefault(g => g.Id == biostat.Id);
                    //(g => g.GrantId == biostat.GrantId && g.BiostatId == biostat.BiostatId);

                    if (biostatDB != null)
                    {
                        biostatDB.Pct  = biostat.Pct;
                        biostatDB.Fee  = biostat.Fee;
                        biostatDB.Year = biostat.Year;
                        biostatDB.Note = biostat.Note;
                    }
                    else
                    {
                        db.GrantBiostats.Add(biostat);
                    }

                    //lstNewBiostat.Add(biostat.BiostatId);
                }

                //foreach (var grantBiostat in grantBiostats.ToList())
                //{
                //    if (lstNewBiostat.IndexOf(grantBiostat.BiostatId) == -1)
                //    {
                //        db.GrantBiostats.Remove(grantBiostat);
                //    }
                //}

                db.SaveChanges();
            }
        }
Exemple #10
0
        /// <summary>
        /// Obtains the RMATRIX report table from the database with the dates specified.
        /// </summary>
        /// <returns>Table of project to report monthly to RMATRIX (Ms. Grace Matsuura, GDO Data Coordinator).</returns>
        private DataTable GetRmatrixTable()
        {
            DateTime  fromDate, toDate;
            DataTable dt = new DataTable("RMATRIX");

            //int year = reportDate.Year;
            //int month = reportDate.Month;
            //var firstDay = new DateTime(year, month, 1);
            //var lastDay = new DateTime(year, month, DateTime.DaysInMonth(year, month));

            if (DateTime.TryParse(txtFromDate.Text, out fromDate) && DateTime.TryParse(txtToDate.Text, out toDate))
            {
                using (ProjectTrackerContainer dbContext = new ProjectTrackerContainer())
                {
                    var query = dbContext.vwProject
                                .Where(p => p.ReportDate >= fromDate &&
                                       p.ReportDate <= toDate
                                       );

                    if (chkRmatrix.Checked)
                    {
                        query = query.Where(p => (bool)p.IsRmatrix);
                    }
                    else
                    {
                        query = query.Where(p => !(bool)p.IsRmatrix &&
                                            !(bool)p.NotReportRmatrix &&
                                            (int)p.IsInternal == 0 &&
                                            p.IsPilot == "N"
                                            );
                    }

                    dt = PageUtility.ToDataTable(query.ToList());
                    hdnRowCount.Value = query.Count().ToString();
                }
            }

            return(dt);
        }
Exemple #11
0
        private DataTable GetSurveyAll()
        {
            DataTable dt = new DataTable("surveyTable");

            dt.Columns.Add("ProjectId", System.Type.GetType("System.Int32"));
            dt.Columns.Add("ProjectTitle", System.Type.GetType("System.String"));
            dt.Columns.Add("SendTo", System.Type.GetType("System.String"));
            dt.Columns.Add("Responded", System.Type.GetType("System.String"));
            dt.Columns.Add("RespondDate", System.Type.GetType("System.String"));
            dt.Columns.Add("Id", System.Type.GetType("System.String"));
            dt.Columns.Add("SendDate", System.Type.GetType("System.String"));

            using (ProjectTrackerContainer db = new ProjectTrackerContainer())
            {
                var query = db.SurveyForms
                            .Select(t => new { t.Id, t.ProjectId, t.ProjectTitle, t.SendTo, t.Responded, t.RespondDate, t.RequestDate })
                            .OrderByDescending(t => t.RequestDate);


                foreach (var p in query.ToList())
                {
                    DataRow row = dt.NewRow();

                    row[0] = p.ProjectId;
                    row[1] = p.ProjectTitle;
                    row[2] = p.SendTo;
                    row[3] = p.Responded ? "Yes" : "No";
                    row[4] = p.RespondDate != null?Convert.ToDateTime(p.RespondDate).ToShortDateString() : "";

                    row[5] = p.Id;
                    row[6] = p.RequestDate != null?Convert.ToDateTime(p.RequestDate).ToShortDateString() : "";

                    dt.Rows.Add(row);
                }
            }

            return(dt);
        }
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (Page.User.IsInRole("Super"))
            {
                if (e.CommandName == "InsertNew")
                {
                    GridViewRow row = GridView1.FooterRow;

                    TextBox txtName    = row.FindControl("txtNameNew") as TextBox;
                    TextBox txtType    = row.FindControl("txtTypeNew") as TextBox;
                    TextBox txtEmail   = row.FindControl("txtEmailNew") as TextBox;
                    TextBox txtLogonId = row.FindControl("txtLogonIdNew") as TextBox;
                    TextBox txtEndDate = row.FindControl("txtEndDateNew") as TextBox;

                    if (txtName != null && txtEmail != null && txtLogonId != null)
                    {
                        using (ProjectTrackerContainer context = new ProjectTrackerContainer())
                        {
                            BioStat biostat = new BioStat()
                            {
                                Name    = txtName.Text,
                                Type    = txtType.Text,
                                Email   = txtEmail.Text,
                                LogonId = txtLogonId.Text,
                                EndDate = DateTime.Parse(txtEndDate.Text)
                            };

                            context.BioStats.Add(biostat);

                            WriteInvest(context, biostat);

                            BindGrid();
                        }
                    }
                }
            }
        }
        private int SaveCC(CollabCtr cc)
        {
            int ccid = -1;

            try
            {
                using (ProjectTrackerContainer db = new ProjectTrackerContainer())
                {
                    if (cc.Id > 0) //update
                    {
                        var prevCC = db.CollabCtr.FirstOrDefault(c => c.Id == cc.Id);

                        if (prevCC != null)
                        {
                            db.Entry(prevCC).CurrentValues.SetValues(cc);
                        }
                    }
                    else //new
                    {
                        db.CollabCtr.Add(cc);
                    }

                    db.SaveChanges();
                    ccid = cc.Id;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                //
            }

            return(ccid);
        }
Exemple #14
0
        //// GET api/<controller>/5
        //public string Get(int id)
        //{
        //    return "value";
        //}

        // GET api/<controller>/5/d/d
        public List <decimal> GetProjectHours(int projectId, string startDate, string endDate)
        {
            List <decimal> projectHours = new List <decimal>();
            DateTime       dateStart, dateEnd;

            if (DateTime.TryParse(startDate, out dateStart) && (DateTime.TryParse(endDate, out dateEnd)))
            {
                if (dateEnd > dateStart && projectId > 0)
                {
                    decimal workedPhd = 0.0M, workedMS = 0.0M;
                    using (ProjectTrackerContainer context = new ProjectTrackerContainer())
                    {
                        ObjectParameter phdHours = new ObjectParameter("PhdHours", typeof(decimal));
                        ObjectParameter msHours  = new ObjectParameter("MSHours", typeof(decimal));

                        //phdHours.Value = 0.0M;
                        //msHours.Value = 0.0M;

                        var i = context.P_PROJECT_HOURS(dateStart, dateEnd, projectId, phdHours, msHours);
                        context.SaveChanges();

                        Decimal.TryParse(phdHours.Value.ToString(), out workedPhd);
                        Decimal.TryParse(msHours.Value.ToString(), out workedMS);

                        projectHours.Add(workedPhd);
                        projectHours.Add(workedMS);
                    }
                }
            }
            else
            {
                projectHours.Add(0.0m);
                projectHours.Add(0.0m);
            }

            return(projectHours);
        }
Exemple #15
0
        /// <summary>
        /// (CURRENTLY NOT BEING USED.) Saves Academic Entry
        /// </summary>
        /// <param name="academicTypeeId"></param>
        /// <param name="biostatBitSum"></param>
        private void SaveAcademic(int academicTypeId, int biostatBitSum)
        {
            Academic newAca = new Academic()
            {
                AcademicTypeId = academicTypeId,
                BiostatBitSum  = biostatBitSum,
                Title          = "",
                Organization   = "",
                Audience       = "",
                Comments       = txtComments.Value,
                Creator        = Page.User.Identity.Name,
                CreationDate   = DateTime.Now
            };

            DateTime dt1, dt2;
            int      intOutput;

            switch (academicTypeId)
            {
            case 1:
                newAca.Organization   = txtOrganization.Value;
                newAca.Title          = txtTitle.Value;
                newAca.Audience       = txtAudience.Value;
                newAca.StartDate      = DateTime.TryParse(txtStartDate.Text, out dt1) ? dt1 : (DateTime?)null;
                newAca.EndDate        = DateTime.TryParse(txtEndDate.Text, out dt2) ? dt2 : (DateTime?)null;
                newAca.NumOfAttendees = Int32.TryParse(txtNumOfAttendees.Value, out intOutput) ? intOutput : (Int32?)null;
                newAca.CourseNum      = txtCourseNum.Value;
                break;
            }

            using (ProjectTrackerContainer db = new ProjectTrackerContainer())
            {
                db.Academic.Add(newAca);
                db.SaveChanges();
            }
        }
Exemple #16
0
        private DataTable GetClientRqstAll()
        {
            DataTable dt = new DataTable("clientRqstTable");

            dt.Columns.Add("Id", System.Type.GetType("System.Int32"));
            dt.Columns.Add("FirstName", System.Type.GetType("System.String"));
            dt.Columns.Add("LastName", System.Type.GetType("System.String"));
            dt.Columns.Add("ProjectTitle", System.Type.GetType("System.String"));
            dt.Columns.Add("CreateDate", System.Type.GetType("System.String"));
            dt.Columns.Add("Status", System.Type.GetType("System.String"));

            using (ProjectTrackerContainer db = new ProjectTrackerContainer())
            {
                var query = db.ClientRequest
                            .Select(t => new { t.Id, t.FirstName, t.LastName, t.ProjectTitle, t.CreationDate, t.RequestStatus })
                            .OrderByDescending(t => t.Id);


                foreach (var p in query.OrderByDescending(p => p.Id).ToList())
                {
                    DataRow row = dt.NewRow();

                    row[0] = p.Id;
                    row[1] = p.FirstName;
                    row[2] = p.LastName;
                    row[3] = p.ProjectTitle;
                    row[4] = p.CreationDate != null?Convert.ToDateTime(p.CreationDate).ToShortDateString() : "";

                    row[5] = p.RequestStatus;

                    dt.Rows.Add(row);
                }
            }

            return(dt);
        }
Exemple #17
0
        private void BindSurvey(string surveyId)
        {
            SurveyForm survey = null;
            List <KeyValuePair <int, int> > questionAnswers = new List <KeyValuePair <int, int> >();

            using (ProjectTrackerContainer db = new ProjectTrackerContainer())
            {
                var questions = db.SurveyQuestions
                                .OrderBy(q => q.OrderId)
                                .Select(s => new { s.Id, s.Question })
                                .ToList();
                gvQuestion.DataSource = questions;
                gvQuestion.DataBind();

                var surveyDb = db.SurveyForms.FirstOrDefault(s => s.Id == surveyId);
                survey = surveyDb;

                var surveyAnswers = db.SurveyFormAnswers
                                    .Where(s => s.FormId == surveyId)
                                    .Select(s => new { s.QuestionId, s.OptionId });

                foreach (var sa in surveyAnswers)
                {
                    questionAnswers.Add(new KeyValuePair <int, int>(sa.QuestionId, sa.OptionId));
                }
            }

            if (survey != null && survey.Responded)
            {
                if (questionAnswers.Count > 0)
                {
                    foreach (GridViewRow row in gvQuestion.Rows)
                    {
                        Label lblId      = row.FindControl("lblId") as Label;
                        int   questionId = 0;
                        Int32.TryParse(lblId.Text, out questionId);

                        if (questionId > 0)
                        {
                            for (int i = 1; i < 9; i++)
                            {
                                string   chkName = "chk" + i.ToString();
                                CheckBox chkBox  = (row.FindControl(chkName) as CheckBox);
                                if (questionAnswers.Contains(new KeyValuePair <int, int>(questionId, i)))
                                {
                                    chkBox.Checked = true;
                                    continue;
                                }
                            }
                        }
                    }
                }

                txtComments.Text = survey.Comment;

                StringBuilder script = new StringBuilder();

                if (survey.Recommend != null)
                {
                    script.Append("<script>");

                    if ((bool)survey.Recommend)
                    {
                        script.Append("if (!document.getElementById('option1').checked){document.getElementById('option1').checked=true;} ");
                    }
                    else
                    {
                        script.Append("if (!document.getElementById('option2').checked){document.getElementById('option2').checked=true;} ");
                    }

                    script.Append("</script>");
                    ClientScript.RegisterStartupScript(GetType(), "Javascript", script.ToString());
                }

                //DisableUI();
            }
        }
Exemple #18
0
        private bool SaveSurvey(SurveyForm survey, ProjectTrackerContainer db)
        {
            bool saved = false;

            var questionAnswers = new List <KeyValuePair <int, int> >();

            foreach (GridViewRow row in gvQuestion.Rows)
            {
                Label lblId      = row.FindControl("lblId") as Label;
                int   questionId = 0;
                Int32.TryParse(lblId.Text, out questionId);

                if (questionId > 0)
                {
                    for (int i = 1; i < 9; i++)
                    {
                        string   chkName = "chk" + i.ToString();
                        CheckBox chkBox  = (row.FindControl(chkName) as CheckBox);
                        if (chkBox.Checked)
                        {
                            questionAnswers.Add(new KeyValuePair <int, int>(questionId, i));
                            continue;
                        }
                    }
                }
            }

            foreach (var qOption in questionAnswers)
            {
                SurveyFormAnswer fa = new SurveyFormAnswer()
                {
                    FormId     = survey.Id,
                    QuestionId = qOption.Key,
                    OptionId   = qOption.Value
                };

                db.SurveyFormAnswers.Add(fa);
            }

            string recommend = "No";

            if (Request.Form["options"] != null)
            {
                recommend = Request.Form["options"].ToString();
            }

            survey.Recommend = recommend == "Yes" ? true : false;
            survey.Comment   = txtComments.Text.Length > 500 ? txtComments.Text.Substring(0, 500) : txtComments.Text;

            survey.Responded   = true;
            survey.RespondDate = DateTime.Now;

            try
            {
                db.SaveChanges();
                saved = true;
            }
            catch (Exception ex)
            {
                throw new Exception("An Error Has Occurred. " + ex.Message);
            }

            return(saved);
        }
Exemple #19
0
        protected void ddlBiostat_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList ddl = (DropDownList)sender;

            int biostatId = 0;

            Int32.TryParse(ddl.SelectedValue, out biostatId);

            if (biostatId > 0)
            {
                GridViewRow row = (GridViewRow)ddl.Parent.Parent;

                if (row != null)
                {
                    DropDownList ddlAgreement = row.FindControl("ddlAgreement") as DropDownList;

                    int agmtId = 0;
                    Int32.TryParse(ddlAgreement.SelectedValue, out agmtId);

                    DateTime dtStart, dtEnd = Convert.ToDateTime("2099-01-01");
                    bool     validateDate = DateTime.TryParse(txtStartDate.Text, out dtStart) && DateTime.TryParse(txtEndDate.Text, out dtEnd);

                    if (agmtId > 0 && validateDate)
                    {
                        TextBox txtRate           = row.FindControl("txtRate") as TextBox;
                        TextBox txtCompletedHours = row.FindControl("txtCompletedHours") as TextBox;

                        using (ProjectTrackerContainer db = new ProjectTrackerContainer())
                        {
                            var agmt    = db.ClientAgmt.FirstOrDefault(t => t.Id == agmtId);
                            var biostat = db.BioStats.FirstOrDefault(b => b.Id == biostatId);

                            if (agmt != null)
                            {
                                txtRate.Text = biostat.Type == "phd" ? agmt.ApprovedPhdRate.ToString() : agmt.ApprovedMsRate.ToString();

                                string query = string.Format(@"SELECT SUM(t.Duration) 
                                                            FROM TimeEntries t
                                                            INNER JOIN Date d
	                                                            ON d.DateKey = t.DateId
                                                            INNER JOIN ProjectPhase p
	                                                            ON t.ProjectId = p.ProjectId
		                                                            AND t.PhaseId = p.Id
                                                            WHERE t.ProjectId = {0}
	                                                            and t.BioStatId = {1}
	                                                            and p.Name = '{2}'
	                                                            and d.[Date] BETWEEN '{3}' AND '{4}'"
                                                             , agmt.Project2Id
                                                             , biostatId
                                                             , agmt.ProjectPhase
                                                             , dtStart.ToShortDateString()
                                                             , dtEnd.ToShortDateString()
                                                             );

                                var totalHours = db.Database.SqlQuery <decimal?>(query);

                                if (totalHours.FirstOrDefault() != null)
                                {
                                    txtCompletedHours.Text = totalHours.FirstOrDefault().ToString();
                                }
                            }
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Loads Collaborative Center form given id.
        /// </summary>
        /// <param name="id">Referred collab center id.</param>
        private void LoadCCForm(int id)
        {
            collabCtrProjSxn.Visible       = true;
            collabCtrClientAgmtSxn.Visible = true;

            var dropDownSource        = new Dictionary <int, string>();
            var dropDownSourcewString = new Dictionary <string, string>();

            /// Populates dropdowns of projects and client agreements associated with the collaboration center.
            using (ProjectTrackerContainer db = new ProjectTrackerContainer())
            {
                /// List of Collab Centers
                dropDownSource = db.CollabCtr
                                 .OrderBy(c => c.NameAbbrv)
                                 .Where(c => c.Id > 0)
                                 .Select(x => new { x.Id, FullName = (x.NameAbbrv + " | " + x.Name) })
                                 .ToDictionary(c => c.Id, c => c.FullName);
                PageUtility.BindDropDownList(ddlCollab, dropDownSource, string.Empty);

                /// Pulls list of projects associated with collaborative center OR
                /// if collaborative center is SONDH, pulls the projects with
                /// "MOU" listed as the grant payment.
                dropDownSource = db.Project2
                                 .GroupJoin(
                    db.JabsomAffils,
                    p => p.GrantDepartmentFundingType,
                    ja => ja.Id,
                    (p, ja) => new { p, ja })
                                 .Where(y => y.p.ClientAgmt.FirstOrDefault().CollabCtrId == id ||
                                        (id == 116 &&
                                         y.ja.FirstOrDefault().Name == "School of Nursing & Dental Hygiene") &&
                                        (y.p.IsMOU == 1 || y.p.GrantOther.Contains("MOU") || (y.p.AknOther.Contains("MOU"))))
                                 .OrderByDescending(y => y.p.Id)
                                 .Select(x => new { x.p.Id, FullName = (x.p.Id + " " + x.p.Title).Substring(0, 150) })
                                 .Distinct()
                                 .ToDictionary(d => d.Id, d => d.FullName);


                PageUtility.BindDropDownList(ddlCollabCtrProjects, dropDownSource, "-- List of Projects for Collaborative Center --");

                /// Pulls list of Client Agreements associated with collaborative center.
                dropDownSourcewString = db.ClientAgmt
                                        .Join(db.CollabCtr, ca => ca.CollabCtrId, cct => cct.Id, (ca, cct) => new { ca, cct })
                                        .Where(z => z.ca.CollabCtrId == id)
                                        .OrderByDescending(y => y.ca.Id)
                                        .Select(x => new { /*x.ca.Id*/ x.ca.AgmtId, FullName = (x.ca.Id + " - " + x.ca.AgmtId + " - " + x.ca.ProjectPhase + " - Project ID " + x.ca.Project2Id).Substring(0, 150) })
                                        .Distinct()
                                        .ToDictionary(d => d.AgmtId, d => d.FullName);

                PageUtility.BindDropDownList(ddlCollabCtrClientAgmts, dropDownSourcewString, "-- List of Client Agreements for Collaborative Center --");
            }


            CollabCtr cc = GetCollabCtrById(id);

            if (cc != null)
            {
                SetCollabCtr(cc);

                if (cc.Id > 0)
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                                                            "ModalScript", PageUtility.LoadEditScript(true), false);
                }
            }
        }
Exemple #21
0
        /// <summary>
        /// Allows row to be edited upon clicking edit button.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;


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

            using (ProjectTrackerContainer context = new ProjectTrackerContainer())
            {
                /// Populates "User Rights" checkbox grid in Admin/StaffForm page.
                var qUserRights = context.AspNetRoles.OrderBy(x => ((x.Name == "Super") ? 1 :
                                                                    ((x.Name == "Admin") ? 2 :
                                                                     ((x.Name == "Biostat") ? 3 : 4)))).ToList();



                Repeater rptUserRights = (Repeater)GridView1.Rows[e.NewEditIndex].FindControl("rptUserRights");
                if (rptUserRights != null)
                {
                    rptUserRights.DataSource = qUserRights;
                    rptUserRights.DataBind();

                    Label lblUserName = (Label)GridView1.Rows[e.NewEditIndex].FindControl("lblLogonId");


                    string userName = lblUserName.Text;

                    // Check if Biostat is registered user.
                    var  listRgstdUsers      = context.AspNetUsers.Select(x => x.UserName).ToList();
                    bool isBiostatRegistered = false;

                    isBiostatRegistered = (listRgstdUsers.Where(x => x.Contains(userName)).FirstOrDefault() != null) ? true : false;

                    List <IEnumerable <string> > qRightsOfCurrUser = null;

                    if (isBiostatRegistered == true)
                    {
                        // Obtains list of user roles for row QHS faculty/staff.
                        qRightsOfCurrUser = context.AspNetUsers
                                            .Where(x => x.UserName == userName)
                                            .Select(y => y.AspNetRoles.Select(z => z.Name)).ToList();

                        //Make appropriate user rights checked.
                        foreach (RepeaterItem item in rptUserRights.Items)
                        {
                            CheckBox checkbox = item.FindControl("chkId") as CheckBox;
                            if (checkbox != null)
                            {
                                // Checks checkbox if the current checkbox exist in rights of current user.
                                var currRights = checkbox.Text;

                                bool doesBiostathaveRights = (currRights != null && qRightsOfCurrUser.Where(x => x.Contains(currRights)).FirstOrDefault() != null)
                                                                ? true : false;

                                if (qRightsOfCurrUser.Count > 0 && doesBiostathaveRights == true)
                                {
                                    checkbox.Checked = true;
                                }
                            }
                        }
                    }
                }
            }

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

            BindGrid();
        }
Exemple #22
0
        /// <summary>
        ///  Pulls the grant table based on whether or not a principal investigator,
        ///  QHS staff, fund status, or internal/external dropdown value was specified.
        /// </summary>
        /// <param name="piId">Referred Principal Investigator.</param>
        /// <param name="biostatId">Referred QHS Faculty/Staff.</param>
        /// <param name="fundStatusId">Fund status (unknown, funded, not funded, pending).</param>
        /// <param name="exinternal">Specify whether grant is internal or external.</param>
        /// <returns></returns>
        internal DataTable GetGrantAll(int piId, int biostatId, int fundStatusId, int exinternal)
        {
            DataTable dt = new DataTable("grantTable");

            dt.Columns.Add("Id", System.Type.GetType("System.Int32"));
            dt.Columns.Add("PI", System.Type.GetType("System.String"));
            dt.Columns.Add("ProjectId", System.Type.GetType("System.Int32"));
            dt.Columns.Add("Biostat", System.Type.GetType("System.String"));
            dt.Columns.Add("GrantTitle", System.Type.GetType("System.String"));
            dt.Columns.Add("GrantStatus", System.Type.GetType("System.String"));
            dt.Columns.Add("FundStatus", System.Type.GetType("System.String"));
            dt.Columns.Add("FundDate", System.Type.GetType("System.String"));
            dt.Columns.Add("InitDate", System.Type.GetType("System.String"));

            using (ProjectTrackerContainer db = new ProjectTrackerContainer())
            {
                //var pi, biostat, fundStatus;
                string piName = string.Empty, biostatName = string.Empty, fundStatusName = string.Empty;
                bool   isInternal = false;

                var query = db.ViewGrants.Where(g => g.Id > 0);

                if (piId > 0)
                {
                    var pi = db.Invests.FirstOrDefault(p => p.Id == piId);
                    if (pi != null)
                    {
                        piName = pi.FirstName + ' ' + pi.LastName;
                        query  = query.Where(q => q.PI.Contains(piName));
                    }
                }

                if (biostatId > 0)
                {
                    var biostat = db.BioStats.FirstOrDefault(b => b.Id == biostatId);
                    if (biostat != null)
                    {
                        biostatName = biostat.Name;
                        query       = query.Where(q => q.Biostat.Contains(biostatName));
                    }
                }

                if (fundStatusId != 0)
                {
                    var fundStatus = db.GrantFundStatus.FirstOrDefault(f => f.Id == fundStatusId);
                    if (fundStatus != null)
                    {
                        fundStatusName = fundStatus.StatusValue;
                        query          = query.Where(q => q.FundStatus == fundStatusName);
                    }
                }

                if (exinternal > 0)
                {
                    isInternal = exinternal == 1 ? false : true;
                    query      = query.Where(q => q.IsInternal == isInternal);
                }

                foreach (var p in query.OrderByDescending(p => p.Id).ToList())
                {
                    DataRow row = dt.NewRow();

                    row["Id"]          = p.Id;
                    row["PI"]          = p.PI;
                    row["Biostat"]     = p.Biostat;
                    row["GrantTitle"]  = p.GrantTitle;
                    row["GrantStatus"] = p.GrantStatus;
                    row["FundStatus"]  = p.FundStatus;
                    row["FundDate"]    = p.FundDate;
                    row["InitDate"]    = p.InitDate;
                    row["ProjectId"]   = p.ProjectId;

                    dt.Rows.Add(row);
                }
            }

            return(dt);
        }
Exemple #23
0
        /// <summary>
        /// Prepares row data (only need user rights checkboxes for now).
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            using (ProjectTrackerContainer context = new ProjectTrackerContainer())
            {
                /// Populates "User Rights" checkbox grid in Admin/StaffForm page.
                var qUserRights = context.AspNetRoles.OrderBy(x => ((x.Name == "Super") ? 1 :
                                                                    ((x.Name == "Admin") ? 2 :
                                                                     ((x.Name == "Biostat") ? 3 : 4)))).ToList();


                Repeater rptUserRights = (Repeater)e.Row.FindControl("rptUserRights");
                if (e.Row.RowType == DataControlRowType.DataRow && rptUserRights != null)
                {
                    rptUserRights.DataSource = qUserRights;
                    rptUserRights.DataBind();

                    Label   lblUserName = (Label)e.Row.FindControl("lblLogonId");
                    TextBox txtUserName = (TextBox)e.Row.FindControl("txtLogonId");
                    string  userName    = lblUserName != null ? lblUserName.Text : txtUserName != null ? txtUserName.Text : "";


                    // Check if Biostat is registered user.
                    var  listRgstdUsers      = context.AspNetUsers.Select(x => x.UserName).ToList();
                    bool isBiostatRegistered = false;

                    if (userName != "")
                    {
                        isBiostatRegistered = (listRgstdUsers.Where(x => x.Contains(userName)).FirstOrDefault() != null) ? true : false;

                        List <IEnumerable <string> > qRightsOfCurrUser = null;

                        if (isBiostatRegistered == true)
                        {
                            // Obtains list of user roles for row QHS faculty/staff.
                            qRightsOfCurrUser = context.AspNetUsers
                                                .Where(x => x.UserName == userName)
                                                .Select(y => y.AspNetRoles.Select(z => z.Name)).ToList();

                            // Make appropriate user rights checked.
                            foreach (RepeaterItem item in rptUserRights.Items)
                            {
                                CheckBox checkbox = item.FindControl("chkId") as CheckBox;
                                if (checkbox != null)
                                {
                                    // Disables checkbox in intial page load.
                                    // checkbox.Enabled = false; (now handled on front end)

                                    // Checks checkbox if the current checkbox exist in rights of current user.
                                    var currRights = checkbox.Text;

                                    bool doesBiostathaveRights = (currRights != null && qRightsOfCurrUser.Where(x => x.Contains(currRights)).FirstOrDefault() != null)
                                                                    ? true : false;

                                    if (qRightsOfCurrUser.Count > 0 && doesBiostathaveRights == true)
                                    {
                                        checkbox.Checked = true;
                                    }
                                }
                            }
                        }
                        else
                        {
                            // Hides checkboxes if there is no registered account for the faculty/staff member.
                            rptUserRights.Visible = false;
                        }
                    }
                    else
                    {
                        e.Row.Cells[7].BackColor = Color.IndianRed;
                    }
                }
            }
        }
Exemple #24
0
        protected void DownloadFile(object sender, EventArgs e)
        {
            //string filePath = (sender as LinkButton).CommandArgument;
            //Response.ContentType = ContentType;
            //Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
            //Response.WriteFile(filePath);
            //Response.End();

            int    id      = 0;
            string ccAbbrv = txtCCAbbrv.Value,
                   agmtId  = txtAgmtId.Value,
                   strId   = txtId.Value;

            //char[] delimiter = { '-', '_' };
            //string txtId = agmtId.Split(delimiter)[1];

            Int32.TryParse(strId, out id);

            if (id > 0)
            {
                DataTable fileTable = new DataTable();
                fileTable.Columns.Add("FileName", System.Type.GetType("System.String"));
                fileTable.Columns.Add("FileUpload", typeof(byte[]));

                using (ProjectTrackerContainer db = new ProjectTrackerContainer())
                {
                    var query = db.ClientAgmt
                                .Where(c => c.Id == id)
                                .Select(x => new { x.FileName, x.FileUpload });

                    if (query != null)
                    {
                        foreach (var item in query.ToList())
                        {
                            DataRow dr = fileTable.NewRow();

                            dr[0] = item.FileName;
                            dr[1] = item.FileUpload;

                            fileTable.Rows.Add(dr);
                        }
                    }
                }

                if (fileTable.Rows.Count > 0)
                {
                    DataRow row = fileTable.Rows[0];

                    string name = (string)row["FileName"];
                    //string contentType = (string)row["ContentType"];
                    Byte[] data = (Byte[])row["FileUpload"];

                    // Send the file to the browser
                    //Response.AddHeader("Content-type", contentType);
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + name);
                    Response.BinaryWrite(data);
                    Response.Flush();
                    Response.End();
                }
            }
        }
Exemple #25
0
        private DataTable CreateAgreementDataTable(bool isFromDb)
        {
            int collabId = 0;

            Int32.TryParse(ddlCollab.SelectedValue, out collabId);

            DataTable dt = new DataTable("tblClientAgmt");

            if (isFromDb)
            {
                dt.Columns.Add("Id", System.Type.GetType("System.Int32"));
            }
            dt.Columns.Add("AgmtId", System.Type.GetType("System.String"));
            dt.Columns.Add("PIName", System.Type.GetType("System.String"));
            dt.Columns.Add("ProjectId", System.Type.GetType("System.Int32"));
            dt.Columns.Add("ProjectPhase", System.Type.GetType("System.String"));
            dt.Columns.Add("ProjectTitle", System.Type.GetType("System.String"));
            dt.Columns.Add("ClientRefNum", System.Type.GetType("System.String"));
            dt.Columns.Add("ApprovedPhdRate", System.Type.GetType("System.String"));
            dt.Columns.Add("ApprovedPhdHr", System.Type.GetType("System.String"));
            dt.Columns.Add("InvoicedPhdHr", System.Type.GetType("System.String"));
            dt.Columns.Add("RemainingPhdHr", System.Type.GetType("System.String"));
            dt.Columns.Add("ApprovedMsRate", System.Type.GetType("System.String"));
            dt.Columns.Add("ApprovedMsHr", System.Type.GetType("System.String"));
            dt.Columns.Add("InvoicedMsHr", System.Type.GetType("System.String"));
            dt.Columns.Add("RemainingMsHr", System.Type.GetType("System.String"));

            dt.Columns.Add("RequestDate", System.Type.GetType("System.String"));
            dt.Columns.Add("ApprovalDate", System.Type.GetType("System.String"));
            dt.Columns.Add("ClientApprovalDate", System.Type.GetType("System.String"));
            dt.Columns.Add("CompletionDate", System.Type.GetType("System.String"));
            //dt.Columns.Add("CollabCtr", System.Type.GetType("System.String"));
            //dt.Columns.Add("EndDate", System.Type.GetType("System.String"));
            //dt.Columns.Add("BillingSchedule", System.Type.GetType("System.String"));

            dt.Columns.Add("Status", System.Type.GetType("System.String"));

            if (isFromDb)
            {
                using (ProjectTrackerContainer db = new ProjectTrackerContainer())
                {
                    ////var query = db.ClientAgmt
                    ////            .Join(db.CollabCtr, a => a.CollabCtrId, c => c.Id, (a, c) => new {a, c.NameAbbrv})
                    ////            .Join(db.Projects, ca => ca.a.ProjectId, p => p.Id,
                    ////                (ca, p) => new {ca, p.Title}
                    ////            );

                    //var qInvoice = from i in db.InvoiceItem2
                    //               //join b in db.BioStats on i.BiostatId equals b.Id
                    //               select new { i.ClientAgmtId, i.StaffType, i.InvoiceHr} into s
                    //               group s by new { s.ClientAgmtId, s.StaffType } into g
                    //               select new
                    //               {
                    //                   ClientAgmtId = g.Key.ClientAgmtId,
                    //                   PhdInvoiceHr = g.Where(t => t.StaffType == "phd").Sum(t => t.InvoiceHr),
                    //                   MsInvoiceHr = g.Where(t => t.StaffType != "phd").Sum(t => t.InvoiceHr)
                    //               };

                    //var query = from a in db.ClientAgmt
                    //            join i in qInvoice on a.Id equals i.ClientAgmtId
                    //            join p in db.Project2 on a.ProjectId equals p.Id
                    //            select new { a.Id, a.AgmtId, a.ProjectId, a.ProjectPhase, p.Title, a.ApprovedPhdHr, a.ApprovedMsHr,
                    //                        PhdInvoiceHr = (i.PhdInvoiceHr == null ? 0 : i.PhdInvoiceHr),
                    //                        MsInvoiceHr = (i.MsInvoiceHr == null ? 0 : i.MsInvoiceHr),
                    //                        a.AgmtStatus, a.CollabCtrId };

                    var query = db.vwAgreement.Where(a => a.CollabCtrId > 0);

                    //foreach (var q in query.OrderBy(a => a.ca.a.CollabCtr.NameAbbrv).ThenByDescending(a => a.ca.a.Id).ToList())
                    if (collabId > 0)
                    {
                        query = query.Where(c => c.CollabCtrId == collabId);
                    }

                    foreach (var q in query.Distinct().ToList())
                    {
                        DataRow dr = dt.NewRow();

                        dr["Id"]                 = q.Id;
                        dr["AgmtId"]             = q.AgmtId;
                        dr["PIName"]             = q.PIName;
                        dr["ProjectId"]          = q.ProjectId;
                        dr["ProjectPhase"]       = q.ProjectPhase;
                        dr["ProjectTitle"]       = q.Title;
                        dr["ClientRefNum"]       = q.ClientRefNum;
                        dr["ApprovedPhdRate"]    = q.ApprovedPhdRate;
                        dr["ApprovedPhdHr"]      = q.ApprovedPhdHr;
                        dr["InvoicedPhdHr"]      = q.PhdInvoiceHr;
                        dr["RemainingPhdHr"]     = q.PhdRemaining;
                        dr["ApprovedMsRate"]     = q.ApprovedMsRate;
                        dr["ApprovedMsHr"]       = q.ApprovedMsHr;
                        dr["InvoicedMsHr"]       = q.MsInvoiceHr;
                        dr["RemainingMsHr"]      = q.MsRemaining;
                        dr["RequestDate"]        = q.RequestDate;
                        dr["ApprovalDate"]       = q.ApprovalDate;
                        dr["ClientApprovalDate"] = q.ClientApprovalDate;
                        dr["CompletionDate"]     = q.CompletionDate;
                        dr["Status"]             = q.AgmtStatus;

                        dt.Rows.Add(dr);
                    }
                }
            }
            else
            {
                foreach (RepeaterItem item in rptClientAgmt.Items)
                {
                    DataRow dr = dt.NewRow();

                    //dr["Id"] = ((Label)item.FindControl("lblId")).Text;
                    dr["AgmtId"]             = ((Label)item.FindControl("lblAgmtId")).Text;
                    dr["PIName"]             = ((Label)item.FindControl("lblPIName")).Text;
                    dr["ProjectId"]          = ((Label)item.FindControl("lblProjectId")).Text;
                    dr["ProjectPhase"]       = ((Label)item.FindControl("lblProjectPhase")).Text;
                    dr["ProjectTitle"]       = ((Label)item.FindControl("lblProjectTitle")).Text;
                    dr["ClientRefNum"]       = ((Label)item.FindControl("lblClientRefNum")).Text;
                    dr["ApprovedPhdRate"]    = ((Label)item.FindControl("lblApprovedPhdRate")).Text;
                    dr["ApprovedPhdHr"]      = ((Label)item.FindControl("lblApprovedPhdHr")).Text;
                    dr["InvoicedPhdHr"]      = ((Label)item.FindControl("lblInvoicedPhdHr")).Text;
                    dr["RemainingPhdHr"]     = ((Label)item.FindControl("lblRemainingPhdHr")).Text;
                    dr["ApprovedMsRate"]     = ((Label)item.FindControl("lblApprovedMsRate")).Text;
                    dr["ApprovedMsHr"]       = ((Label)item.FindControl("lblApprovedMsHr")).Text;
                    dr["InvoicedMsHr"]       = ((Label)item.FindControl("lblInvoicedMsHr")).Text;
                    dr["RemainingMsHr"]      = ((Label)item.FindControl("lblRemainingMsHr")).Text;
                    dr["RequestDate"]        = ((Label)item.FindControl("lblRequestDate")).Text;
                    dr["ApprovalDate"]       = ((Label)item.FindControl("lblApprovalDate")).Text;
                    dr["ClientApprovalDate"] = ((Label)item.FindControl("lblClientApprovalDate")).Text;
                    dr["CompletionDate"]     = ((Label)item.FindControl("lblCompletionDate")).Text;
                    dr["Status"]             = ((Label)item.FindControl("lblStatus")).Text;

                    dt.Rows.Add(dr);
                }

                if (hdnSortOrder.Text.Contains(","))
                {
                    var strSort    = hdnSortOrder.Text.Split(',');
                    var sortColumn = (AgreementExportEnum)Int32.Parse(strSort[0]);
                    var sortOrder  = strSort[1].ToUpper();

                    DataView dvData = new DataView(dt);
                    dvData.Sort = sortColumn + " " + sortOrder;

                    dt = dvData.ToTable();
                }
            }

            return(dt);
        }
 public ProjectTrackerRepository()
 {
     _dbContext = new ProjectTrackerContainer();
 }
Exemple #27
0
        /// <summary>
        /// Prepares initial page load for use.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                using (ProjectTrackerContainer dbContext = new ProjectTrackerContainer())
                {
                    var dropDownSource = new Dictionary <int, string>();

                    var query = dbContext.BioStats.Where(b => b.Id > 0 && b.Id != 99);

                    dropDownSource = query
                                     .Where(b => b.Type == "phd")
                                     .OrderByDescending(b => b.EndDate)
                                     .ThenBy(b => b.Name)
                                     .ToDictionary(b => b.Id, b => b.Name);

                    PageUtility.BindDropDownList(ddlPhd, dropDownSource, " --- Select --- ");

                    dropDownSource = query
                                     .Where(b => b.Type != "phd")
                                     .OrderByDescending(b => b.EndDate)
                                     .ThenBy(b => b.Name)
                                     .ToDictionary(b => b.Id, b => b.Name);

                    PageUtility.BindDropDownList(ddlMs, dropDownSource, " --- Select --- ");

                    dropDownSource = dbContext.InvestStatus
                                     .OrderBy(d => d.DisplayOrder)
                                     .ToDictionary(b => b.Id, b => b.StatusValue);

                    PageUtility.BindDropDownList(ddlPIStatus, dropDownSource, " --- Select --- ");

                    dropDownSource = dbContext.ProjectField
                                     .Where(g => g.GroupName == "HealthData")
                                     .OrderBy(d => d.DisplayOrder)
                                     .ToDictionary(b => b.BitValue, b => b.Name);

                    PageUtility.BindDropDownList(ddlHealthData, dropDownSource, " --- Select --- ");

                    dropDownSource = dbContext.ProjectField
                                     .Where(g => g.GroupName == "Grant")
                                     .OrderBy(d => d.DisplayOrder)
                                     .ToDictionary(b => b.BitValue, b => b.Name);

                    PageUtility.BindDropDownList(ddlGrant, dropDownSource, " --- Select --- ");

                    var affil = dbContext.JabsomAffils
                                .Where(a => a.Type != "Other" && a.Type != "Degree" && a.Type != "Unknown" && a.Name != "Other")
                                .OrderBy(a => a.Id)
                                .Select(x => new { Id = x.Id, Name = x.Name });

                    textAreaAffil.Value = Newtonsoft.Json.JsonConvert.SerializeObject(affil);

                    var piName = dbContext.Invests
                                 .Where(i => i.Id > 0)
                                 .Select(x => new { Id = x.Id, Name = x.FirstName + " " + x.LastName });

                    textAreaPI.Value = Newtonsoft.Json.JsonConvert.SerializeObject(piName);

                    Dictionary <int, string> reportType = new Dictionary <int, string>();
                    /*reportType.Add(1, "Check-in Meeting Report");*/

                    PageUtility.BindDropDownList(ddlReportType, reportType, "Full Report");
                }
            }
        }
        /// <summary>
        /// Populates dropdown fields with corresponding selections.
        /// </summary>
        private void BindControl()
        {
            using (ProjectTrackerContainer context = new ProjectTrackerContainer())
            {
                IDictionary <int, string> dropDownSource = new Dictionary <int, string>();

                //ddlBioStat
                //if (Page.User.IsInRole("Admin"))
                //{
                //    dropDownSource = context.BioStats
                //                    .OrderBy(b => b.Name)
                //                    .ToDictionary(c => c.Id, c => c.Name);

                //    PageUtility.BindDropDownList(ddlBiostat, dropDownSource, "--- Select All ---");
                //}
                //else
                //{
                //    var biostat = context.BioStats.FirstOrDefault(b => b.LogonId == Page.User.Identity.Name);

                //    if (biostat != null)
                //    {
                //        dropDownSource.Add(biostat.Id, biostat.Name);

                //        PageUtility.BindDropDownList(ddlBiostat, dropDownSource, null);
                //    }
                //}
                dropDownSource = context.BioStats
                                 .Where(b => b.Name != "N/A" && b.Name != "Unknown")
                                 .OrderByDescending(b => b.EndDate)
                                 .ThenBy(b => b.Name)
                                 .ToDictionary(c => c.Id, c => c.Name);

                PageUtility.BindDropDownList(ddlBiostat, dropDownSource, "--- Select All ---");

                dropDownSource = context.BioStats
                                 //.Where(b => b.EndDate > currentDate)
                                 .OrderBy(b => b.Name)
                                 .ToDictionary(c => c.Id, c => c.Name);

                //PageUtility.BindDropDownList(ddlBiostat, dropDownSource, "--- Select All ---");
                PageUtility.BindDropDownList(ddlMember, dropDownSource, "--- Select All ---");

                dropDownSource = context.BiostatReports
                                 .Where(b => b.ReportType == "TimeEntry")
                                 .OrderBy(b => b.Id)
                                 .ToDictionary(c => c.Id, c => c.ReportName);

                PageUtility.BindDropDownList(ddlReport, dropDownSource, "--- Select Report ---");

                int biostatId;
                Int32.TryParse(ddlBiostat.SelectedValue, out biostatId);
                if (biostatId > 0)
                {
                    dropDownSource = context.ProjectBioStats
                                     .Where(p => p.BioStats_Id == biostatId)
                                     .OrderByDescending(d => d.Project.Id)
                                     .Select(x => new { x.Project.Id, FullName = (x.Project.Id + " " + x.Project.Title).Substring(0, 99) })
                                     .Distinct()
                                     .ToDictionary(c => c.Id, c => c.FullName);
                }
                else
                {
                    dropDownSource = context.Project2
                                     .Where(p => p.Id > 0)
                                     .OrderByDescending(d => d.Id)
                                     .Select(x => new { x.Id, FullName = (x.Id + " " + x.Title).Substring(0, 99) })
                                     .ToDictionary(c => c.Id, c => c.FullName);
                }
                PageUtility.BindDropDownList(ddlProject, dropDownSource, "--- Select All ---");


                dropDownSource = context.PublishStatus
                                 .Where(p => p.Id > 0)
                                 .OrderBy(d => d.Id)
                                 .ToDictionary(c => c.Id, c => c.Name);
                PageUtility.BindDropDownList(ddlPaperStatus, dropDownSource, string.Empty);

                /*Added "Funding Source" dropdown*/
                dropDownSource = context.ProjectField
                                 .Where(p => p.IsFundingSource == true)
                                 .ToDictionary(c => c.Id, c => c.Name);
                PageUtility.BindDropDownList(ddlFundingSource, dropDownSource, string.Empty);

                dropDownSource.Clear();
                dropDownSource.Add(new KeyValuePair <int, string>(1, "Small"));
                dropDownSource.Add(new KeyValuePair <int, string>(2, "Large"));
                PageUtility.BindDropDownList(ddlServiceType, dropDownSource, "--- Select All ---");

                dropDownSource.Clear();
                for (int i = 1; i <= 10; i++)
                {
                    dropDownSource.Add(new KeyValuePair <int, string>(i, i.ToString()));
                }
                PageUtility.BindDropDownList(ddlThreshold, dropDownSource, "default");

                dropDownSource = context.JabsomAffils
                                 .Where(a => a.Type != "Other" && a.Type != "Degree" && a.Type != "Unknown" && a.Name != "Other")
                                 .OrderBy(a => a.Name)
                                 .ToDictionary(c => c.Id, c => c.Name);
                var affilsJson = dropDownSource.Select(x => new { Id = x.Key, Name = x.Value });
                textAreaAffil.Value = Newtonsoft.Json.JsonConvert.SerializeObject(affilsJson);

                dropDownSource = context.AcademicField.Where(f => f.Category == "AcademicType").OrderBy(f => f.DisplayOrder).ToDictionary(c => c.Id, c => c.Name);
                PageUtility.BindDropDownList(ddlAcademicType, dropDownSource, string.Empty);
            }
        }
Exemple #29
0
        /// <summary>
        /// Upon updates the Biostat table in the database based on the
        /// values used in the tracking system.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            if (Page.User.IsInRole("Super"))
            {
                GridViewRow row = GridView1.Rows[e.RowIndex];

                Label   lblId      = row.FindControl("lblId") as Label;
                TextBox txtName    = row.FindControl("txtName") as TextBox;
                TextBox txtType    = row.FindControl("txtType") as TextBox;
                TextBox txtEmail   = row.FindControl("txtEmail") as TextBox;
                TextBox txtLogonId = row.FindControl("txtLogonId") as TextBox;
                TextBox txtEndDate = row.FindControl("txtEndDate") as TextBox;

                Repeater rptUserRights = row.FindControl("rptUserRights") as Repeater;


                if (txtName != null && txtLogonId != null && txtEmail != null)
                {
                    using (ProjectTrackerContainer context = new ProjectTrackerContainer())
                    {
                        int     biostatId = Convert.ToInt32(lblId.Text);
                        BioStat biostat   = context.BioStats.First(x => x.Id == biostatId);
                        biostat.Name    = txtName.Text;
                        biostat.Type    = txtType.Text;
                        biostat.Email   = txtEmail.Text;
                        biostat.LogonId = txtLogonId.Text;
                        biostat.EndDate = DateTime.Parse(txtEndDate.Text);



                        // Update the user privileges
                        // (Replace or Add/Delete as necessary

                        //var selectedRights = rptUserRights.check

                        AspNetUser biostatUserAcct = context.AspNetUsers.FirstOrDefault(x => x.UserName == biostat.LogonId);

                        if (biostatUserAcct != null)
                        {
                            var qRightsOfCurrUser = context.AspNetUsers
                                                    .Where(x => x.UserName == txtLogonId.Text)
                                                    .Select(y => y.AspNetRoles.Select(z => z.Name)).ToList();

                            // For each of the user rights (Super, Admin, Biostat, ...),
                            // If there is a match in qRightsOfCurrentUser
                            // If there is not already in database
                            foreach (RepeaterItem item in rptUserRights.Items)
                            {
                                CheckBox checkbox = item.FindControl("chkId") as CheckBox;
                                if (checkbox != null)
                                {
                                    var  currRights   = checkbox.Text;
                                    bool markedRights = checkbox.Checked == true ? true : false;

                                    /*AspNetUser */ biostatUserAcct = context.AspNetUsers.First(x => x.UserName == biostat.LogonId);
                                    AspNetRole currAcctRole = context.AspNetRoles.First(x => x.Name == currRights);

                                    if (markedRights)
                                    {
                                        //Add Role if doesn't exist.
                                        if (biostatUserAcct.AspNetRoles.FirstOrDefault(x => x.Name == currRights) == null)
                                        {
                                            biostatUserAcct.AspNetRoles.Add(currAcctRole);
                                        }
                                    }
                                    else
                                    {
                                        // Delete Role if currently exists.
                                        if (biostatUserAcct.AspNetRoles.FirstOrDefault(x => x.Name == currRights) != null)
                                        {
                                            biostatUserAcct.AspNetRoles.Remove(currAcctRole);
                                        }
                                    }
                                }
                            }


                            // Make appropriate user rights checked.
                            foreach (RepeaterItem item in rptUserRights.Items)
                            {
                                CheckBox checkbox = item.FindControl("chkId") as CheckBox;
                                if (checkbox != null)
                                {
                                    // Checks checkbox if the current checkbox exist in rights of current user.
                                    var currRights = checkbox.Text;

                                    bool doesBiostathaveRights = (currRights != null && qRightsOfCurrUser.Where(x => x.Contains(currRights)).FirstOrDefault() != null)
                                                                    ? true : false;

                                    if (qRightsOfCurrUser.Count > 0 && doesBiostathaveRights == true)
                                    {
                                        checkbox.Checked = true;
                                    }
                                }
                            }
                            /****/
                        }

                        WriteInvest(context, biostat);

                        GridView1.EditIndex = -1;
                        BindGrid();
                    }
                }
            }
        }
Exemple #30
0
        /// <summary>
        /// Obtains the Ola HAWAII report table from the database with the dates specified.
        /// </summary>
        /// <returns>Table of project to submit monthly to Ola HAWAII (Jason Delos Reyes or Meliza Roman to import).</returns>
        private DataTable GetOlaHawaiiTable()
        {
            DateTime  fromDate, toDate;
            DataTable dt = new DataTable("Ola_HAWAII");


            if (DateTime.TryParse(txtFromDate.Text, out fromDate) && DateTime.TryParse(txtToDate.Text, out toDate))
            {
                using (ProjectTrackerContainer dbContext = new ProjectTrackerContainer())
                {
                    //var query = dbContext.vwProject
                    //    .Where(p => p.ReportDate >= fromDate
                    //                && p.ReportDate <= toDate
                    //                && !(bool)p.IsOlaRequest
                    //                && !(bool)p.NotReportOla
                    //                && (int)p.IsInternal == 0
                    //                && p.IsPilot == "N"
                    //    );

                    var query = dbContext.vwProject.Join(dbContext.Project2,
                                                         p => p.id,
                                                         p2 => p2.Id,
                                                         (p, p2) => new { p, p2 })
                                .Where(pp2 => pp2.p.ReportDate >= fromDate &&
                                       pp2.p.ReportDate <= toDate &&
                                       !(bool)pp2.p.IsOlaRequest &&
                                       !(bool)pp2.p.NotReportOla &&
                                       (int)pp2.p.IsInternal == 0
                                       /*&& pp2.p.IsPilot == "N"*/

                                       && pp2.p.ProjectType == 1

                                       && pp2.p2.IsPaid == true)
                                .Select(x => new { x.p.id
                                                   , x.p.InvestId
                                                   , x.p.PIName
                                                   , x.p.Title
                                                   , x.p.Summary
                                                   , x.p.GrantName
                                                   , x.p.IsPilot
                                                   , x.p.BiostatId
                                                   , x.p.LeadBio
                                                   , x.p.Member
                                                   , x.p.ServiceCategory
                                                   , x.p.StudyArea
                                                   , x.p.StudyType
                                                   , x.p.StudyPopulation
                                                   , x.p.initialdate
                                                   , x.p.ReportDate
                                                   , x.p.anslysiscompletiondate
                                                   , x.p.ProjectCompletionDate
                                                   , x.p.IsInternal
                                                   , x.p.Comments
                                                   , x.p.NotReportRmatrix
                                                   , x.p.IsRmatrix
                                                   , x.p.NotReportOla
                                                   , x.p.IsOlaRequest
                                                   , x.p.HealthDateBitSum
                                                   , x.p.GrantBitSum
                                                   , x.p.LeadBiostatId
                                                   , x.p.OtherMemberBitSum
                                                   , x.p.ProjectType
                                                   , x.p.CreditTo });

                    dt = PageUtility.ToDataTable(query.ToList());
                    hdnRowCount.Value = query.Count().ToString();
                }
            }

            return(dt);
        }