示例#1
0
        public static bool Save(List <string> cards, long branchID, out long successfulCards)
        {
            try
            {
                var result = false;

                var pregeneratedCards = new List <PregeneratedCard>();

                string key = System.Configuration.ConfigurationManager.AppSettings.Get("ekey");

                cards.ForEach(card =>
                {
                    string hashedCardNumber = PasswordHash.MD5Hash(card);

                    if (!CardDL.PregeneratedCardExists(hashedCardNumber))
                    {
                        var pregeneratedCard = new PregeneratedCard
                        {
                            CardNumber       = Crypter.Encrypt(key, card),
                            HashedCardNumber = hashedCardNumber,
                            Status           = false,
                            Branch           = branchID,
                            DateUploaded     = System.DateTime.Now
                        };
                        pregeneratedCards.Add(pregeneratedCard);
                    }
                });

                if (pregeneratedCards.Any())
                {
                    result = CardDL.Save(pregeneratedCards);
                }

                successfulCards = pregeneratedCards.Count();
                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        public static List <Object> RetrieveUsers()
        {
            try
            {
                string eKey = System.Configuration.ConfigurationManager.AppSettings.Get("ekey");

                List <User> users = UserDL.RetrieveUsers();

                List <Object> returnedUsers = new List <Object>();

                foreach (User user in users)
                {
                    object userObj = new
                    {
                        ID          = user.ID,
                        Lastname    = user.Lastname,
                        Othernames  = user.Othernames,
                        Gender      = user.Gender,
                        PhoneNumber = user.PhoneNumber,
                        Email       = user.Email,
                        Username    = user.Username,
                        CreatedOn   = String.Format("{0:dddd, MMMM d, yyyy}", Convert.ToDateTime(user.CreatedOn)),
                        Role        = new { ID = user.Role.ID, Name = user.Role.Name },
                        Branch      = new { ID = user.Branch.ID, Name = user.Branch.Name },
                        SmartCardID = user.SmartCardID == null ? "None" : Crypter.Decrypt(eKey, user.SmartCard.EncryptedSmartCardID)
                    };

                    returnedUsers.Add(userObj);
                }
                return(returnedUsers);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#3
0
        public static CardDetails GetCardSerialNumber(string loggedInUsername)
        {
            try
            {
                string key = System.Configuration.ConfigurationManager.AppSettings.Get("ekey");

                var returnedPregeneratedCard = new CardDetails();

                var pregeneratedCard = CardDL.GetCardSerialNumber(loggedInUsername);

                if (pregeneratedCard != null)
                {
                    CardDetails pCard = new CardDetails
                    {
                        ID           = pregeneratedCard.ID,
                        CardNumber   = Crypter.Decrypt(key, pregeneratedCard.CardNumber),
                        Issued       = Convert.ToBoolean(pregeneratedCard.Status),
                        Branch       = pregeneratedCard.Branch1.Name,
                        BranchID     = pregeneratedCard.Branch1.ID,
                        DateUploaded = Convert.ToDateTime(pregeneratedCard.DateUploaded).ToString("MM/dd/yyyy")
                    };

                    returnedPregeneratedCard = pCard;
                }
                else
                {
                    returnedPregeneratedCard = null;
                }

                return(returnedPregeneratedCard);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#4
0
        public static void SendForgotPasswordMail(User user)
        {
            try
            {
                string key = System.Configuration.ConfigurationManager.AppSettings.Get("ekey");
                string encrypted_username = Crypter.Encrypt(key, user.Username);

                string userFullName = user.Lastname + " " + user.Othernames;

                string organization     = System.Configuration.ConfigurationManager.AppSettings.Get("Organization");
                string applicationName  = System.Configuration.ConfigurationManager.AppSettings.Get("ApplicationName");
                string websiteUrl       = System.Configuration.ConfigurationManager.AppSettings.Get("WebsiteUrl");
                string passwordResetUrl = websiteUrl + "User/ResetPassword?rq=" + encrypted_username;;
                string subject          = "Password Reset Request on " + applicationName;

                string fromAddress  = "";
                string smtpUsername = "";
                string smtpPassword = "";
                string smtpHost     = "";
                Int32  smtpPort     = 587;
                bool   smtpUseDefaultCredentials = false;
                bool   smtpEnableSsl             = true;

                MailHelper mailConfig = ConfigurationManager.GetSection("mailHelperSection") as MailHelper;
                if (mailConfig != null && mailConfig.Mail != null)
                {
                    fromAddress  = mailConfig.Mail.FromEmailAddress;
                    smtpUsername = mailConfig.Mail.Username;
                    smtpPassword = mailConfig.Mail.Password;
                }

                if (mailConfig != null && mailConfig.Smtp != null)
                {
                    smtpHost = mailConfig.Smtp.Host;
                    smtpPort = Convert.ToInt32(mailConfig.Smtp.Port);
                    smtpUseDefaultCredentials = Convert.ToBoolean(mailConfig.Smtp.UseDefaultCredentials);
                    smtpEnableSsl             = Convert.ToBoolean(mailConfig.Smtp.EnableSsl);
                }


                string body = "";

                body = System.IO.File.ReadAllText(System.Web.Hosting.HostingEnvironment.MapPath(@"~/App_Data/MailTemplates/ForgotPassword.txt"));
                body = body.Replace("#Organization", organization);
                body = body.Replace("#ApplicationName", applicationName);
                body = body.Replace("#UserFullName", userFullName);
                body = body.Replace("#WebsiteUrl", websiteUrl);
                body = body.Replace("#PasswordResetUrl", passwordResetUrl);

                Thread email = new Thread(delegate()
                {
                    Mail.SendMail(user.Email, fromAddress, subject, body, smtpHost, smtpPort, smtpUseDefaultCredentials, smtpUsername, smtpPassword, smtpEnableSsl);
                });

                email.IsBackground = true;
                email.Start();
            }
            catch (Exception ex)
            {
                ErrorHandler.WriteError(ex);
                throw ex;
            }
        }
        public static bool UpdateStatus(string cardSerialNumber, string licenseNumber, int printStatus, string userPrinting, string printedName)
        {
            try
            {
                bool result = false;

                using (var context = new LicenseDBEntities())
                {
                    using (var transaction = context.Database.BeginTransaction())
                    {
                        try
                        {
                            var car = context.CardAccountRequests
                                      .Where(x => x.LicenseID == licenseNumber).FirstOrDefault();


                            string key = System.Configuration.ConfigurationManager.AppSettings.Get("ekey");
                            string hashedCardNumber = PasswordHash.MD5Hash(cardSerialNumber);

                            if (car != null)
                            {
                                car.PrintStatus            = printStatus;
                                car.DatePrinted            = System.DateTime.Now;
                                car.UserPrinting           = userPrinting;
                                car.CardSerialNumber       = Crypter.Encrypt(key, cardSerialNumber);
                                car.HashedCardSerialNumber = hashedCardNumber;
                                car.PrintedName            = printedName;

                                context.Entry(car).State = EntityState.Modified;
                                context.SaveChanges();

                                var card = context.PregeneratedCards
                                           .Where(x => x.HashedCardNumber == hashedCardNumber).FirstOrDefault();

                                if (card != null)
                                {
                                    card.Status = true;

                                    context.Entry(card).State = EntityState.Modified;
                                    context.SaveChanges();

                                    result = true;
                                    transaction.Commit();
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            transaction.Rollback();
                            throw ex;
                        }
                    }
                }

                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#6
0
        public static List <CardAccountRequestDTO> RetrieveCardAccountRequests()
        {
            try
            {
                string key = System.Configuration.ConfigurationManager.AppSettings.Get("ekey");

                var cars = CardAccountRequestDL.RetrieveCardAccountRequests();

                if (cars.Any())
                {
                    var branchList = BranchDL.RetrieveBranches();

                    var result = (from car in cars
                                  select new CardAccountRequestDTO
                    {
                        ID = car.ID,
                        LicenseID = car.LicenseID,
                        CardSerialNumber = !string.IsNullOrEmpty(car.CardSerialNumber) ? Crypter.Decrypt(key, car.CardSerialNumber) : string.Empty,
                        Lastname = car.Lastname,
                        FirstName = car.FirstName,
                        MiddleName = car.MiddleName,
                        NameOnCard = car.NameOnCard,
                        DateOfBirth = car.DateOfBirth,
                        MaritalStatus = car.MaritalStatus,
                        Sex = car.Sex,
                        Religion = car.Religion,
                        MothersMaidenName = car.MothersMaidenName,
                        Nationality = car.Nationality,
                        UtilityBill = car.UtilityBill,
                        IDNumber = car.IDNumber,
                        LocalGovernmentArea = car.LocalGovernmentArea,
                        BloodGroup = car.BloodGroup,
                        LicenseType = car.LicenseType,
                        IssueDate = car.IssueDate,
                        ValidTillDate = car.ValidTillDate,
                        FileNumber = car.FileNumber,
                        EmailAddress = car.EmailAddress,
                        PhoneNumber = car.PhoneNumber,
                        Address = car.Address,
                        PrintStatus = car.PrintStatus == 1 ? "Enrolled" : (car.PrintStatus == 2 ? "SentForPrinting" : "Printed"),
                        UserPrinting = car.UserPrinting,
                        DateEnroled = Convert.ToDateTime(car.DateEnroled),
                        DatePrinted = Convert.ToDateTime(car.DatePrinted),
                        Branch = branchList.Where(x => x.ID == car.BranchID).FirstOrDefault().Name
                    }).ToList();

                    return(result);
                }
                else
                {
                    return(new List <CardAccountRequestDTO>());
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }