private void FillGridView() { var qtr = Quater; var partnerId = PartnerId; var targetVMList = new List <TargetViewModel>(); var products = _db.Products.OrderBy(p => p.SortOrder); foreach (var product in products) { var target = _db.Targets.FirstOrDefault(t => t.PartnerId == partnerId && t.QuarterYear == qtr && t.ProductId == product.ProductId); if (target == null) { target = new Data.Models.Target(); } var targetVM = new TargetViewModel { TargetId = target.TargetId, M1 = target.M1, M2 = target.M2, M3 = target.M3, PartnerId = target.PartnerId, ProductCategory = product.ProductCategory, ProductDescription = product.ProductDescription, ProductId = product.ProductId, QuarterYear = target.QuarterYear }; var prevQtr = Utility.QuarterHelper.GetPrevQuarter(Quater); var prevQtrTarget = _db.Targets.Where(t => t.PartnerId == PartnerId && t.ProductId == product.ProductId && t.QuarterYear == prevQtr.QuarterYear).ToList(); if (prevQtrTarget.Any()) { targetVM.PrevQtr = prevQtrTarget.Sum(t => t.M1 + t.M2 + t.M3); } targetVMList.Add(targetVM); } GridView1.DataSource = targetVMList; GridView1.DataBind(); GridView1.UseAccessibleHeader = true; GridView1.HeaderRow.TableSection = TableRowSection.TableHeader; }
protected void btnSave_Click(object sender, EventArgs e) { foreach (GridViewRow row in GridView1.Rows) { var targetId = 0; var target = new Data.Models.Target(); var hdnTargetId = (HiddenField)row.FindControl("hdnTargetId"); if (hdnTargetId != null && !string.IsNullOrEmpty(hdnTargetId.Value)) { targetId = Convert.ToInt32(hdnTargetId.Value); } if (targetId > 0) { target = _db.Targets.Find(targetId); } else { target.ProductId = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value.ToString()); target.PartnerId = PartnerId; target.QuarterYear = Quater; } var txtM1 = (TextBox)row.FindControl("txtM1"); if (txtM1 != null) { target.M1 = Convert.ToInt32(txtM1.Text); } var txtM2 = (TextBox)row.FindControl("txtM2"); if (txtM2 != null) { target.M2 = Convert.ToInt32(txtM2.Text); } var txtM3 = (TextBox)row.FindControl("txtM3"); if (txtM3 != null) { target.M3 = Convert.ToInt32(txtM3.Text); } if (targetId > 0) { target.ModifiedDate = System.DateTime.Now; target.ModifiedUser = UserId; _db.Entry <Target>(target).State = EntityState.Modified; } else { target.CreatedDate = System.DateTime.Now; target.CreatedUser = UserId; _db.Targets.Add(target); } _db.SaveChanges(); FillGridView(); } }