Esempio n. 1
0
        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;
                        }
                    }
                }
            };
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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())
                    );
            }
        }
Esempio n. 5
0
    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);
    }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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");
    }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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
        }
Esempio n. 11
0
        //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()));
            }
        }
Esempio n. 12
0
    //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);
        }
Esempio n. 14
0
        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);
            }
        }