private string GetJiraWorkHours(string jiraKey, DateTime workDate, int personId) { string workHours = string.Empty; if (!string.IsNullOrEmpty(jiraKey) && jiraKey != "N/A") { var data = new ScheduleDetailDataModel(); if (personId == 0) { data.WorkTicket = jiraKey; data.ToSearchDate = workDate; // toDate is WorkDate, so we can find the total hours developer worked on that issue upto that date. } else { data.WorkTicket = jiraKey; data.PersonId = personId; data.ToSearchDate = workDate; // toDate is WorkDate, so we can find the total hours developer worked on that issue upto that date. } var dt = ScheduleDetailDataManager.Search(data, SessionVariables.RequestProfile); if (dt != null && dt.Rows.Count > 0) { // get count workHours = (from row in dt.AsEnumerable() select Convert.ToDecimal(row["DateDiffHrs"])).Sum().ToString("0.00"); } } return(workHours); }
protected void gvScheduleDetails_Updating(object sender, GridViewUpdateEventArgs e) { var lblScheduleDetailID = (Label)gvScheduleDetails.Rows[e.RowIndex].FindControl("lblScheduleDetailId"); var lblEditScheduleId = (Label)gvScheduleDetails.Rows[e.RowIndex].FindControl("lblScheduleId"); var drpScheduleDetailActivityCategory = (DropDownList)gvScheduleDetails.Rows[e.RowIndex].FindControl("drpScheduleDetailActivityCategory"); var txtEditInTime = (TextBox)gvScheduleDetails.Rows[e.RowIndex].FindControl("txtEditInTime"); var txtEditOutTime = (TextBox)gvScheduleDetails.Rows[e.RowIndex].FindControl("txtEditOutTime"); var txtWorkTicket = (TextBox)gvScheduleDetails.Rows[e.RowIndex].FindControl("txtWorkTicket"); var txtEditMessage = (TextBox)gvScheduleDetails.Rows[e.RowIndex].FindControl("txtEditMessage"); var lblCreatedDate = (Label)gvScheduleDetails.Rows[e.RowIndex].FindControl("txtEditCreatedDate"); var data = new ScheduleDetailDataModel(); data.ScheduleDetailId = Convert.ToInt32(lblScheduleDetailID.Text); data.ScheduleId = Convert.ToInt32(lblEditScheduleId.Text); data.ScheduleDetailActivityCategoryId = Convert.ToInt32(drpScheduleDetailActivityCategory.SelectedValue); var dtInTime = Convert.ToDateTime(txtEditInTime.Text.Trim()); data.InTime = DateTime.Parse(dtInTime.ToString("t"), null); var dtOutTime = Convert.ToDateTime(txtEditOutTime.Text.Trim()); data.OutTime = DateTime.Parse(dtOutTime.ToString("t"), null); data.WorkTicket = txtWorkTicket.Text.Trim(); data.Message = txtEditMessage.Text; data.CreatedDate = DateTime.Parse(lblCreatedDate.Text); ScheduleDetailDataManager.Update(data, SessionVariables.RequestProfile); GetData(Convert.ToInt32(lblEditScheduleId.Text)); gvScheduleDetails.EditIndex = -1; gvScheduleDetails.DataBind(); }
protected override void ShowData(int scheduleDetailId) { base.ShowData(scheduleDetailId); oDetailButtonPanel.SetId = SetId; Clear(); var data = new ScheduleDetailDataModel(); data.ScheduleDetailId = scheduleDetailId; var items = ScheduleDetailDataManager.GetEntityDetails(data, SessionVariables.RequestProfile); if (items.Count == 1) { var item = items[0]; lblScheduleDetailId.Text = item.ScheduleDetailId.ToString(); lblScheduleId.Text = item.ScheduleId.ToString(); lblInTime.Text = String.Format("{0:t}", item.InTime); lblOutTime.Text = String.Format("{0:t}", item.OutTime); lblMessage.Text = item.Message; lblWorkTicket.Text = item.WorkTicket; lblScheduleDetailActivityCategory.Text = item.ScheduleDetailActivityCategory; lblCreatedByAuditId.Text = item.CreatedByAuditId.ToString(); lblModifiedByAuditId.Text = item.ModifiedByAuditId.ToString(); lblCreatedDate.Text = item.CreatedDate.Value.ToString(SessionVariables.UserDateFormat); lblModifiedDate.Text = item.ModifiedDate.Value.ToString(SessionVariables.UserDateFormat); oUpdateInfo.LoadText(item.UpdatedDate, item.UpdatedBy, item.LastAction); oHistoryList.Setup(PrimaryEntity, scheduleDetailId, "ScheduleDetail"); } }
private void BindData() { if (XAxisColumn != YAxisColumn) { var objModel = new ScheduleDetailDataModel(); if (drpPersons.SelectedValue != "-1") { objModel.PersonId = Convert.ToInt32(drpPersons.SelectedValue); } if (drpWorkCategory.SelectedValue != "-1") { objModel.ScheduleDetailActivityCategoryId = Convert.ToInt32(drpWorkCategory.SelectedValue); } objModel.FromSearchDate = oDateRange.FromDate; objModel.ToSearchDate = oDateRange.ToDate; objModel.Message = txtMessage.Text.Trim(); var dt = ScheduleDetailDataManager.Search(objModel, SessionVariables.RequestProfile); if (dt.Rows.Count > 0) { var xValues = (from row in dt.AsEnumerable() select row[XAxisColumn].ToString().Trim()) .Distinct(StringComparer.CurrentCultureIgnoreCase).ToList(); var yValues = (from row in dt.AsEnumerable() select row[YAxisColumn].ToString().Trim()) .Distinct(StringComparer.CurrentCultureIgnoreCase).ToList(); var tableElement = new HtmlGenericControl("table"); tableElement.Attributes["class"] = "table table-bordered"; AddHeaderRow(xValues, tableElement, dt); foreach (var yValue in yValues) { var yTextValue = yValue; if (YAxisColumn != YAxisColumnText) { yTextValue = (from row in dt.AsEnumerable() where row[YAxisColumn].ToString() == yValue select row[YAxisColumnText].ToString()).First(); } AddDetailRow(yValue, yTextValue, xValues, dt, tableElement); } if (AggeregateVisibility == "xAxis" || AggeregateVisibility == "Both") { AddAggeregateRow(xValues, dt, tableElement); } contentHolder.Controls.Add(tableElement); } } }
protected int GetData() { var data = new ScheduleDetailDataModel(); var dt = ScheduleDetailDataManager.Search(data, SessionVariables.RequestProfile); var maxRow = dt.Select("ScheduleDetailId = MAX(ScheduleDetailId)"); var maxScheduleDetailId = Convert.ToInt32(maxRow[0]["ScheduleDetailId"].ToString()); return(maxScheduleDetailId + 1); }
protected override DataTable GetEntityData(int?entityKey) { var scheduleDetaildata = new ScheduleDetailDataModel(); scheduleDetaildata.ScheduleDetailId = entityKey; var results = ScheduleDetailDataManager.Search(scheduleDetaildata, SessionVariables.RequestProfile); return(results); }
private DataTable GetScheduleDetailData(int scheduleId) { var data = new ScheduleDetailDataModel(); data.ScheduleId = scheduleId; var dt = ScheduleDetailDataManager.Search(data, SessionVariables.RequestProfile); return(dt); }
public void SendMail(int?scheduleId, string mailFormat, string toEmailAddress, string ccEmailAddress, string fromEmailAddress, bool isPreview, RequestProfile requestProfile) { var data = new ScheduleDetailDataModel(); data.ScheduleId = scheduleId; var dt = ScheduleDetailDataManager.Search(data, requestProfile); if (dt.Rows.Count != 0) { FormatMail(dt, mailFormat, toEmailAddress, ccEmailAddress, fromEmailAddress, isPreview, requestProfile); } }
private DataTable GetScheduleDetailData(string key) { var scheduleId = int.Parse(key); var dt = ScheduleDetailDataManager.GetBySchedule(scheduleId, SessionVariables.RequestProfile); //var scheduleQuestiondt = ScheduleQuestionDataManager.GetList(AuditId); //var resultdt = scheduleQuestiondt.Clone(); //foreach (DataRow row in dt.Rows) //{ // var rows = scheduleQuestiondt.Select("ScheduleQuestionId = " + row[ScheduleQuestionDataModel.DataColumns.ScheduleQuestionId]); // resultdt.ImportRow(rows[0]); //} return(dt); }
protected override DataTable UpdateData() { var UpdatedData = new DataTable(); var data = new ScheduleDetailDataModel(); UpdatedData = ScheduleDetailDataManager.Search(data, SessionVariables.RequestProfile).Clone(); for (var i = 0; i < SelectedData.Rows.Count; i++) { data.ScheduleDetailId = Convert.ToInt32(SelectedData.Rows[i][ScheduleDetailDataModel.DataColumns.ScheduleDetailId].ToString()); data.ScheduleId = Convert.ToInt32(SelectedData.Rows[i][ScheduleDetailDataModel.DataColumns.ScheduleId].ToString()); data.InTime = !string.IsNullOrEmpty(CheckAndGetRepeaterTextBoxValue(ScheduleDetailDataModel.DataColumns.InTime)) ? DateTime.Parse(CheckAndGetRepeaterTextBoxValue(ScheduleDetailDataModel.DataColumns.InTime).ToString()) : DateTime.Parse(SelectedData.Rows[i][ScheduleDetailDataModel.DataColumns.InTime].ToString()); data.OutTime = !string.IsNullOrEmpty(CheckAndGetRepeaterTextBoxValue(ScheduleDetailDataModel.DataColumns.OutTime)) ? DateTime.Parse(CheckAndGetRepeaterTextBoxValue(ScheduleDetailDataModel.DataColumns.OutTime).ToString()) : DateTime.Parse(SelectedData.Rows[i][ScheduleDetailDataModel.DataColumns.OutTime].ToString()); data.Message = !string.IsNullOrEmpty(CheckAndGetRepeaterTextBoxValue(ScheduleDetailDataModel.DataColumns.Message)) ? CheckAndGetRepeaterTextBoxValue(ScheduleDetailDataModel.DataColumns.Message).ToString() : SelectedData.Rows[i][ScheduleDetailDataModel.DataColumns.Message].ToString(); data.CreatedDate = !string.IsNullOrEmpty(CheckAndGetRepeaterTextBoxValue(BaseDataModel.BaseDataColumns.CreatedDate)) ? DateTime.Parse(CheckAndGetRepeaterTextBoxValue(BaseDataModel.BaseDataColumns.CreatedDate).ToString()) : DateTime.Parse(SelectedData.Rows[i][BaseDataModel.BaseDataColumns.CreatedDate].ToString()); ScheduleDetailDataManager.Update(data, SessionVariables.RequestProfile); data = new ScheduleDetailDataModel(); data.ScheduleDetailId = Convert.ToInt32(SelectedData.Rows[i][ScheduleDetailDataModel.DataColumns.ScheduleDetailId].ToString()); var dt = ScheduleDetailDataManager.Search(data, SessionVariables.RequestProfile); if (dt.Rows.Count == 1) { UpdatedData.ImportRow(dt.Rows[0]); } } return(UpdatedData); }
public void LoadData(int scheduleDetailId, bool showId) { // clear UI Clear(); var dataQuery = new ScheduleDetailDataModel(); dataQuery.ScheduleDetailId = scheduleDetailId; var items = ScheduleDetailDataManager.GetEntityDetails(dataQuery, SessionVariables.RequestProfile); if (items.Count != 1) { return; } var item = items[0]; ScheduleDetailId = item.ScheduleDetailId; ScheduleId = item.ScheduleId; InTime = item.InTime; OutTime = item.OutTime; WorkTicket = item.WorkTicket; Message = item.Message; ScheduleDetailActivityCategoryId = item.ScheduleDetailActivityCategoryId; //CreatedByAuditId = item.CreatedByAuditId; //ModifiedByAuditId = item.ModifiedByAuditId; //CreatedDate = item.CreatedDate; //ModifiedDate = item.ModifiedDate; if (!showId) { txtScheduleDetailId.Text = item.ScheduleDetailId.ToString(); // only show Audit History in case of Update page, not for Clone. oHistoryList.Setup((int)SystemEntity.ScheduleDetail, scheduleDetailId, "ScheduleDetail"); } else { txtScheduleDetailId.Text = String.Empty; } oUpdateInfo.LoadText(item.UpdatedDate, item.UpdatedBy, item.LastAction); }
public List <WorkCategoryRecord> GetWorkCategoryReportData(string value1, string value2, string value3) { var applicationUserId = value1; var fromSearchDate = value2; var toSearchDate = value3; var dateFormat = "dd.MM.yyyy"; var scheduleData = new ScheduleDetailDataModel(); scheduleData.PersonId = int.Parse(applicationUserId); scheduleData.FromSearchDate = DateTime.ParseExact(fromSearchDate, dateFormat, System.Globalization.DateTimeFormatInfo.InvariantInfo); scheduleData.ToSearchDate = DateTime.ParseExact(toSearchDate, dateFormat, System.Globalization.DateTimeFormatInfo.InvariantInfo); var lstResult = ScheduleDetailDataManager.GetWorkCategoryData(scheduleData, SessionVariables.RequestProfile); return(lstResult); }
protected void btnDelete_Click(object sender, EventArgs e) { try { string[] deleteIndexList = DeleteIds.Split(','); foreach (string index in deleteIndexList) { var data = new ScheduleDetailDataModel(); data.ScheduleDetailId = int.Parse(index); ScheduleDetailDataManager.Delete(data, SessionVariables.RequestProfile); } DeleteAndRedirect(); } catch (Exception ex) { Response.Write(ex.Message); } }
protected void GetData(int scheduleId) { var data = new ScheduleDetailDataModel(); data.ScheduleId = scheduleId; var dt = ScheduleDetailDataManager.Search(data, SessionVariables.RequestProfile); if (dt.Rows.Count > 0) { ViewState["CurrentTable"] = dt; gvScheduleDetails.DataSource = dt; gvScheduleDetails.DataBind(); SetGridViewFooter(dt); } else { //AddNewRow(); dt.Rows.Add(dt.NewRow()); var getMaxDetailId = GetData(); dt.Rows[0]["ScheduleDetailId"] = getMaxDetailId + 1; dt.Rows[0]["ScheduleId"] = scheduleId; dt.Rows[0]["InTime"] = DateTime.Now; dt.Rows[0]["OutTime"] = DateTime.Now; dt.Rows[0]["Message"] = ""; dt.Rows[0]["WorkTicket"] = "N/A"; dt.Rows[0]["CreatedDate"] = DateTime.Now; ViewState["CurrentTable"] = dt; gvScheduleDetails.DataSource = dt; gvScheduleDetails.DataBind(); SetGridViewFooter(dt); } }
//public int? CreatedByAuditId //{ // get // { // return int.Parse(txtCreatedByAuditId.Text); // } // set // { // txtCreatedByAuditId.Text = (value == null) ? String.Empty : value.ToString(); // } //} //public int? ModifiedByAuditId //{ // get // { // return int.Parse(txtModifiedByAuditId.Text); // } // set // { // txtModifiedByAuditId.Text = (value == null) ? String.Empty : value.ToString(); // } //} //public DateTime? CreatedDate //{ // get // { // return DateTime.ParseExact(txtCreatedDate.Text, SessionVariables.UserDateFormat, DateTimeFormatInfo.InvariantInfo); // //return DateTime.Parse(txtCreatedDate.Text.Trim()); // } // set // { // txtCreatedDate.Text = (value == null) ? String.Empty : value.Value.ToString(SessionVariables.UserDateFormat); // } // //get // //{ // // //DateTime dt = Convert.ToDateTime(txtCreatedDate.Text.Trim()); // // //return DateTime.ParseExact(dt.ToString(this.DateTimeFormat), this.DateTimeFormat, System.Globalization.DateTimeFormatInfo.InvariantInfo); // // DateTime dt = Convert.ToDateTime(txtCreatedDate.Text.Trim()); // // return DateTime.Parse(dt.ToString("t"), null); // //} // //set // //{ // // txtCreatedDate.Text = (value == null) ? String.Empty : value.Value.ToString("t"); // //} //} //public DateTime? ModifiedDate //{ // get // { // DateTime dt = Convert.ToDateTime(txtModifiedDate.Text.Trim()); // return DateTime.ParseExact(dt.ToString(SessionVariables.UserDateFormat), SessionVariables.UserDateFormat, DateTimeFormatInfo.InvariantInfo); // } // set // { // txtModifiedDate.Text = (value == null) ? String.Empty : value.Value.ToString(SessionVariables.UserDateFormat); // } //} #endregion properties #region private method private int?InsertOrUpdate(ScheduleDetailDataModel data, string action) { if (action == "Insert") { var dtScheduleDetail = ScheduleDetailDataManager.DoesExist(data, SessionVariables.RequestProfile); if (dtScheduleDetail.Rows.Count == 0) { ScheduleDetailId = ScheduleDetailDataManager.Create(data, SessionVariables.RequestProfile); } else { throw new Exception("Record with given ID already exists."); } } else { //data.CreatedDate = CreatedDate; ScheduleDetailDataManager.Update(data, SessionVariables.RequestProfile); } return(ScheduleDetailId); }
protected override DataTable GetData() { try { SuperKey = ApplicationCommon.GetSuperKey(); SetId = ApplicationCommon.GetSetId(); var selectedrows = new DataTable(); var scheduleDetaildata = new ScheduleDetailDataModel(); selectedrows = ScheduleDetailDataManager.GetDetails(scheduleDetaildata, SessionVariables.RequestProfile).Clone(); if (!string.IsNullOrEmpty(SuperKey)) { var systemEntityTypeId = (int)PrimaryEntity; var lstEntityKeys = ApplicationCommon.GetSuperKeyDetails(systemEntityTypeId, SuperKey); foreach (var entityKey in lstEntityKeys) { scheduleDetaildata.ScheduleDetailId = entityKey; var result = ScheduleDetailDataManager.GetDetails(scheduleDetaildata, SessionVariables.RequestProfile); selectedrows.ImportRow(result.Rows[0]); } } else { scheduleDetaildata.ScheduleDetailId = SetId; var result = ScheduleDetailDataManager.GetDetails(scheduleDetaildata, SessionVariables.RequestProfile); selectedrows.ImportRow(result.Rows[0]); } return(selectedrows); } catch (Exception ex) { Response.Write(ex.Message); } return(null); }
protected override void Update(Dictionary <string, string> values) { var data = new ScheduleDetailDataModel(); if (values.ContainsKey(ScheduleDetailDataModel.DataColumns.ScheduleDetailId)) { data.ScheduleDetailId = int.Parse(values[ScheduleDetailDataModel.DataColumns.ScheduleDetailId].ToString()); } if (values.ContainsKey(ScheduleDetailDataModel.DataColumns.ScheduleId)) { data.ScheduleId = int.Parse(values[ScheduleDetailDataModel.DataColumns.ScheduleId].ToString()); } if (values.ContainsKey(ScheduleDetailDataModel.DataColumns.InTime)) { data.InTime = DateTime.Parse(values[ScheduleDetailDataModel.DataColumns.InTime].ToString()); } if (values.ContainsKey(ScheduleDetailDataModel.DataColumns.OutTime)) { data.OutTime = DateTime.Parse(values[ScheduleDetailDataModel.DataColumns.OutTime].ToString()); } if (values.ContainsKey(ScheduleDetailDataModel.DataColumns.CreatedDate)) { data.CreatedDate = DateTime.Parse(values[ScheduleDetailDataModel.DataColumns.CreatedDate].ToString()); } if (values.ContainsKey(ScheduleDetailDataModel.DataColumns.Message)) { data.Message = values[ScheduleDetailDataModel.DataColumns.Message].ToString(); } ScheduleDetailDataManager.Update(data, SessionVariables.RequestProfile); base.Update(values); }
protected void lbtnSubmit_Click(object sender, EventArgs e) { try { var dt = GetDataOnly((int)ViewState["SetId"]); foreach (GridViewRow row in gvScheduleDetails.Rows) { var lblScheduleDetailID = (Label)gvScheduleDetails.Rows[row.RowIndex].FindControl("lblScheduleDetailId"); var foundIds = dt.Select("ScheduleDetailId = '" + lblScheduleDetailID.Text + "'"); var lblScheduleId = (Label)gvScheduleDetails.Rows[row.RowIndex].FindControl("lblScheduleId"); var drpScheduleDetailActivityCategory = (DropDownList)gvScheduleDetails.Rows[row.RowIndex].FindControl("drpScheduleDetailActivityCategory"); var txtInsertInTime = (TextBox)gvScheduleDetails.Rows[row.RowIndex].FindControl("txtInsertInTime"); var txtInsertOutTime = (TextBox)gvScheduleDetails.Rows[row.RowIndex].FindControl("txtInsertOutTime"); var txtWorkTicket = (TextBox)gvScheduleDetails.Rows[row.RowIndex].FindControl("txtWorkTicket"); var txtInsertMsg = (TextBox)gvScheduleDetails.Rows[row.RowIndex].FindControl("txtInsertMsg"); var lblCreatedDate = (Label)gvScheduleDetails.Rows[row.RowIndex].FindControl("lblCreatedDate"); var data = new ScheduleDetailDataModel(); data.ScheduleDetailId = Convert.ToInt32(lblScheduleDetailID.Text); data.ScheduleId = Convert.ToInt32(lblScheduleId.Text); data.ScheduleDetailActivityCategoryId = Convert.ToInt32(drpScheduleDetailActivityCategory.SelectedValue); data.WorkTicket = txtWorkTicket.Text.Trim(); data.Message = txtInsertMsg.Text; var dtInTime = Convert.ToDateTime(txtInsertInTime.Text.Trim()); data.InTime = DateTime.Parse(dtInTime.ToString("t"), null); var dtOutTime = Convert.ToDateTime(txtInsertOutTime.Text.Trim()); data.OutTime = DateTime.Parse(dtOutTime.ToString("t"), null); // adding a day in case some one finishes a task next day. if (data.OutTime.Value.Hour < 5 && data.InTime.Value.Hour > 5) { data.OutTime = data.OutTime.Value.AddDays(1); } if (foundIds.Length != 0) { data.CreatedDate = DateTime.Parse(lblCreatedDate.Text); ScheduleDetailDataManager.Update(data, SessionVariables.RequestProfile); } else { var dataInsert = new ScheduleDetailDataModel(); dataInsert.ScheduleId = Convert.ToInt32(lblScheduleId.Text); var dataSearch = ScheduleDetailDataManager.GetDetails(dataInsert, SessionVariables.RequestProfile); if (dataSearch.Rows.Count == 0) { ScheduleDetailDataManager.Create(data, SessionVariables.RequestProfile); } else { for (var i = 0; i < dataSearch.Rows.Count; i++) { if (data.InTime.Equals(dataSearch.Rows[i][ScheduleDetailDataModel.DataColumns.InTime])) { Session["msg"] = "INTIME should be UNIQUE for Single ScheduleId"; Response.Redirect(Page.GetRouteUrl("ScheduleEntityRoute", new { Action = "Update", SetId = data.ScheduleId.ToString() }), false); throw new Exception("INTIME should be UNIQUE for Single ScheduleId"); } else { ScheduleDetailDataManager.Create(data, SessionVariables.RequestProfile); break; } } } } } var ScheduleDetailIDList = (List <int>)ViewState["DeletedIds"]; foreach (var ScheduleDetailID in ScheduleDetailIDList) { var data = new ScheduleDetailDataModel(); data.ScheduleDetailId = ScheduleDetailID; ScheduleDetailDataManager.Delete(data, SessionVariables.RequestProfile); } GetData((int)ViewState["SetId"]); } catch (Exception ex) { Response.Write(ex.Message); } }
protected DataTable GetData() { var ds = ScheduleDetailDataManager.SearchView(oSearchFilter.SearchParameters, SessionVariables.RequestProfile); AllDataRows = ds.Tables[1]; DataTable dt = null; // refresh total time spent variable everytime new data is retrieved. TotalTimeSpentCount = GetTotalTimeSpentCount(); if (string.IsNullOrEmpty(oSearchFilter.GroupBy) || oSearchFilter.GroupBy == "-1" || oSearchFilter.GroupBy == "All") { if (ds.Tables.Count > 1) { var tblKeyDescription = new DataTable(); tblKeyDescription.AcceptChanges(); tblKeyDescription.Columns.Add("Person"); tblKeyDescription.Columns.Add("PersonId"); var row = tblKeyDescription.NewRow(); row["Person"] = "All"; row["PersonId"] = "All"; tblKeyDescription.Rows.Add(row); var dataView = tblKeyDescription.DefaultView; dt = dataView.ToTable(); GrdParentGrid.DataSource = dt; GrdParentGrid.DataBind(); TotalParentCount = dt.Rows.Count; } } else if (ds.Tables.Count > 1 && !String.IsNullOrEmpty(oSearchFilter.GroupBy.Trim()) && oSearchFilter.GroupBy != "-1" && oSearchFilter.GroupBy != "All") { // adding statistic header row only if only Grouping is applied. if (String.IsNullOrEmpty(oSearchFilter.SubGroupBy) || oSearchFilter.SubGroupBy == "-1" || oSearchFilter.SubGroupBy == "All") { TableReportContent.Controls.Add(GetStatisticInfoHTMLHeaderRow(oSearchFilter.GroupBy)); } // All related fings (children) var AllDataRows_Schedule = ds.Tables[0]; var tblKeyDescription = new DataTable(); tblKeyDescription.Columns.Add("Grouping"); tblKeyDescription.Columns.Add("Key"); // temp tblKeyDescription.Columns.Add("PersonId"); tblKeyDescription.Columns.Add("Person"); tblKeyDescription.AcceptChanges(); AllDataRows_Schedule.Merge(AllDataRows); var distinctFieldValues = (from row in AllDataRows_Schedule.AsEnumerable() .Where(row => row[oSearchFilter.GroupBy].ToString().Trim() != "") orderby row[oSearchFilter.GroupBy].ToString().Trim() descending select row[oSearchFilter.GroupBy].ToString().Trim()) .Distinct(StringComparer.CurrentCultureIgnoreCase); //var distinctFieldValues = (from row in AllDataRows.AsEnumerable() // orderby row["PersonId"].ToString().Trim() // select row["PersonId"].ToString().Trim()).Distinct(StringComparer.CurrentCultureIgnoreCase); foreach (var key in distinctFieldValues) { var row = tblKeyDescription.NewRow(); row["Grouping"] = oSearchFilter.GroupBy; row["Key"] = key; // temp //row["PersonId"] = key; //row["Person"] = key; EnumerableRowCollection <object> schedulePKId = null; //if (AllDataRows_Schedule.Columns.Contains("IsUpdated")) //{ // schedulePKId = AllDataRows_Schedule.AsEnumerable() // .Where(x => x[ScheduleDataModel.DataColumns.Person].ToString().ToLower() == key && // x[ScheduleDataModel.DataColumns.IsUpdated].ToString() == "1") // .Select(x => x[ScheduleDataModel.DataColumns.PersonId]); //} //else //{ schedulePKId = AllDataRows_Schedule.AsEnumerable() .Where(x => x[ScheduleDetailDataModel.DataColumns.Person].ToString().ToLower() == key) .Select(x => x[ScheduleDetailDataModel.DataColumns.PersonId]); //} //if (oSearchFilter.GroupBy == ScheduleDataModel.DataColumns.Person) //{ if (schedulePKId.Count() != 0) { var rowItem = from rowPK in AllDataRows_Schedule.AsEnumerable() select rowPK; row["PersonId"] = rowItem.First(); row["Person"] = key; tblKeyDescription.Rows.Add(row); } //} else { row["Person"] = key; tblKeyDescription.Rows.Add(row); } //row["ReleaseLogId"] = key; //row["Person"] = key; //tblKeyDescription.Rows.Add(row); } tblKeyDescription.AcceptChanges(); var dataView = tblKeyDescription.DefaultView; // ds.Tables[0].DefaultView; //dataView.Sort = ScheduleDataModel.DataColumns.PersonId + " DESC"; dt = dataView.ToTable(); TotalParentCount = dt.Rows.Count; GrdParentGrid.DataSource = dt; GrdParentGrid.DataBind(); } //TotalParentCount = dt.Rows.Count; //if ((ds.Tables[1].Rows.Count == 0 && ds.Tables[0].Rows.Count < 1) || (ds.Tables[1].Rows.Count == 0 && ds.Tables[0].Rows.Count > 1)) if (ds.Tables[0].Rows.Count == 0) { lblSearchStatus.Text = "No records found for the given Search parameters."; //StatsDiv.Visible = false; } else { lblSearchStatus.Text = String.Empty; //StatsDiv.Visible = true; } return(ds.Tables[0]); }
public HtmlGenericControl GetStatisticInfoHTMLSummaryRow(DataTable scheduleDetailData, string groupName) { var lstValues = ScheduleDetailDataManager.GetStatisticDataSummary(scheduleDetailData, ScheduleDetailDataModel.DataColumns.ScheduleDetailTimeSpentConstant, ApplicationCommon.ScheduleStatisticUnknown); var average = Math.Round(lstValues["Average"], 2); var median = lstValues["Median"]; var recCount = scheduleDetailData.Rows.Count; decimal total = 0; decimal maxValue = 0; decimal minValue = 0; // if no records, no need to count total, search for max, min if (recCount > 0) { var series = new decimal[recCount]; var i = 0; foreach (var itemSchedule in scheduleDetailData.AsEnumerable()) { var totalHoursWorked = itemSchedule[ScheduleDetailDataModel.DataColumns.DateDiffHrs].ToString(); var totalHoursWorkedValue = 0m; if (!Decimal.TryParse(totalHoursWorked, out totalHoursWorkedValue)) { totalHoursWorkedValue = ScheduleDetailDataModel.DataColumns.ScheduleDetailTimeSpentConstant; } series[i++] = totalHoursWorkedValue; } total = series.Sum(x => x); maxValue = series.Select(x => x).Distinct().Max(); minValue = series.Select(x => x).Distinct().Min(); } var subDiv1 = new HtmlGenericControl("div"); subDiv1.Attributes["class"] = "row gutter-border text-right summary-bgcolor"; var divId1 = new HtmlGenericControl("div"); divId1.Attributes["class"] = "col-sm-2"; var lblScheduleText1 = new Label(); lblScheduleText1.Text = "Summary"; divId1.Controls.Add(lblScheduleText1); subDiv1.Controls.Add(divId1); var divTotal1 = new HtmlGenericControl("div"); divTotal1.Attributes["class"] = "col-sm-1"; var lblTotalText1 = new Label(); lblTotalText1.Text = total.ToString("#0,0.00"); divTotal1.Controls.Add(lblTotalText1); subDiv1.Controls.Add(divTotal1); var divTotalPer = new HtmlGenericControl("div"); divTotalPer.Attributes["class"] = "col-sm-2"; var lblTotalPerText = new Label(); lblTotalPerText.Text = "100%"; divTotalPer.Controls.Add(lblTotalPerText); subDiv1.Controls.Add(divTotalPer); var divAverage1 = new HtmlGenericControl("div"); divAverage1.Attributes["class"] = "col-sm-1"; var lblAverageText1 = new Label(); lblAverageText1.Text = average.ToString("#0,0.00"); divAverage1.Controls.Add(lblAverageText1); subDiv1.Controls.Add(divAverage1); var divMedianSummary = new HtmlGenericControl("div"); divMedianSummary.Attributes["class"] = "col-sm-1"; var lblMedianText1 = new Label(); lblMedianText1.Text = median.ToString("#0,0.00"); divMedianSummary.Controls.Add(lblMedianText1); subDiv1.Controls.Add(divMedianSummary); var divCountSummary = new HtmlGenericControl("div"); divCountSummary.Attributes["class"] = "col-sm-1"; var lblCountText1 = new Label(); lblCountText1.Text = recCount.ToString("#0,0.00"); divCountSummary.Controls.Add(lblCountText1); subDiv1.Controls.Add(divCountSummary); var divCntPer = new HtmlGenericControl("div"); divCntPer.Attributes["class"] = "col-sm-2"; var lblCntPerText = new Label(); lblCntPerText.Text = "100%"; divCntPer.Controls.Add(lblCntPerText); subDiv1.Controls.Add(divCntPer); var divMaxSummary = new HtmlGenericControl("div"); divMaxSummary.Attributes["class"] = "col-sm-1"; var lblMaxText1 = new Label(); lblMaxText1.Text = maxValue.ToString("#0,0.00"); divMaxSummary.Controls.Add(lblMaxText1); subDiv1.Controls.Add(divMaxSummary); var divMinSummary = new HtmlGenericControl("div"); divMinSummary.Attributes["class"] = "col-sm-1"; var lblMinText1 = new Label(); lblMinText1.Text = minValue.ToString("#0,0.00"); divMinSummary.Controls.Add(lblMinText1); subDiv1.Controls.Add(divMinSummary); return(subDiv1); }
protected void GrdParentGrid_RowDataBound(object sender, RepeaterItemEventArgs e) { var drv = e.Item.DataItem as DataRowView; if (drv == null) { return; } var hdnField = e.Item.FindControl("hdnScheduleDetailId") as HiddenField; var btnInsert = e.Item.FindControl("btnInsert") as LinkButton; var btnCheckBox = e.Item.FindControl("chkbox") as LinkButton; //tab control or detail Grid Container DIV var detailsGridContainer = e.Item.FindControl("detailsGridContainer") as HtmlGenericControl; if (oSearchFilter.GroupBy == "Person") { //var btnInsert = e.Item.FindControl("btnInsert") as LinkButton; btnInsert.PostBackUrl = Page.GetRouteUrl("ScheduleDetailEntityRoute", new { Action = "Insert" }); btnInsert.PostBackUrl += "/" + hdnField.Value; } var parentKey = string.Empty; var parentKeyName = parentKey = DataBinder.Eval(e.Item.DataItem, "Person").ToString(); //ReleaseLog = (DataBinder.Eval(e.Item.DataItem, "Name")).ToString(); //ReleaseLog = parentKey; if (oSearchFilter.GroupBy == "-1" || string.IsNullOrEmpty(oSearchFilter.GroupBy) || oSearchFilter.GroupBy == "All") { parentKey = hdnField.Value; btnInsert.Visible = false; //btnCheckBox.Visible = false; } else { parentKey = DataBinder.Eval(e.Item.DataItem, "Key").ToString(); } //data set for the current group var filteredGroup = GetDataDetailsByKey(parentKey); var statisticItem = ScheduleDetailDataManager.GetStatisticData(filteredGroup, ScheduleDetailDataModel.DataColumns.ScheduleDetailTimeSpentConstant, ApplicationCommon.ScheduleStatisticUnknown); AddSummaryStatisticLine(parentKey, statisticItem); if (!String.IsNullOrEmpty(oSearchFilter.GroupBy.Trim()) && oSearchFilter.GroupBy != "-1" && oSearchFilter.GroupBy != "All" && !String.IsNullOrEmpty(oSearchFilter.SubGroupBy) && oSearchFilter.SubGroupBy != "-1" && oSearchFilter.SubGroupBy != "All") //&& filteredGroup.Columns.Contains(oSearchFilter.SubGroupBy) { // get new instance of tab control to added for the group var tabControl = ApplicationCommon.GetNewDetailTabControl(); tabControl.Setup(SettingCategory); var subGroupByColumn = oSearchFilter.SubGroupBy; // Add Group By Key Information var grpByDiv = new HtmlGenericControl("div"); grpByDiv.InnerHtml = "<strong>Group: " + parentKey + " </strong>"; TableReportContent.Controls.Add(grpByDiv); // Add Header Row for Statistics table TableReportContent.Controls.Add(GetStatisticInfoHTMLHeaderRow(subGroupByColumn)); // get distinct sub group by values var distinctFieldValues = (from row in filteredGroup.AsEnumerable() .Where(row => row[subGroupByColumn].ToString().Trim() != "") orderby row[subGroupByColumn].ToString().Trim() descending select row[subGroupByColumn].ToString().Trim()) .Distinct(StringComparer.CurrentCultureIgnoreCase); var series = new decimal[filteredGroup.Rows.Count]; var i = 0; foreach (DataRow item in filteredGroup.Rows) { var timeSpent = item[ScheduleDetailDataModel.DataColumns.DateDiffHrs].ToString(); var timeSpentValue = 0m; Decimal.TryParse(timeSpent, out timeSpentValue); series[i++] = timeSpentValue; } var totalHoursWorkedForGroup = series.Sum(); var mainDiv = new HtmlGenericControl("table"); mainDiv.Attributes["class"] = "table table-bordered"; // create tab for each sub group by distinct value foreach (var key in distinctFieldValues) { var detailContainer = new HtmlGenericControl("div"); //detailContainer.Style.Add("Width", "100%"); // Add DetailsWithChildrenControl var ctlDetailsWithChildren = Page.LoadControl(ApplicationCommon.DetailsWithChildrenListControl) as DetailsWithChildrenControl; ctlDetailsWithChildren.FieldConfigurationMode = ddlFieldConfigurationMode.SelectedValue; ctlDetailsWithChildren.SettingCategory = SettingCategory + "DetailsWithChildrenControl"; ctlDetailsWithChildren.IsFCModeVisible = false; ctlDetailsWithChildren.Setup("ScheduleDetail", "ScheduleDetail", "ScheduleDetailId", parentKey, subGroupByColumn, key, true, GetSubGroupData, GetColumns, "ScheduleDetail", DetailUserPreferenceCategoryId); ctlDetailsWithChildren.SetVisibilityOfListFeatures(false, false, false); ctlDetailsWithChildren.SetSession("true"); //ctlDetailsWithChildren.Attributes.Add("width", "100%"); //var filteredGroup = GetDataDetailsByKey(parentKey); var subGroupData = GetSubGroupData(parentKey, key); var item = ScheduleDetailDataManager.GetStatisticData(subGroupData, ScheduleDetailDataModel.DataColumns.ScheduleDetailTimeSpentConstant, ApplicationCommon.ScheduleStatisticUnknown); var statisticControl = Page.LoadControl(ApplicationCommon.ScheduleDetailStatisticControlPath) as ScheduleDetailStatistics; statisticControl.SetStatistics(parentKey, item); detailContainer.Controls.Add(ctlDetailsWithChildren); detailContainer.Controls.Add(statisticControl); // add row for each sub grouping for statistic info tab var subDiv = GetStatisticInfoHTMLRow(item, key, totalHoursWorkedForGroup, filteredGroup.Rows.Count); mainDiv.Controls.Add(subDiv); // add to tab control tabControl.AddTab(key, detailContainer); if (Page.IsPostBack) { ctlDetailsWithChildren.ShowData(false, true); } } TableReportContent.Controls.Add(mainDiv); // add summary row for sub grouping for statistics info tab var ctrlStatSummary = GetStatisticInfoHTMLSummaryRow(filteredGroup, oSearchFilter.SubGroupBy); TableReportContent.Controls.Add(ctrlStatSummary); var seperator = new HtmlGenericControl("div"); seperator.InnerHtml = "<br/>"; TableReportContent.Controls.Add(seperator); if (detailsGridContainer != null) { detailsGridContainer.Controls.Add(tabControl); } } else // only Group By Case { // Add DetailsWithChildrenControl var ctlDetailsWithChildren = Page.LoadControl(ApplicationCommon.DetailsWithChildrenListControl) as DetailsWithChildrenControl; ctlDetailsWithChildren.ID = "oList"; ctlDetailsWithChildren.SettingCategory = SettingCategory + "DetailsWithChildrenListControl"; ctlDetailsWithChildren.IsFCModeVisible = false; ctlDetailsWithChildren.Setup("ScheduleDetail", "ScheduleDetail", "ScheduleDetailId", parentKey, true, GetDataDetailsByKey, GetColumns, "ScheduleDetail", DetailUserPreferenceCategoryId); ctlDetailsWithChildren.SetVisibilityOfListFeatures(false, false, false); ctlDetailsWithChildren.SetSession("true"); ctlDetailsWithChildren.FieldConfigurationMode = ddlFieldConfigurationMode.SelectedValue; if (detailsGridContainer != null) { detailsGridContainer.Controls.Add(ctlDetailsWithChildren); } if (Page.IsPostBack) { ctlDetailsWithChildren.ShowData(false, true); } var statisticControlGroup = Page.LoadControl(ApplicationCommon.ScheduleDetailStatisticControlPath) as ScheduleDetailStatistics; statisticControlGroup.SetStatistics(parentKey, statisticItem); if (detailsGridContainer != null) { detailsGridContainer.Controls.Add(statisticControlGroup); } HtmlGenericControl ctrlStat = null; if (oSearchFilter.GroupBy == "-1") { ctrlStat = GetStatisticInfoHTMLRow(statisticItem, parentKeyName, TotalTimeSpentCount, AllDataRows.Rows.Count); } else { ctrlStat = GetStatisticInfoHTMLRow(statisticItem, parentKey, TotalTimeSpentCount, AllDataRows.Rows.Count); } //var ctrlStat = oSG.GetStatisticDataGrid(statisticItems, parentKey); TableReportContent.Controls.Add(ctrlStat); // check if all rows created, if yes then add, summary row in the end. if (TotalParentCount == GrdParentGrid.Items.Count + 1) { var ctrlStatSummary = GetStatisticInfoHTMLSummaryRow(AllDataRows, oSearchFilter.GroupBy); TableReportContent.Controls.Add(ctrlStatSummary); } } if (oSearchFilter.GroupBy == "-1") { oSC.Setup(parentKeyName, statisticItem); } else { oSC.Setup(parentKey, statisticItem); } }
public void FormatMail(DataTable dt1, string mailFormat, string toEmailAddress, string ccEmailAddress, string fromEmailAddress, bool isPreview, RequestProfile requestProfile) { var mailTemplate = mailFormat; decimal totalhrs = 0; var stringBuilder = new StringBuilder(); var strSubject = new StringBuilder(); var scheduleDetailData = (from m in dt1.AsEnumerable() select new { InTime = m["InTime"], OutTime = m["OutTime"], Message = m["Message"].ToString(), ScheduleDetailActivityCategory = m["ScheduleDetailActivityCategory"].ToString(), ScheduleDetailActivityCategoryId = m["ScheduleDetailActivityCategoryId"], WorkDate = m["WorkDate"], DateDiffHrs = m["DateDiffHrs"], Person = m["Person"], PersonId = m["PersonId"], EmailAddress = m["EmailAddress"], ScheduleId = m["ScheduleId"], WorkTicket = m["WorkTicket"] }).OrderBy(m => m.InTime).ToList(); var workDate_distinct = (from c in dt1.AsEnumerable() select new { WorkDate = c["WorkDate"].ToString(), Person = c["Person"], ScheduleId = c["ScheduleId"] }).Distinct(); if (!string.IsNullOrEmpty(mailTemplate)) { foreach (var c in workDate_distinct) { mailTemplate = mailTemplate.Replace("##PersonName##", c.Person.ToString()); mailTemplate = mailTemplate.Replace("##WorkDate##", Convert.ToDateTime(c.WorkDate).ToString("MMMM dd, yyyy")); } foreach (var item in scheduleDetailData) { if (item.DateDiffHrs != null) { totalhrs = totalhrs + Convert.ToDecimal(item.DateDiffHrs); } } mailTemplate = mailTemplate.Replace("##StartTime##", Convert.ToDateTime(scheduleDetailData.Select(grp => grp.InTime).First()).ToShortTimeString()); mailTemplate = mailTemplate.Replace("##EndTime##", Convert.ToDateTime(scheduleDetailData.Select(grp => grp.OutTime).Last()).ToShortTimeString()); mailTemplate = mailTemplate.Replace("##TotalHrs##", totalhrs.ToString("0.00")); var bColor = "#d9edf7"; var i = 0; foreach (var item in scheduleDetailData) { var jiraIssue = JiraDataManager.GetDetails(item.WorkTicket.ToString()); var jiraDescription = "N/A"; var jiraPriority = "N/A"; var jiraWorkHours = GetJiraWorkHours(item.WorkTicket.ToString(), Convert.ToDateTime(item.WorkDate), Convert.ToInt32(item.PersonId)); personId = Convert.ToInt32(item.PersonId); var minsDuration = ScheduleDataManager.GetMinutes(Convert.ToDouble(item.DateDiffHrs)); var jiraURL = "http://*****:*****@indusvalleyresearch.com"; } var nMail = new MailMessage(fromEmailAddress, strToEmail); //string strFromEmail = "*****@*****.**"; if (ccEmailAddress != string.Empty) { MailAddress copy = new MailAddress(ccEmailAddress); nMail.CC.Add(copy); } foreach (var item in scheduleDetailData) { string bccMail = item.EmailAddress.ToString(); if (bccMail != string.Empty) { nMail.Bcc.Add(new MailAddress(bccMail)); } } foreach (var c in workDate_distinct) { strSubject.Append("EOD Daily Summary Email for " + Convert.ToDateTime(c.WorkDate).ToString("MMMM dd, yyyy") + "(" + totalhrs.ToString("0.00") + " hrs" + ")"); strSubject.Append(" - Sent on behalf of " + c.Person); } nMail.Subject = strSubject.ToString(); nMail.Body = mailTemplate; nMail.IsBodyHtml = true; var a = new SmtpClient(); a.Send(nMail); } }