public UnitOfWork() { _context = new DataContext(); People = new PersonRepository(_context); Payments = new PaymentRepository(_context); PaymentDetails = new PaymentDetailRepository(_context); }
//public List<KeyValuePair<int, string>> PaymentTypeList //{ // get // { // var values = Enum.GetValues(typeof (PaymentTypeEnum)).Cast<int>(); // var result = new List<KeyValuePair<int, string>>(); // foreach (int item in values) // { // result.Add(new KeyValuePair<int, string>(item,Enum.GetName(typeof(PaymentTypeEnum),item))); // } // return result; // } //} protected void Page_Load(object sender, EventArgs e) { if (Environment.MachineName.ToLower() == "arash-laptop") { Session["User"] = new BaseRepository <User>().GetById(1); } try { Debuging.Info("Payment->Try to Page_Load"); if (!Page.IsPostBack) { BindDrpFactor(); if (Page.RouteData.Values["Id"].ToSafeInt() != 0) { var paymentId = Page.RouteData.Values["Id"].ToSafeInt(); var paymentRepo = new PaymentRepository(); var payment = paymentRepo.GetById(paymentId); txtDescription.Text = payment.Description; txtPaymentNo.Text = payment.PaymentNo.ToString(); drpFactor.SelectedValue = payment.FactorId.ToString(); drpFactor_OnSelectedIndexChanged(sender, new RadComboBoxSelectedIndexChangedEventArgs("", "", payment.FactorId.ToString(), "")); ucDate.Date = payment.PaymentDate.ToFaDate(); var paymentDetailRepo = new PaymentDetailRepository(); gridPayment.DataSource = Session["GridSource"] = paymentDetailRepo.GetPaymentDetails(paymentId); gridPayment.DataBind(); } else { ucDate.Date = DateTime.Now.ToFaDate(); gridPayment.DataSource = Session["GridSource"] = new List <PaymentDetail>(); gridPayment.DataBind(); txtPaymentNo.Text = (new PaymentRepository().GetMaxPaymentNo() + 1).ToString(); } } } catch (Exception ex) { Debuging.Error(ex, MethodBase.GetCurrentMethod().Name); } Debuging.Info("Payment->End of Page_Load"); }
protected void btnSave_Click(object sender, EventArgs e) { try { if (!ValidateData()) { return; } if (Page.RouteData.Values["Id"].ToSafeInt() == 0) { var uow = new UnitOfWork(); var payment = new Repository.Entity.Domain.Payment(); payment.PaymentNo = txtPaymentNo.Text.ToSafeInt(); payment.FactorId = drpFactor.SelectedValue.ToSafeInt(); payment.InsertDateTime = DateTime.Now; payment.PaymentDate = ucDate.Date.ToEnDate(); payment.Description = txtDescription.Text; var fd = ((List <PaymentDetail>)Session["GridSource"]); payment.TotalPrice = fd.Sum(a => a.Price); payment.PaymentDetails = fd; uow.Payments.Create(payment); var result = uow.SaveChanges(); if (result.IsSuccess) { RedirectPaymentListActionResultWithMessage(); } else { Debuging.Error(MethodBase.GetCurrentMethod().Name + "->" + result.ResultMessage); ShowErrorMsg(MessageText.UNKNOWN_ERROR); } } else { var uow = new UnitOfWork(); var toBeEditedPayment = uow.Payments.Find(Page.RouteData.Values["Id"].ToSafeInt()); toBeEditedPayment.PaymentNo = txtPaymentNo.Text.ToSafeInt(); toBeEditedPayment.FactorId = drpFactor.SelectedValue.ToSafeInt(); toBeEditedPayment.UpdateDateTime = DateTime.Now; //toBeEditedPayment.FactorDate = txtDate.Text.ToEnDate(); toBeEditedPayment.Description = txtDescription.Text; toBeEditedPayment.PaymentDate = ucDate.Date.ToEnDate(); var pd = ((List <PaymentDetail>)Session["GridSource"]); toBeEditedPayment.TotalPrice = pd.Sum(a => a.Price); toBeEditedPayment.PaymentDetails = pd; var oldPdIds = new PaymentDetailRepository().GetPaymentDetails(toBeEditedPayment.Id).Select(a => a.Id); uow.PaymentDetails.Delete(a => oldPdIds.Contains(a.Id)); var result = uow.SaveChanges(); if (result.IsSuccess) { RedirectPaymentListActionResultWithMessage(); } else { Debuging.Error(MethodBase.GetCurrentMethod().Name + "->" + result.ResultMessage); ShowErrorMsg(MessageText.UNKNOWN_ERROR); } } } catch (Exception ex) { Debuging.Error(ex, MethodBase.GetCurrentMethod().Name); ShowErrorMsg(MessageText.UNKNOWN_ERROR); } }