// create an method for upsert and can get null Id in case of create public IActionResult Upsert(int?id) { PRApprovalVM prapprovalVM = new PRApprovalVM() { PRApproval = new PRApproval(), EmployeeList = _unitOfWork.Employee.GetAll().Select(i => new SelectListItem { Text = i.EmployeeName, Value = i.Id.ToString() }), VendorList = _unitOfWork.Vendor.GetAll().Select(i => new SelectListItem { Text = i.VendorName, Value = i.Id.ToString() }), PurchaseTypeList = _unitOfWork.PurchaseType.GetAll().Select(i => new SelectListItem { Text = i.PurcahseTypeName, Value = i.Id.ToString() }), ProjectList = _unitOfWork.Project.GetAll().Select(i => new SelectListItem { Text = i.ProjectName, Value = i.Id.ToString() }), }; if (id == null) // create case { return(View(prapprovalVM)); } // this for edit request prapprovalVM.PRApproval = _unitOfWork.PRApproval.Get(id.GetValueOrDefault()); // To add stored procedure // var parameter = new DynamicParameters(); // arrange parameters for sql server //parameter.Add("@Id", id); // arrange to send the Id // var objFromDb = _unitOfWork.PRApproval.Get(id); //prapproval = _unitOfWork.SP_Call.OneRecord<PRApproval>(SD.Proc_PRApproval_Get, parameter); if (prapprovalVM.PRApproval == null) { return(NotFound()); } return(View(prapprovalVM)); // return View(); }
[Authorize(Roles = SD.Role_Admin_Modify + "," + SD.Role_Admin_View + "," + SD.Role_Employee_Modify)]// Add authorization Level public IActionResult Upsert(PRApprovalVM prapprovalVM) { if (ModelState.IsValid) { // to pass parameters to sql procedrues var parameter = new DynamicParameters(); parameter.Add("@PRApprovalId", prapprovalVM.PRApproval.PRApprovalId); parameter.Add("@PRApprovalTitle ", prapprovalVM.PRApproval.PRApprovalTitle); parameter.Add("@PRApprovalDescription ", prapprovalVM.PRApproval.PRApprovalDescription); parameter.Add("@WorkOrder ", prapprovalVM.PRApproval.WorkOrder); parameter.Add("@CMOA", prapprovalVM.PRApproval.CMOA); parameter.Add("@MatCorVer ", prapprovalVM.PRApproval.MatCorVer); parameter.Add("@Warranty ", prapprovalVM.PRApproval.Warranty); parameter.Add("@WorkDurationSiteDays ", prapprovalVM.PRApproval.WorkDurationSiteDays); parameter.Add("@RateSheet ", prapprovalVM.PRApproval.RateSheet); parameter.Add("@GateAccess ", prapprovalVM.PRApproval.GateAccess); parameter.Add("@RentalPeriodDays ", prapprovalVM.PRApproval.RentalPeriodDays); parameter.Add("@EquipmentTireEngine ", prapprovalVM.PRApproval.EquipmentTireEngine); parameter.Add("@JustificationVendor ", prapprovalVM.PRApproval.JustificationVendor); parameter.Add("@VendorId", prapprovalVM.PRApproval.VendorId); parameter.Add("@PurchaseTypeId", prapprovalVM.PRApproval.PurchaseTypeId); parameter.Add("@SourcedBy", prapprovalVM.PRApproval.SourcedBy); parameter.Add("@ProjectId", prapprovalVM.PRApproval.ProjectId); // File operation started string webRootPath = _hostEnvironment.WebRootPath; PRApproval objFromDB = _unitOfWork.PRApproval.Get(prapprovalVM.PRApproval.Id); //testing now for delete the old files if ((objFromDB != null) && (objFromDB.ExcelFileUrl != null)) // //testing now for delete the old files { // this is an edit and we need to remove old image // var quotePath = Path.Combine(webRootPath, quoteVM.Quote.PdfUrl.TrimStart('\\')); var excelPath = Path.Combine(webRootPath, objFromDB.ExcelFileUrl.TrimStart('\\')); if (System.IO.File.Exists(excelPath)) { System.IO.File.Delete(excelPath); } } // Start check case if edit or new to create the ID if (prapprovalVM.PRApproval.Id == 0) { prapprovalVM.PRApproval.PRApprovalId = GetNextPRID(); } else { prapprovalVM.PRApproval.PRApprovalId = _unitOfWork.PRApproval.Get(prapprovalVM.PRApproval.Id).PRApprovalId; } // End check case if edit or new to create the ID // Adding operation to create an excel file var ExcelFileUrlName = CreateEmptyExcelPRA(prapprovalVM.PRApproval.PRApprovalId.ToString(), _unitOfWork.Vendor.Get(prapprovalVM.PRApproval.VendorId).VendorName, prapprovalVM.PRApproval.PRApprovalTitle, _unitOfWork.PurchaseType.Get(prapprovalVM.PRApproval.PurchaseTypeId).PurcahseCode.ToString(), "0"); parameter.Add("@ExcelFileUrl", ExcelFileUrlName); prapprovalVM.PRApproval.ExcelFileUrl = ExcelFileUrlName; // File Operation Ended if (prapprovalVM.PRApproval.Id == 0) // create case whenever no ID posted { //prapprovalVM.PRApproval.PRApprovalId = GetNextPRID(); // Get next ID _unitOfWork.PRApproval.Add(prapprovalVM.PRApproval); // to allow sql procedrues // _unitOfWork.SP_Call.Execute(SD.Proc_PRApproval_Create, parameter); } else { parameter.Add("@Id", prapprovalVM.PRApproval.Id); // _unitOfWork.SP_Call.Execute(SD.Proc_PRApproval_Update, parameter); _unitOfWork.PRApproval.Update(prapprovalVM.PRApproval); } _unitOfWork.Save(); EditExcelPRA(_unitOfWork.PRApproval.Get(prapprovalVM.PRApproval.Id).ExcelFileUrl, prapprovalVM.PRApproval); return(RedirectToAction(nameof(Index))); // if any mistake the name is gotted } return(View(prapprovalVM)); }