public ImapCheck(string dbUrl) { GetAsync["/{user_id}/imapcheck"] = async(p, c) => { var user = new User { id = (string)p["user_id"] }; using (var db = await DB.CreateAsync(dbUrl, true)) { // if user exists and as an Ent email if (await user.LoadAsync(db, true) && user.email_backend_id != null && user.emails.Any((email) => email.type == EmailType.Ent)) { // check rights await c.EnsureHasRightsOnUserAsync(user, false, true, false); // find the user's email backend var backend = new EmailBackend { id = (int)user.email_backend_id }; if (await backend.LoadAsync(db)) { var result = GetUserImapCheck(user.id, backend); c.Response.StatusCode = 200; c.Response.Content = result; } } } }; }
public static void removeAuthority(int profileEmpNo, string deptCode, int outgoingEmpNo) { string recipientEmail; string recipientName; string deptName; string newDeputyName; using (LussisEntities context = new LussisEntities()) { Deputy dep = context.Deputies.Where(x => x.DeptCode.Equals(deptCode)).First(); context.Deputies.Remove(dep); Department dept = context.Departments.Where(x => x.DeptCode.Equals(deptCode)).First(); dept.DeputyEmpNo = profileEmpNo; //setting back to HOD deptName = dept.DeptName; context.SaveChanges(); RoleController.removeRoleFromEmployee(context, outgoingEmpNo, RoleController.LUSSISRoles.DepartmentDeputy); Employee newDeputy = context.Employees.Where(x => x.EmpNo.Equals(dept.EmployeeDeputy.EmpNo)).First(); newDeputyName = newDeputy.EmpName; } using (LussisEntities context = new LussisEntities()) { recipientEmail = context.Employees.Where(x => x.EmpNo.Equals(outgoingEmpNo)).First().Email; recipientName = context.Employees.Where(x => x.EmpNo.Equals(outgoingEmpNo)).First().EmpName; } EmailBackend.sendEmailStep(recipientEmail, EmailTemplate.GenerateOldDeputyAuthorityRemovedSubject(), EmailTemplate.GenerateOldDeputyAuthorityRemovedEmail(recipientName, deptName)); }
ImapCheckResult GetUserImapCheck(string user_id, EmailBackend backend) { var result = new ImapCheckResult() { user_id = user_id }; using (var client = new ImapClient()) { // Accept all SSL certificates (internal server) client.ServerCertificateValidationCallback = (s, c, h, e) => true; client.Connect(backend.address, 143, false); // Note: since we don't have an OAuth2 token, disable // the XOAUTH2 authentication mechanism. client.AuthenticationMechanisms.Remove("XOAUTH2"); client.Authenticate(user_id, backend.master_key); // The Inbox folder is always available on all IMAP servers... var inbox = client.Inbox; inbox.Open(FolderAccess.ReadOnly); result.total = inbox.Count; result.recent = inbox.Recent; client.Disconnect(true); } return(result); }
public static void UpdatePoint(int empNo, int collectionNewPoint) { string dayofweek = DateTime.Today.DayOfWeek.ToString(); if (dayofweek != "Saturday" || dayofweek != "Sunday") { using (LussisEntities entities = new LussisEntities()) { Employee currEmploy = entities.Employees.Where(emp => emp.EmpNo == empNo).FirstOrDefault(); Department currDept = currEmploy.Department; currDept.CollectionPointNo = collectionNewPoint; entities.SaveChanges(); } LussisEntities entity = new LussisEntities(); Employee currEmployee = entity.Employees.Where(emp => emp.EmpNo == empNo).First(); Department currDepartment = entity.Departments.Where(dep => dep.DeptCode.Equals(currEmployee.DeptCode)).First(); // Send Email EmailBackend.sendEmailStep( currDepartment.EmployeeHead.Email, EmailTemplate.GenerateUpdateCollectionPointEmailSubject(), EmailTemplate.GenerateCollectionPointStatusChangedEmail( currDepartment.EmployeeHead.EmpName.ToString(), currDepartment.CollectionPoint.CollectionPointDetails.ToString()) ); } }
public bool SendEmail(int sessionID, String email, String subject, String message) { bool result = false; if (AndroidAuthenticationController.IsValidSessionId(sessionID)) { result = EmailBackend.sendEmailStep(email, subject, message); } return(result); }
public static void SubmitAdjustmentVoucher(string itemNo, DateTime dateIssued, int qty, string reason, int issueEmpNo) { AdjustmentVoucher aV; AdjustmentVoucherDetail aVD; LussisEntities context = new LussisEntities(); using (var txn = new TransactionScope()) { // Create AdjustmentVoucher aV = new AdjustmentVoucher(); aV.DateIssued = dateIssued; aV.IssueEmpNo = issueEmpNo; aV.Status = "Pending"; context.AdjustmentVouchers.Add(aV); context.SaveChanges(); // Create AdjustmentVoucherDetails aVD = new AdjustmentVoucherDetail(); aVD.AvNo = aV.AvNo; aVD.ItemNo = itemNo; aVD.Qty = qty; aVD.Reason = reason; context.AdjustmentVoucherDetails.Add(aVD); context.SaveChanges(); txn.Complete(); } // Send Email var supplier1Code = context.StationeryCatalogues.Where(x => x.ItemNo.Equals(itemNo)).FirstOrDefault().Supplier1; var unitPrice = context.SupplyTenders.Where(x => x.ItemNo.Equals(itemNo) && x.SupplierCode.Equals(supplier1Code)).FirstOrDefault().UnitPrice; var price = qty * unitPrice; Employee recipient; if (price >= 250) { recipient = context.StoreAssignments.Where(x => x.Role.Equals("Manager")).FirstOrDefault().Employee; } else { recipient = context.StoreAssignments.Where(x => x.Role.Equals("Supervisor")).FirstOrDefault().Employee; } string recipientEmail = recipient.Email; string emailSubject = EmailTemplate.GenerateAdjustmentVoucherSubject(); string emailContent = EmailTemplate.GenerateAdjustmentVoucherEmail(recipient.EmpName, aV.AvNo); EmailBackend.sendEmailStep(recipientEmail, emailSubject, emailContent); }
public static void SubmitOrder(List <OrderItem> orderList, int orderedBy, DateTime dateIssued) { // Create empty POList List <PurchaseOrder> pOList = new List <PurchaseOrder>(); using (var txn = new TransactionScope()) { // For each OrderItem for (int i = 0; i < orderList.Count; i++) { OrderItem orderItem = orderList[i]; string itemNo = orderItem.Stock.ItemNo; // Qty > 0? for (int j = 0; j < orderItem.OrderQtyList.Count; j++) { string supplierCode = orderItem.SupplierCodeList[j]; int? qty = orderItem.OrderQtyList[j]; if (qty > 0) { // Create or get PO PurchaseOrder pO = CreatePurchaseOrder(supplierCode, orderedBy, dateIssued, pOList); int pONo = pO.PONo; // Create POD PurchaseOrderDetail pOD = CreatePurchaseOrderDetail(pONo, itemNo, qty); } } } txn.Complete(); } // Send Email LussisEntities context = new LussisEntities(); var supervisorName = context.StoreAssignments.Where(x => x.Role == "Supervisor").FirstOrDefault().Employee.EmpName; List <string> pOEmailEntries = new List <string>(); foreach (PurchaseOrder pO in pOList) { var pONo = pO.PONo; var supplier = context.Suppliers.Where(x => x.SupplierCode.Equals(pO.SupplierCode)).FirstOrDefault().SupplierName; var pOEmailEntry = pONo + " " + supplier; pOEmailEntries.Add(pOEmailEntry); } var recipientEmail = context.StoreAssignments.Where(x => x.Role == "Supervisor").FirstOrDefault().Employee.Email; var emailSubject = EmailTemplate.GenerateOrderFormEmailSubject(); var emailContent = EmailTemplate.GenerateOrderFormEmail(supervisorName, pOEmailEntries); EmailBackend.sendEmailStep(recipientEmail, emailSubject, emailContent); }
protected void rejectAdjustmentButton_Click(object sender, EventArgs e) { int iAV = Convert.ToInt32(Request["IAV"]); var empNo = Profile.EmpNo; ApproveInventoryAdjustmentController.setStatusReject(iAV); ApproveInventoryAdjustmentController.setApprovedBy(iAV, empNo); //send Email, will need to put in controller LussisEntities entity = new LussisEntities(); AdjustmentVoucher currentAV = entity.AdjustmentVouchers.Where(x => x.AvNo == iAV).FirstOrDefault(); Employee recpt = entity.Employees.Where(x => x.EmpNo == currentAV.IssueEmpNo).FirstOrDefault(); Employee approver = entity.Employees.Where(x => x.EmpNo == empNo).FirstOrDefault(); EmailBackend.sendEmailStep(recpt.Email, EmailTemplate.GenerateAdjVouchStatusChangedEmailSubject(iAV.ToString(), currentAV.Status), EmailTemplate.GenerateAdjVouchStatusChangedEmail(recpt.EmpName, iAV.ToString(), approver.EmpName, currentAV.Status)); Response.Redirect("~/Store/Supervisor/ApproveInventoryAdjustmentList.aspx"); }
public static bool AcceptRequisition(int employeeID, int requisitionID, String remarks) { bool result = false; LussisEntities context = new LussisEntities(); Employee approver = context.Employees.Where(emp => emp.EmpNo == employeeID).FirstOrDefault(); Requisition requisition = context.Requisitions.Where(req => req.ReqNo == requisitionID).FirstOrDefault(); // Process only if all values are present in the database if (approver != null && requisition != null) { requisition.Remarks = remarks; requisition.ApprovedBy = approver.EmpNo; requisition.DateReviewed = DateTime.Now.Date; requisition.Status = "Approved"; context.SaveChanges(); // Send Email EmailBackend.sendEmailStep( requisition.EmployeeWhoIssued.Email, EmailTemplate.GenerateRequisitionStatusChangedEmailSubject( requisition.ReqNo.ToString(), requisition.Status), EmailTemplate.GenerateRequisitonStatusChangedEmail( requisition.EmployeeWhoIssued.EmpName, requisition.ReqNo.ToString(), approver.EmpName, requisition.Status, requisition.Remarks) ); // Mark as sucessful result = true; } // Return operation result return(result); }
public static string addAuthority(string deptCode, int empNo, DateTime start, DateTime end) { Deputy d = new Deputy(); d.DeptCode = deptCode; d.DeputyEmpNo = empNo; d.FromDate = start; d.ToDate = end; string empName = ""; string deptName; string recipientEmail = ""; using (LussisEntities context = new LussisEntities()) { context.Deputies.Add(d); Department dept = context.Departments.Where(x => x.DeptCode.Equals(deptCode)).First(); deptName = dept.DeptName; //for email if (start.CompareTo(DateTime.Today) == 0) { dept.DeputyEmpNo = empNo; RoleController.addRoleToEmployee(context, empNo, RoleController.LUSSISRoles.DepartmentDeputy); } Employee newDeputy = context.Employees.Where(x => x.EmpNo.Equals(empNo)).First(); empName = newDeputy.EmpName; recipientEmail = newDeputy.Email; context.SaveChanges(); } EmailBackend.sendEmailStep(recipientEmail, EmailTemplate.GenerateNewDeputyAuthoritySubject(), EmailTemplate.GenerateNewDeputyAuthorityEmail(empName, deptName, start.ToString(), end.ToString())); return(empName); //for display in view }
//Add data into database: requisition public static void RaisedRequisition(int issueBy, DateTime dateIssue, string status, List <RequisitionDetail> r) { using (LussisEntities entities = new LussisEntities()) { Requisition req = new Requisition { IssuedBy = issueBy, DateIssued = dateIssue, Status = status }; foreach (RequisitionDetail l in r) { RequisitionDetail rl = new RequisitionDetail(); rl.ReqNo = req.ReqNo; rl.ItemNo = l.ItemNo; rl.Qty = l.Qty; entities.RequisitionDetails.Add(l); } entities.Requisitions.Add(req); entities.SaveChanges(); LussisEntities entity = new LussisEntities(); Employee currEmployee = entity.Employees.Where(emp => emp.EmpNo == issueBy).First(); Department currDepartment = entity.Departments.Where(dep => dep.DeptCode.Equals(currEmployee.DeptCode)).First(); // Send Email to Head EmailBackend.sendEmailStep( currDepartment.EmployeeHead.Email, EmailTemplate.GeneratePendingRequisitionSubject(currEmployee.EmpName.ToString()), EmailTemplate.GeneratePendingRequisition(currDepartment.EmployeeHead.EmpName.ToString(), currEmployee.EmpName.ToString())); //Send email to Employee EmailBackend.sendEmailStep( currEmployee.Email, EmailTemplate.GenerateRaisedRequisitionSubject(), EmailTemplate.GenerateRaisedRequisition(currEmployee.EmpName.ToString(), req.ReqNo.ToString())); } }
//reject button protected void rejectButton_Click(object sender, EventArgs e) { int poNO = Convert.ToInt32(Request["PO"]); var empNo = Profile.EmpNo; var remarks = approvePORemarksTB.Text; ApprovePurchaseOrderController.setStatusReject(poNO); ApprovePurchaseOrderController.updateApproveBy(poNO, empNo); ApprovePurchaseOrderController.updateDateReviewed(poNO); ApprovePurchaseOrderController.updateRemarks(poNO, remarks); //send email, will need to put in controller LussisEntities entity = new LussisEntities(); PurchaseOrder currentPO = entity.PurchaseOrders.Where(x => x.PONo == poNO).FirstOrDefault(); Employee recpt = entity.Employees.Where(x => x.EmpNo == currentPO.OrderedBy).FirstOrDefault(); Employee approver = entity.Employees.Where(x => x.EmpNo == empNo).FirstOrDefault(); EmailBackend.sendEmailStep(recpt.Email, EmailTemplate.GeneratePOStatusChangedEmailSubject(poNO.ToString(), currentPO.Status), EmailTemplate.GeneratePOStatusChangedEmail(recpt.EmpName, poNO.ToString(), approver.EmpName, currentPO.Status, currentPO.Remarks)); Response.Redirect("~/Store/Supervisor/ApprovePOList.aspx"); }
public static bool SetNewDepartmentRepresentativeTo(int employeeNo, int newRepresentativeNo) { LussisEntities context = new LussisEntities(); bool result = false; Employee currEmployee = context.Employees .Where(emp => emp.EmpNo == employeeNo) .FirstOrDefault(); Employee newRepresentative = context.Employees .Where(emp => emp.EmpNo == newRepresentativeNo) .FirstOrDefault(); Department currDepartment = null; try { if (currEmployee != null && newRepresentative != null) { String currDeptCode = currEmployee.DeptCode; currDepartment = context.Departments .Where(dep => dep.DeptCode.Equals(currDeptCode)) .FirstOrDefault(); if (currDepartment != null) { Employee oldRepresentative = currDepartment.EmployeeRepresentative; if (oldRepresentative != null) { // Remove the role from the old employee RoleController.removeRoleFromEmployee(context, oldRepresentative.EmpNo, RoleController.LUSSISRoles.DepartmentRepresentative); // Notify the old employee EmailBackend.sendEmailStep( oldRepresentative.Email, EmailTemplate.GenerateOldRepresentativeRemovedSubject(), EmailTemplate.GenerateOldRepresentativeRemovedEmail() ); } // Add the role to the new employee RoleController.addRoleToEmployee(context, newRepresentativeNo, RoleController.LUSSISRoles.DepartmentRepresentative); // Mark the new representative in the database currDepartment.RepEmpNo = newRepresentative.EmpNo; context.SaveChanges(); result = true; // Notify the new employee EmailBackend.sendEmailStep( newRepresentative.Email, EmailTemplate.GenerateNewRepresentativeRemovedSubject(), EmailTemplate.GenerateNewRepresentativeRemovedEmail() ); } } } catch (Exception) { result = false; } return(result); }
public static bool CompleteDisbursement(int dNo, decimal?pin) { LussisEntities context = new LussisEntities(); Disbursement d = context.Disbursements.Where(x => x.DisbursementNo == dNo).FirstOrDefault(); List <DisbursementDetail> dDetails = d.DisbursementDetails.ToList(); // If Pin is Valid if (d.Pin == pin) { // Update Disbursement Status d.Status = "Completed"; // Create Backlogs for (int i = 0; i < dDetails.Count; i++) { String deptCode = dDetails[i].Disbursement.DeptCode; String itemCode = dDetails[i].ItemNo; if (dDetails[i].Needed - dDetails[i].Received > 0) { BackLog backlog = context .BackLogs .Where(x => x.DeptCode.Equals(deptCode) && x.ItemNo.Equals(itemCode)) .FirstOrDefault(); if (backlog == null) { backlog = new BackLog(); backlog.DeptCode = dDetails[i].Disbursement.DeptCode; backlog.ItemNo = dDetails[i].ItemNo; backlog.BackLogQty = dDetails[i].Needed - dDetails[i].Received; context.BackLogs.Add(backlog); } else { backlog.BackLogQty += dDetails[i].Needed - dDetails[i].Received; } } } context.SaveChanges(); // Send Email Employee recipient = d.Employee; var emailDetails = dDetails.Select( dD => new { ItemNo = dD.ItemNo, ItemDescription = dD.StationeryCatalogue.Description, Needed = dD.Needed, Delivered = dD.Received }); string recipientEmail = recipient.Email; string emailSubject = EmailTemplate.GenerateCompletedDisbursementSubject(d.DisbursementNo); string emailContent = EmailTemplate.GenerateCompletedDisbursementEmail(recipient.EmpName, d.DisbursementNo, d.DisbursementDate); EmailBackend.sendEmailStep(recipientEmail, emailSubject, emailContent); return(true); } else { return(false); } }