public IActionResult SettlementRuleCreate(SettlementRule rule) { SettlementRuleViewModel viewModel = new SettlementRuleViewModel(); using (var transaction = _unitOfWork.MTDBContext.Database.BeginTransaction()) { if (ModelState.IsValid) { try { if (rule.Frequency <= 0) { viewModel.MessageText = Notification.Show("Frequency must be grater than 0", "Info", type: ToastType.Info); viewModel = InitializeData(viewModel); return(View(viewModel)); } int ruleCount = 0; ruleCount = _unitOfWork.SettlementRuleRepo.GetRuleCount(); ruleCount = ruleCount == 0 ? 1 : ruleCount + 1; rule.SettlementRuleId = "SET-" + ruleCount.ToString().PadLeft(5, '0'); rule.Commission = rule.CommissionEnable ? rule.Commission : null; rule.VATPercentage = rule.VATEnable ? rule.VATPercentage : null; rule.IsActive = false; rule.IsApprove = false; rule.IsDeleted = false; rule.EntryBy = 1; rule.EntryDate = Convert.ToDateTime(DateTime.Now); rule.UpdatedBy = 1; rule.UpdatedDate = Convert.ToDateTime(DateTime.Now); _unitOfWork.SettlementRuleRepo.Add(rule); _unitOfWork.Save(); transaction.Commit(); viewModel.MessageText = Notification.Show(CustomMessage.SaveMessage("Settlement Rule"), "Success", type: ToastType.Success); } catch (Exception ex) { transaction.Rollback(); viewModel.MessageText = Notification.Show(CustomMessage.SaveErrorMessage("Settlement Rule"), "Error", type: ToastType.Error); } } if (!ModelState.IsValid) { viewModel.MessageText = Notification.Show("Form data is not valid", "Error", type: ToastType.Error); } viewModel = InitializeData(viewModel); return(View(viewModel)); } }