private void ProcessForm(int queryId, bool isDelete)
        {
            try
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    WeeklyProductionCapacityBO objProductionCapacity = new WeeklyProductionCapacityBO(this.ObjContext);
                    if (queryId > 0)
                    {
                        objProductionCapacity.ID = queryId;
                        objProductionCapacity.GetObject();
                    }

                    if (isDelete)
                    {
                        objProductionCapacity.Delete();
                    }
                    else
                    {
                        //objProductionCapacity.Name = this.txtAttributeName.Text;
                        //objProductionCapacity.Description = this.txtDescription.Text;

                        if (queryId == 0)
                        {
                            objProductionCapacity.Add();
                        }
                    }

                    this.ObjContext.SaveChanges();
                    ts.Complete();
                }
            }
            catch (Exception ex)
            {
                // Log the error
                //IndicoLogging.log("Error occured while Adding the Item", ex);
            }
        }
        private void AddNextYear()
        {
            using (var scope = new TransactionScope())
            {
                var currentYear = DateTime.Now.Year;

                var currentWeeks = new WeeklyProductionCapacityBO(ObjContext).GetAllObject();
                if (currentWeeks.Any())
                {
                    if (currentWeeks.Count > 1)
                    {
                        var lastWeek = currentWeeks.OrderBy(w => w.WeekendDate).Last().WeekendDate;
                        currentYear = lastWeek.Year == currentWeeks[currentWeeks.Count() - 2].WeekendDate.Year ?
                                      lastWeek.AddYears(1).Year : lastWeek.Year;
                    }
                    else
                    {
                        currentYear = currentWeeks.Last().WeekendDate.AddYears(1).Year;
                    }
                }
                var currentYearStartDate = new DateTime(currentYear, 1, 1);
                while (currentYearStartDate.DayOfWeek != DayOfWeek.Tuesday)
                {
                    currentYearStartDate = currentYearStartDate.AddDays(1);
                }
                var weekNumber = 1;
                while (currentYearStartDate.Year == currentYear)
                {
                    var weeklyProductionCapacity = new WeeklyProductionCapacityBO(ObjContext)
                    {
                        WeekNo = weekNumber, WeekendDate = currentYearStartDate, SalesTarget = 0, HoursPerDay = (decimal)10.0, NoOfHolidays = 6, OrderCutOffDate = currentYearStartDate.AddDays(-18), EstimatedDateOfDespatch = currentYearStartDate, EstimatedDateOfArrival = currentYearStartDate.AddDays(3)
                    };

                    weeklyProductionCapacity.Add();

                    var polodetails = new WeeklyProductionCapacityDetailsBO(ObjContext)
                    {
                        ItemType = 1, TotalCapacity = 5850, FivePcsCapacity = 100, SampleCapacity = 200, Workers = 65, Efficiency = (decimal)0.45
                    };
                    var outerwaredetails = new WeeklyProductionCapacityDetailsBO(ObjContext)
                    {
                        ItemType = 2, TotalCapacity = 450, FivePcsCapacity = 10, SampleCapacity = 20, Workers = 15, Efficiency = (decimal)0.25
                    };
                    weeklyProductionCapacity.WeeklyProductionCapacityDetailssWhereThisIsWeeklyProductionCapacity.Add(polodetails);
                    weeklyProductionCapacity.WeeklyProductionCapacityDetailssWhereThisIsWeeklyProductionCapacity.Add(outerwaredetails);
                    currentYearStartDate = currentYearStartDate.AddDays(7);
                    weekNumber++;
                }
                ObjContext.SaveChanges();
                scope.Complete();
            }
            PopulateDataGrid();


            //try
            //{
            //    using (var ts = new TransactionScope())
            //    {
            //        var currentYear = DateTime.Now.Year.ToString();
            //        bool isLeap = false;


            //        List<WeeklyProductionCapacityBO> lstWeeklyProdCap = (new WeeklyProductionCapacityBO()).SearchObjects();
            //        if (lstWeeklyProdCap.Count > 0)
            //        {
            //            currentYear = lstWeeklyProdCap.Last().WeekendDate.AddYears(1).Year.ToString();
            //        }

            //        DateTime dFirst = DateTime.Parse("01 / 01 /" + currentYear);
            //        DateTime dLast = DateTime.Parse("31 / 12 /" + currentYear);

            //        if ((int.Parse(currentYear) % 4 == 0) && (int.Parse(currentYear) % 100 != 0) || (int.Parse(currentYear) % 400 == 0))
            //        {
            //            isLeap = true;
            //        }

            //        int weekCount = (isLeap == true) ? this.GetWeeksInYear(int.Parse(currentYear), dLast) : int.Parse((dLast.Subtract(dFirst).Days / 7).ToString());
            //        //int id = this.GetWeeksInYear(int.Parse(currentYear), dLast);

            //        DateTime firstTuesday = dFirst;

            //        while (firstTuesday.DayOfWeek != DayOfWeek.Tuesday)
            //        {
            //            firstTuesday = firstTuesday.AddDays(1);
            //        }

            //        for (int i = 1; i <= weekCount; i++)
            //        {
            //            WeeklyProductionCapacityBO objProductionCapacity = new WeeklyProductionCapacityBO(this.ObjContext);
            //            objProductionCapacity.WeekNo = i;
            //            objProductionCapacity.WeekendDate = firstTuesday;
            //            objProductionCapacity.Capacity = 0;
            //            objProductionCapacity.Add();

            //            firstTuesday = firstTuesday.AddDays(7);
            //        }

            //        this.ObjContext.SaveChanges();
            //        ts.Complete();
            //    }
            //}
            //catch (Exception)
            //{
            //    //ignored
            //}
        }
        private void ProcessForm(int queryId, bool isDelete)
        {
            try
            {
                using (var ts = new TransactionScope())
                {
                    var objProductionCapacity = new WeeklyProductionCapacityBO(ObjContext);
                    if (queryId > 0)
                    {
                        objProductionCapacity.ID = queryId;
                        objProductionCapacity.GetObject();
                    }
                    if (isDelete)
                    {
                        objProductionCapacity.Delete();
                    }

                    else
                    {
                        objProductionCapacity.NoOfHolidays            = int.Parse(txtWorkingDays.Text);
                        objProductionCapacity.HoursPerDay             = decimal.Parse(txtWorkingHours.Text);
                        objProductionCapacity.OrderCutOffDate         = DateTime.Parse(txtOrderCutOffDate.Text);
                        objProductionCapacity.EstimatedDateOfDespatch = DateTime.Parse(txtETD.Text);
                        objProductionCapacity.EstimatedDateOfArrival  = DateTime.Parse(txtETA.Text);
                        objProductionCapacity.Notes       = txtNotes.Text;
                        objProductionCapacity.SalesTarget = decimal.Parse(txtSalesTaget.Text);

                        foreach (RepeaterItem rptItem in rptItemTypes.Items)
                        {
                            var hdnProdCapDetailID = (HiddenField)rptItem.FindControl("hdnProdCapDetailID");
                            var hdnItemTypeID      = (HiddenField)rptItem.FindControl("hdnItemTypeID");
                            var txtTotalCapacity   = (TextBox)rptItem.FindControl("txtTotalCapacity");
                            var txt5PcsCapacity    = (TextBox)rptItem.FindControl("txt5PcsCapacity");
                            var txtSampleCapacity  = (TextBox)rptItem.FindControl("txtSampleCapacity");
                            var txtWorkers         = (TextBox)rptItem.FindControl("txtWorkers");
                            var txtEfficiency      = (TextBox)rptItem.FindControl("txtEfficiency");
                            var objProdCapDetailBO = new WeeklyProductionCapacityDetailsBO(ObjContext);
                            if (int.Parse(hdnProdCapDetailID.Value) > 0)
                            {
                                objProdCapDetailBO.ID = int.Parse(hdnProdCapDetailID.Value);
                                objProdCapDetailBO.GetObject();
                            }
                            else
                            {
                                objProdCapDetailBO.WeeklyProductionCapacity = queryId;
                                objProdCapDetailBO.ItemType = int.Parse(hdnItemTypeID.Value);
                            }
                            objProdCapDetailBO.TotalCapacity   = int.Parse(txtTotalCapacity.Text) * objProductionCapacity.NoOfHolidays;
                            objProdCapDetailBO.FivePcsCapacity = int.Parse(txt5PcsCapacity.Text) * objProductionCapacity.NoOfHolidays;
                            objProdCapDetailBO.SampleCapacity  = int.Parse(txtSampleCapacity.Text) * objProductionCapacity.NoOfHolidays;
                            objProdCapDetailBO.Workers         = int.Parse(txtWorkers.Text);
                            objProdCapDetailBO.Efficiency      = decimal.Parse(txtEfficiency.Text);
                        }
                        if (queryId == 0)
                        {
                            objProductionCapacity.Add();
                        }
                    }
                    ObjContext.SaveChanges();
                    ts.Complete();
                }
            }
            catch (Exception ex)
            {
                IndicoLogging.log.Error("Error occurred while Adding or Editing  or Deleting  the details in Production Capacity", ex);
            }
        }