Example #1
0
        public ActionResult Edit(string id, NetworkCreditDetailView networkCreditDetailView)
        {
            networkCreditDetailView.EmployeeView = GetEmployee();

            #region Access Check
            bool hasPermission = GetEmployee().IsGuaranteed("NetworkCredit_Update");
            if (!hasPermission)
            {
                ModelState.AddModelError("", "AccessDenied");
                return(View(networkCreditDetailView));
            }
            #endregion

            if (ModelState.IsValid)
            {
                try
                {
                    #region DropDownList For MoneyAccounts
                    networkCreditDetailView.MoneyAccountViews = _moneyAccountService.GetBankAccounts().MoneyAccountViews;
                    List <DropDownItem> list = new List <DropDownItem>();
                    list.Add(new DropDownItem {
                        Value = Guid.Empty, Text = "انتخاب نشده"
                    });

                    foreach (MoneyAccountView moneyAccountView in networkCreditDetailView.MoneyAccountViews)
                    {
                        list.Add(new DropDownItem {
                            Value = moneyAccountView.ID.ToString(), Text = moneyAccountView.AccountName
                        });
                    }
                    var selectList = new SelectList(list, "Value", "Text");
                    ViewData["BankAccounts"] = selectList;
                    #endregion

                    EditNetworkCreditRequestOld request = new EditNetworkCreditRequestOld();
                    networkCreditDetailView.NetworkCreditView.Amount = Math.Abs(networkCreditDetailView.NetworkCreditView.Amount);

                    request.ID = Guid.Parse(id);
                    request.ModifiedEmployeeID = GetEmployee().ID;
                    if (networkCreditDetailView.NetworkCreditView.TypeForCreate == "برداشت")
                    {
                        request.Amount = -networkCreditDetailView.NetworkCreditView.Amount;
                    }
                    else
                    {
                        request.Amount = networkCreditDetailView.NetworkCreditView.Amount;
                    }
                    request.FromAccountID = networkCreditDetailView.NetworkCreditView.FromAccountID;
                    request.InvestDate    = networkCreditDetailView.NetworkCreditView.InvestDate;
                    request.NetworkID     = networkCreditDetailView.NetworkCreditView.NetworkID;
                    request.ToAccount     = networkCreditDetailView.NetworkCreditView.ToAccount;
                    request.Note          = networkCreditDetailView.NetworkCreditView.Note;
                    request.TransactionNo = networkCreditDetailView.NetworkCreditView.TransactionNo;
                    request.RowVersion    = networkCreditDetailView.NetworkCreditView.RowVersion;

                    GeneralResponse response = this._networkCreditService.EditNetworkCredit(request);

                    if (response.success)
                    {
                        return(RedirectToAction("Index/" + request.NetworkID));
                    }
                    else
                    {
                        foreach (string error in response.ErrorMessages)
                        {
                            ModelState.AddModelError("", error);
                        }
                        return(View(networkCreditDetailView));
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                    return(View(networkCreditDetailView));
                }
            }

            return(View(networkCreditDetailView));
        }
Example #2
0
        public GeneralResponse EditNetworkCredit(EditNetworkCreditRequestOld request)
        {
            GeneralResponse response      = new GeneralResponse();
            NetworkCredit   networkCredit = new NetworkCredit();

            networkCredit = _networkCreditRepository.FindBy(request.ID);

            if (networkCredit != null)
            {
                try
                {
                    networkCredit.ModifiedDate     = PersianDateTime.Now;
                    networkCredit.ModifiedEmployee = _employeeRepository.FindBy(request.ModifiedEmployeeID);
                    networkCredit.Amount           = request.Amount;
                    networkCredit.FromAccount      = this._moneyAccountRepository.FindBy(request.FromAccountID);
                    if (request.InvestDate != null)
                    {
                        networkCredit.InvestDate = request.InvestDate;
                    }
                    if (request.NetworkID != null)
                    {
                        networkCredit.Network = this._networkRepository.FindBy(request.NetworkID);
                    }
                    networkCredit.Note          = request.Note;
                    networkCredit.ToAccount     = request.ToAccount;
                    networkCredit.TransactionNo = request.TransactionNo;

                    if (networkCredit.RowVersion != request.RowVersion)
                    {
                        response.ErrorMessages.Add("EditConcurrencyKey");
                        return(response);
                    }
                    else
                    {
                        networkCredit.RowVersion += 1;
                    }

                    if (networkCredit.GetBrokenRules().Count() > 0)
                    {
                        foreach (BusinessRule businessRule in networkCredit.GetBrokenRules())
                        {
                            response.ErrorMessages.Add(businessRule.Rule);
                        }

                        return(response);
                    }

                    _networkCreditRepository.Save(networkCredit);
                    _uow.Commit();

                    ////response.success = true;
                }
                catch (Exception ex)
                {
                    response.ErrorMessages.Add(ex.Message);
                }
            }
            else
            {
                response.ErrorMessages.Add("NoItemToEditKey");
            }
            return(response);
        }