public RedirectToRouteResult Approve(string requestid, string itemcode) { StockAdjustmentDetail stockadjdet = repo.GetStockAdjustmentDetailById(requestid, itemcode); stockadjdet.Status = "Approved"; stockadjdet.NotificationStatus = "Unread"; stockadjdet.StockAdjustmentHeader.DateProcessed = DateTime.Now; repo.UpdateStockAdjustmentDetail(stockadjdet); repo.Save(); using (SSISdbEntities m = new SSISdbEntities()) { StockAdjustmentHeader sjh = m.StockAdjustmentHeaders.Where(x => x.RequestId == requestid).FirstOrDefault(); Employee emp = m.Employees.Where(x => x.EmployeeID == sjh.Requestor).FirstOrDefault(); string title = "[LogicUniversity] Stock Adjustment Approved: " + requestid; string message = "Item Code: " + itemcode + " has been approved."; // Send to Employee CommonLogic.Email.sendEmail("*****@*****.**", emp.EmployeeEmail, title, message); } Session["StockAdjPage"] = 2; Session["StoreInventoryTabIndex"] = "1"; return(RedirectToAction("Inventory", "Store")); }
public RedirectToRouteResult AdjustItem(StockRetrievalDetail item1, Item item2) { string itemCode; using (SSISdbEntities m = new SSISdbEntities()) { m.Configuration.ProxyCreationEnabled = false; itemCode = m.Items.Where(x => x.Description == item2.Description).FirstOrDefault().ItemCode; int qtyOnHand = m.Items.Where(x => x.ItemCode == itemCode).Select(x => x.Quantity).FirstOrDefault(); StockRetrievalDetail srd = m.StockRetrievalDetails.Where(x => x.ItemCode == itemCode && x.Id == item1.Id).FirstOrDefault(); int qtyAdjusted = item1.QuantityAdjusted; if (qtyOnHand < qtyAdjusted) { TempData["ErrorMsg"] = "Quantity adjusted cannot be more than quantity on hand. Please check the value."; } else { srd.QuantityAdjusted = srd.QuantityAdjusted + qtyAdjusted; srd.QuantityRetrieved = srd.QuantityRetrieved - qtyAdjusted; srd.Remarks = item1.Remarks; m.SaveChanges(); } } return(RedirectToAction("Disbursements", "Store")); }
public ActionResult DisplayReqHistoryDetails2(string formId) { TempData["goBackToDelivery"] = true; Session["DeptReqTabIndex"] = "3"; string deptCode = Session["DepartmentCode"].ToString(); ReqHistoryModel model; using (SSISdbEntities e = new SSISdbEntities()) { StaffRequisitionHeader srh = e.StaffRequisitionHeaders.Where(x => x.FormID == formId).FirstOrDefault(); string repId = e.DepartmentDetails.Where(x => x.DepartmentCode == deptCode).Select(x => x.RepresentativeID).FirstOrDefault(); string repName = e.Employees.Where(x => x.EmployeeID == repId).Select(x => x.EmployeeName).FirstOrDefault(); string requestor = e.Employees.Where(x => x.EmployeeID == srh.EmployeeID).Select(x => x.EmployeeName).FirstOrDefault(); string approverName = e.Employees.Where(x => x.EmployeeID == srh.Approver).Select(x => x.EmployeeName).FirstOrDefault(); string approvalStatus = srh.ApprovalStatus; DateTime requestDate = srh.DateRequested; model = new ReqHistoryModel(); model.ApprovalStatus = approvalStatus; model.ApproverName = approverName; model.RepName = repName; model.RequestDate = requestDate; model.Requestor = requestor; Session["CurrentReqHistory"] = model; } Session["ReqHistoryPage"] = "2"; Session["id"] = formId; return(RedirectToAction("RequisitionHistory", "Dept")); }
public RedirectToRouteResult MsgClicked(string ReqFormId, string item) { using (SSISdbEntities e = new SSISdbEntities()) { StockAdjustmentDetail sad = e.StockAdjustmentDetails .Where(x => x.RequestId == ReqFormId && x.ItemCode == item).FirstOrDefault(); if (sad.NotificationStatus == "Unread") { int noUnreadRequests = (int)Session["NoUnreadRequests"]; noUnreadRequests--; Session["NoUnreadRequests"] = noUnreadRequests; } sad.NotificationStatus = "Read"; e.SaveChanges(); } if (Session["Role"].ToString() == "Store Manager" || Session["Role"].ToString() == "Store Supervsor") { return(RedirectToAction("Store", "Approval")); } else { Session["StoreInventoryTabIndex"] = 3; return(RedirectToAction("Store", "Inventory")); } }
public RedirectToRouteResult EditNewOrderQty() { using (SSISdbEntities e = new SSISdbEntities()) { Session["newReqEditMode"] = true; return(RedirectToAction("Requisition", "Dept")); } }
public ActionResult CollectionPoint() { //get collection point id belonging to dept using (SSISdbEntities e = new SSISdbEntities()) { string deptCode = Session["DepartmentCode"].ToString(); string collectionPointId = e.DepartmentDetails.Where(x => x.DepartmentCode == deptCode).Select(x => x.CollectionPointID).FirstOrDefault(); ViewBag.collectionPointId = collectionPointId; } return(View()); }
public RedirectToRouteResult EditExisitingOrderQty() { using (SSISdbEntities e = new SSISdbEntities()) { Session["existingReqEditMode"] = true; Session["ReqHistoryPage"] = "2"; return(RedirectToAction("RequisitionHistory", "Dept")); } }
public RedirectToRouteResult DiscardSelBackorders(string[] itemCodes, string[] formIds) { using (SSISdbEntities e = new SSISdbEntities()) { DAL.StaffRequisitionDetailsRepositoryImpl dal = new DAL.StaffRequisitionDetailsRepositoryImpl(e); DAL.StaffRequisitionRepositoryImpl dalHeader = new DAL.StaffRequisitionRepositoryImpl(e); int index = 0; foreach (string i in itemCodes) { string formId = formIds[index]; //update SRD StaffRequisitionDetail srd = new StaffRequisitionDetail(); srd = dal.GetStaffRequisitionDetailById(formId, itemCodes[index]); srd.CancelledBackOrdered = srd.QuantityBackOrdered; srd.QuantityBackOrdered = 0; dal.UpdateStaffRequisitionDetail(srd); //update SRH StaffRequisitionHeader srh = new StaffRequisitionHeader(); srh = dalHeader.GetStaffRequisitionHeaderById(formId); string stockRetrievalId = e.StockRetrievalReqForms.Where(x => x.ReqFormID == formId).Select(x => x.StockRetrievalID).FirstOrDefault(); byte? disbursedStatus = e.StockRetrievalHeaders.Where(x => x.ID == stockRetrievalId).Select(x => x.Disbursed).FirstOrDefault(); bool backOrderStatus = false; List <StaffRequisitionDetail> reqDetailsList = e.StaffRequisitionDetails.Where(x => x.FormID == formId).ToList(); foreach (StaffRequisitionDetail detail in reqDetailsList) { if (detail.QuantityBackOrdered > 0) { backOrderStatus = true; } } switch (backOrderStatus) { case true: //backorder exists for current SR break; case false: srh.Status = "Cancelled"; break; } dalHeader.UpdateStaffRequisitionHeader(srh); index++; e.SaveChanges(); } } Session["DeptReqTabIndex"] = "2"; return(RedirectToAction("Requisition", "Dept")); }
public RedirectToRouteResult EditPOQtyOrdered(string data, int index) { using (SSISdbEntities e = new SSISdbEntities()) { List <POFullDetail> poFullDetailList = (List <POFullDetail>)Session["POItems"]; POFullDetail item = poFullDetailList.ElementAt(index); item.QuantityOrdered = Int32.Parse(data); Session["POItems"] = poFullDetailList; return(RedirectToAction("Requisition", "Dept")); } }
public RedirectToRouteResult EditNewPOQty(string data, int index) { using (SSISdbEntities e = new SSISdbEntities()) { List <POFullDetail> poFullDetailsList = (List <POFullDetail>)Session["newPOList"]; POFullDetail item = poFullDetailsList.ElementAt(index); item.QuantityOrdered = Int32.Parse(data); Session["newAdjList"] = poFullDetailsList; return(RedirectToAction("Purchase", "Store")); } }
public RedirectToRouteResult ExitEditExistingOrderQty(object[] arr, string[] arr1) { if (arr.Count() == 0 || arr1.Count() == 0) { return(null); } else { try { string formId = Session["id"].ToString(); Session["existingReqEditMode"] = false; //update details of current req history using (SSISdbEntities m = new SSISdbEntities()) { m.Configuration.ProxyCreationEnabled = false; List <RequisitionHistoryDetail> reqDetailsList = m.RequisitionHistoryDetails.Where(x => x.FormID == formId).ToList <RequisitionHistoryDetail>(); DAL.StaffRequisitionDetailsRepositoryImpl dal = new DAL.StaffRequisitionDetailsRepositoryImpl(m); StaffRequisitionDetail srd = new StaffRequisitionDetail(); foreach (RequisitionHistoryDetail rhd in reqDetailsList) { string itemCode = m.Items.Where(x => x.Description == rhd.Description).Select(x => x.ItemCode).FirstOrDefault(); srd = m.StaffRequisitionDetails.Where(x => x.FormID == formId && x.ItemCode == itemCode).FirstOrDefault(); int index = reqDetailsList.IndexOf(rhd); srd.QuantityOrdered = Int32.Parse(arr1[index]); dal.UpdateStaffRequisitionDetail(srd); } m.SaveChanges(); } Session["ReqHistoryPage"] = "2"; } catch (FormatException) { TempData["ErrorMsg"] = "Invalid Quantity!"; return(null); } catch (Exception) { TempData["ErrorMsg"] = "An unexpected error has occured. Please try again."; return(null); } } return(RedirectToAction("RequisitionHistory", "Dept")); }
public RedirectToRouteResult DisplayGR(FormCollection data) { Session["GRListPage"] = "2"; string rNo = data["ReceiptNo"]; Session["grId"] = rNo; using (SSISdbEntities e = new SSISdbEntities()) { Session["poNumber"] = e.GoodsReceivedLists.Where(x => x.ReceiptNo == rNo).Select(x => x.PONumber).FirstOrDefault(); } return(RedirectToAction("Purchase", "Store")); }
public ActionResult Reorder() { Session["StoreInventoryTabIndex"] = "2"; List <ReorderList> reorderLists; using (SSISdbEntities m = new SSISdbEntities()) { reorderLists = m.ReorderLists.Where(x => x.ActualReorder > 0).ToList(); Session["ReorderList"] = reorderLists; } return(View()); }
public RedirectToRouteResult EditSupplier(Supplier[] arr) { using (SSISdbEntities e = new SSISdbEntities()) { DAL.SupplierRepositoryImpl dal = new DAL.SupplierRepositoryImpl(e); dal.UpdateSupplier(arr[0]); e.SaveChanges(); Session["MaintenanceSuppliersPage"] = "1"; return(RedirectToAction("Maintenance", "Store")); } }
public RedirectToRouteResult EditCollectionPoint(CollectionPoint[] arr) { using (SSISdbEntities e = new SSISdbEntities()) { DAL.CollectionPointRepositoryImpl dal = new DAL.CollectionPointRepositoryImpl(e); dal.UpdateCollectionPoint(arr[0]); e.SaveChanges(); Session["MaintenanceCollectionPointsPage"] = "1"; return(RedirectToAction("Maintenance", "Store")); } }
public RedirectToRouteResult AddNewSupplier(Supplier supplier) { using (SSISdbEntities e = new SSISdbEntities()) { supplier.Active = 1; DAL.SupplierRepositoryImpl dal = new DAL.SupplierRepositoryImpl(e); dal.InsertSupplier(supplier); e.SaveChanges(); return(RedirectToAction("Maintenance", "Store")); } }
public RedirectToRouteResult EditNewPOSupplier(string data, int index) { using (SSISdbEntities e = new SSISdbEntities()) { List <POFullDetail> poFullDetailsList = (List <POFullDetail>)Session["newPOList"]; POFullDetail item = poFullDetailsList.ElementAt(index); item.CompanyName = data; SupplierPriceList spl = e.SupplierPriceLists.Where(y => y.SupplierCode == item.CompanyName).FirstOrDefault(); item.UnitCost = spl.UnitCost; Session["newAdjList"] = poFullDetailsList; return(RedirectToAction("Purchase", "Store")); } }
//[Route("NewReq/SubmitNewRequestForm")] public RedirectToRouteResult SubmitNewRequestForm() { string deptCode = Session["DepartmentCode"].ToString(); string employeeCode = Session["LoginEmployeeID"].ToString(); using (SSISdbEntities e = new SSISdbEntities()) { DAL.StaffRequisitionDetailsRepositoryImpl dalDetails = new DAL.StaffRequisitionDetailsRepositoryImpl(e); DAL.StaffRequisitionRepositoryImpl dalHeader = new DAL.StaffRequisitionRepositoryImpl(e); StaffRequisitionHeader srh = new StaffRequisitionHeader(); srh.FormID = Session["currentFormId"].ToString(); srh.DepartmentCode = deptCode; srh.EmployeeID = employeeCode; srh.DateRequested = System.DateTime.Now; srh.Status = "Open"; srh.ApprovalStatus = "Pending"; srh.DateProcessed = null; srh.Approver = e.Employees.Where(x => x.EmployeeID == srh.EmployeeID).Select(x => x.ReportsTo).FirstOrDefault(); srh.NotificationStatus = "Unread"; dalHeader.InsertStaffRequisitionHeader(srh); foreach (StaffRequisitionDetail srd in (List <StaffRequisitionDetail>)Session["newReqList"]) { srd.Item = null; dalDetails.InsertStaffRequisitionDetail(srd); } e.SaveChanges(); Session["newReqList"] = new List <StaffRequisitionDetail>(); int noUnreadRequests = (int)Session["NoUnreadRequests"]; noUnreadRequests++; Session["NoUnreadRequests"] = noUnreadRequests; Employee current = e.Employees.Where(x => x.EmployeeID == employeeCode).FirstOrDefault(); Employee head = e.Employees.Where(x => x.EmployeeID == current.ReportsTo).FirstOrDefault(); string title = "[LogicUniversity] New Requisition: " + srh.FormID; string message = Session["EmpName"].ToString() + " has raised a new requisition."; CommonLogic.Email.sendEmail("*****@*****.**", head.EmployeeEmail, title, message); } Session["tempList"] = new List <String>(); return(RedirectToAction("Requisition", "Dept")); }
public RedirectToRouteResult UpdateSupplierPriceList(String[] arrItemCodes, String[] arrStatus, String[] price) { try { Session["MaintenanceSuppliersPage"] = "2"; String supplierCode = Session["MaintenanceSupplierCode"].ToString(); if (arrItemCodes.Count() > 0 && arrStatus.Count() > 0 && price.Count() > 0) { using (SSISdbEntities e = new SSISdbEntities()) { DAL.SupplierPriceListRepositoryImpl dal = new DAL.SupplierPriceListRepositoryImpl(e); int index = 0; foreach (string s in arrItemCodes) { SupplierPriceList spl = e.SupplierPriceLists.Where(x => x.SupplierCode == supplierCode && x.ItemCode == s).FirstOrDefault(); spl.UnitCost = float.Parse(price[index]); if (arrStatus[index] == "true") { spl.Active = 1; } else { spl.Active = 0; } dal.UpdateSupplierPriceList(spl); index++; } e.SaveChanges(); } } else { Debug.Write("Empty input detected."); } } catch (FormatException fe) { Debug.WriteLine(fe.Message); } catch (Exception ex) { Debug.WriteLine(ex.Message); } return(RedirectToAction("Maintenance", "Store")); }
public RedirectToRouteResult EditNewAdjReason(string data, int index) { using (SSISdbEntities e = new SSISdbEntities()) { List <StockAdjItemModel> list = (List <StockAdjItemModel>)Session["newAdjList"]; StockAdjItemModel item = list.ElementAt(index); item.Reason = data; Session["newAdjList"] = list; Session["StockAdjPage"] = "2"; return(RedirectToAction("Requisition", "Dept")); } }
public RedirectToRouteResult DisplayApprovalDetails(string ReqFormId) { Session["ReqApprovalPage"] = "2"; Session["ReviewNewRequisitionId"] = ReqFormId; using (SSISdbEntities e = new SSISdbEntities()) { DAL.StaffRequisitionRepositoryImpl dal = new DAL.StaffRequisitionRepositoryImpl(e); StaffRequisitionHeader srh = dal.GetStaffRequisitionHeaderById(ReqFormId); TempData["RequisitionRequstor"] = e.Employees.Where(x => x.EmployeeID == srh.EmployeeID).Select(x => x.EmployeeName).First(); TempData["RequisitionDateReq"] = srh.DateRequested; } return(RedirectToAction("Approval", "Dept")); }
public ActionResult RoleDelegation() { using (SSISdbEntities e = new SSISdbEntities()) { List <string> roleList = new List <string>() { "Approver", "Representative" }; ViewBag.RolesList = new SelectList(roleList, "Designation"); var tuple = new Tuple <ApprovalDelegation, Employee>(new ApprovalDelegation(), new Employee()); return(View(tuple)); } }
public RedirectToRouteResult AddNewCollectionPoint(CollectionPoint cp) { using (SSISdbEntities e = new SSISdbEntities()) { string collectionPtCount = (e.CollectionPoints.Count() + 1).ToString(); cp.CollectionPointID = "CP" + collectionPtCount; cp.Active = 1; DAL.CollectionPointRepositoryImpl dal = new DAL.CollectionPointRepositoryImpl(e); dal.InsertCollectionPoint(cp); e.SaveChanges(); return(RedirectToAction("Maintenance", "Store")); } }
public RedirectToRouteResult AddNewCategory(Category cat) { using (SSISdbEntities e = new SSISdbEntities()) { string categoryCount = (e.Categories.Count() + 1).ToString(); cat.CategoryID = "C" + categoryCount; cat.Active = 1; DAL.CategoryRepositoryImpl dal = new DAL.CategoryRepositoryImpl(e); dal.InsertCategory(cat); e.SaveChanges(); return(RedirectToAction("Maintenance", "Store")); } }
public ActionResult RptDepartmentUsage() { using (SSISdbEntities e = new SSISdbEntities()) { string deptCode = Session["DepartmentCode"].ToString(); ViewBag.Department = e.Departments.Where(x => x.DepartmentCode == deptCode).Select(x => x.DepartmentName).FirstOrDefault(); List <String> categoryList = e.Categories.Select(x => x.CategoryName).ToList(); categoryList.Insert(0, "All"); ViewBag.CategoryList = new SelectList(categoryList, null); TempData["RowIndexesToDiscard"] = new List <int>(); return(View()); } }
public ActionResult StockAdj() { Session["StoreInventoryTabIndex"] = "3"; if (Session["StockAdjPage"].ToString() == "1") { return(View("StockAdj")); } else { using (SSISdbEntities e = new SSISdbEntities()) { ViewBag.AdjustmentReasons = new SelectList(new List <String>() { "Damaged", "Missing" }, null); List <String> tempList = (List <String>)Session["tempList"]; if (tempList.Count == 0) { ViewBag.ItemsList = new SelectList((from s in e.Items.OrderBy(x => x.Description).ToList() select new { ItemCode = s.ItemCode, Description = s.Description + " (" + s.UoM + ")" }), "ItemCode", "Description", null); } else { List <Item> newItemList = e.Items.Where(x => !tempList.Contains(x.ItemCode)).OrderBy(x => x.Description).ToList(); //update ddl to remove items ViewBag.ItemsList = new SelectList((from s in newItemList select new { ItemCode = s.ItemCode, Description = s.Description + " (" + s.UoM + ")" }), "ItemCode", "Description", null); } } Session["StockAdjPage"] = "1"; return(View("StockAdj2")); } }
public ActionResult Home() { string deptCode = Session["DepartmentCode"].ToString(); //initialise number of pending approvals belonging to dept here using (SSISdbEntities m = new SSISdbEntities()) { string id = (string)Session["LoginEmployeeID"]; m.Configuration.ProxyCreationEnabled = false; List <StaffRequisitionHeader> srhList = new List <StaffRequisitionHeader>(); Employee emp = m.Employees.Where(x => x.EmployeeID == id).FirstOrDefault(); if (emp.Designation == "Department Head") { srhList = m.StaffRequisitionHeaders.Where(x => x.DepartmentCode == emp.DepartmentCode && x.ApprovalStatus == "Pending" && x.NotificationStatus == "Unread").ToList(); } else if (emp.Approver == 1) { List <StaffRequisitionHeader> s = srhList = m.StaffRequisitionHeaders .Where(x => x.DepartmentCode == emp.DepartmentCode && x.EmployeeID == emp.EmployeeID && (x.ApprovalStatus == "Approved" || x.ApprovalStatus == "Rejected") && x.NotificationStatus == "Unread").ToList(); srhList = m.StaffRequisitionHeaders.Where(x => x.DepartmentCode == emp.DepartmentCode && x.ApprovalStatus == "Pending" && x.NotificationStatus == "Unread").ToList(); srhList.AddRange(s); } else { srhList = m.StaffRequisitionHeaders .Where(x => x.DepartmentCode == emp.DepartmentCode && x.EmployeeID == emp.EmployeeID && (x.ApprovalStatus == "Approved" || x.ApprovalStatus == "Rejected") && x.NotificationStatus == "Unread").ToList(); } if (srhList == null) { srhList = new List <StaffRequisitionHeader>(); } int deptUnreadPendingApprovalsCount = srhList.Count(); Session["NoUnreadRequests"] = deptUnreadPendingApprovalsCount; Session["NoUnreadRequestsEmployee"] = deptUnreadPendingApprovalsCount; } return(View()); }
public ActionResult DisplayPO(FormCollection data) { Session["POListPage"] = "2"; string poNumber = data["PONumber"]; Session["poNumber"] = poNumber; using (SSISdbEntities m = new SSISdbEntities()) { List <POFullDetail> poFullDetailList = m.POFullDetails.Where(x => x.PONumber == poNumber).ToList(); POHeader ph = m.POHeaders.Where(x => x.PONumber == poNumber).FirstOrDefault(); Session["PORemarks"] = ph.Remarks; Session["POItems"] = poFullDetailList; Session["poStatus"] = m.POHeaders.Where(x => x.PONumber == poNumber).Select(x => x.Status).FirstOrDefault(); } return(View()); }
public ActionResult Retrieval() { Session["StoreDisbursementTabIndex"] = "2"; using (SSISdbEntities m = new SSISdbEntities()) { m.Configuration.ProxyCreationEnabled = false; int id = m.StockRetrievalHeaders.Count(); string reqId = CommonLogic.SerialNo(id, "StoR"); Session["RetrievalId"] = reqId; ViewBag.IdCount = reqId; ViewBag.Disbursed = m.StockRetrievalHeaders.Where(x => x.ID == reqId).First().Disbursed; //To check whether all items have been retrieved List <StockRetrievalDetail> stockRetrievalDetailsList = m.StockRetrievalDetails.Where(x => x.Id == reqId).ToList <StockRetrievalDetail>(); bool allItemCollected = true; foreach (StockRetrievalDetail srd in stockRetrievalDetailsList) { if (srd.Collected == 0) { allItemCollected = false; } } StockRetrievalHeader stockRetrievalHeader = m.StockRetrievalHeaders.Where(x => x.ID == reqId).FirstOrDefault(); if (allItemCollected) { stockRetrievalHeader.AllItemsRetrieved = 1; m.SaveChanges(); } else { stockRetrievalHeader.AllItemsRetrieved = 0; m.SaveChanges(); } ViewBag.AllItemsRetrieved = stockRetrievalHeader.AllItemsRetrieved; } var tuple = new Tuple <StockRetrievalDetail, Item>(new StockRetrievalDetail(), new Item()); return(View(tuple)); }
public RedirectToRouteResult EditItem(String[] suppliers, String[] desc, String[] status, string[] reorderlvl, string[] reorderqty) { using (SSISdbEntities e = new SSISdbEntities()) { try { string itemCode = Session["MaintenanceItemCode"].ToString(); Item item = e.Items.Where(x => x.ItemCode == itemCode).FirstOrDefault(); DAL.ItemsRepositoryImpl dal = new DAL.ItemsRepositoryImpl(e); if (status != null) { if (status[0].ToLower() == "true") { item.Active = 1; } else { item.Active = 0; } } item.ReOrderLevel = Convert.ToInt32(reorderlvl[0]); item.ReOrderQuantity = Convert.ToInt32(reorderqty[0]); item.Description = desc[0]; item.Supplier1 = suppliers[0]; item.Supplier2 = suppliers[1]; item.Supplier3 = suppliers[2]; dal.UpdateItem(item); e.SaveChanges(); Session["MaintenanceItemsPage"] = "1"; return(RedirectToAction("Maintenance", "Store")); } catch (FormatException fe) { Debug.WriteLine(fe.Message); }catch (Exception ex) { Debug.WriteLine(ex.Message); } return(null); } }