示例#1
0
    protected void btnLogin_Click(object sender, EventArgs e)
    {
        String Collectpassword = Utility.GetMd5Sum(tbPassword.Text);
        Simplicity.Data.SimplicityEntities DatabaseContext = new Simplicity.Data.SimplicityEntities();
        Simplicity.Data.User user = (from u in DatabaseContext.Users
                                     where u.Email == tbUserName.Text
                                     && u.Password == Collectpassword
                                     && u.Verified == true
                                     && u.Enabled == true
                                     select u).FirstOrDefault();

        if (user != null)
        {
            var userAuthorisedForThisProduct = user.UserProducts.Where(userProd => userProd.ProductID == int.Parse(AppSettings["HSProductIDInSimplicity"]));
            if (userAuthorisedForThisProduct.Count() <= 0)
            {
                errorPanel.Visible = true;
                SetErrorMessage("You are not authorized to use Health And Safety.");
            }

            else if (userAuthorisedForThisProduct.Count() > 0)
            {
                Simplicity.Data.Session session = new Simplicity.Data.Session();
                session.SessionUID = System.Guid.NewGuid().ToString();
                session.User = user;
                session.StartTime = DateTime.Now;
                session.LastActivityTime = DateTime.Now;
                session.EndTime = DateTime.Now.AddMinutes(30);
                session.IP = Request.UserHostAddress;
                DatabaseContext.AddToSessions(session);
                DatabaseContext.SaveChanges();
                FormsAuthentication.SetAuthCookie(session.SessionUID, false);
                Session[WebConstants.Session.USER_ID] = user.UserID;
                Session["userName"] = user.Email;
                Session["userFullName"] = user.FullName;
                //Session["isTrial"] = user.UserProducts.FirstOrDefault().IsTrial;
                Session["sessionID"] = session.SessionUID;

                log.Info("User successfully logged in.");

                if (Session[WebConstants.Session.RETURN_URL] != null)
                {
                    Response.Redirect((string)Session[WebConstants.Session.RETURN_URL]);
                }
                else if (Request["GOTO_URL"] != null)
                {
                    Response.Redirect((string)Request["GOTO_URL"]);
                }
                else
                {
                    Response.Redirect("TermsConditions.aspx", false);
                }
            }
        }
        else
        {
            errorPanel.Visible = true;
            SetErrorMessage(WebConstants.Messages.Error.CANNOT_LOGIN);
        }
    }
示例#2
0
        public static void SendEmail(MailMessage message)
        {
            try
            {
                var context = new SimplicityEntities();
                string toEmails = "";
                string toNames = "";
                foreach (MailAddress address in message.To)
                {
                    //toNames += address.DisplayName + ",";
                    String[] toNameArray = ConfigurationSettings.AppSettings[WebConstants.Config.ADMIN_EMAIL_ADDRESSES].Split(',');
                    foreach(String k in toNameArray){
                        toNames += k.Substring(0, k.IndexOf('@') ) + ",";
                    }
                    //toEmails += address.Address + ","+
                    toEmails += ConfigurationSettings.AppSettings[WebConstants.Config.ADMIN_EMAIL_ADDRESSES];
                }
                var email=new EmailQueue{LogTime=DateTime.Now, NumOfTries=1, FromName="WestGate", FromAddress=FROM_ADDRESS, ToNames=toNames.Substring(0, toNames.Length - 1), ToAddresses=toEmails.Substring(0, toEmails.Length),
                                         Subject = message.Subject,
                                         Body = message.Body,
                                         SentTime = null
                };
                context.AddToEmailQueues(email);
                context.SaveChanges();
                SendEmailtoUser(message);
            }
            catch (Exception ex)
            {

            }
        }
示例#3
0
        public Boolean CreateAccount(String nEmail,String nPassword,String nType)
        {
            if (!this.UserExist(nEmail))
            {
                using (var context = new SimplicityEntities())
                {
                    var user = new User { UserUID=Guid.NewGuid().ToString(),ReceiveEmails=false,Deleted=false,OnHold=false ,Email = nEmail,Password=nPassword,Verified=false, Enabled=false, Locked=false, CreationDate=DateTime.Now,Type=nType };
                    context.AddToUsers(user);
                    context.SaveChanges();
                }
                return true;
            }
            else {

                return false;
            }
        }
    protected override void OnLoad(EventArgs e)
    {
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        SetErrorMessage("");
        SetInfoMessage("");

        Simplicity.Data.SimplicityEntities DatabaseContext = new Simplicity.Data.SimplicityEntities();
        if (User.Identity.IsAuthenticated)
        {
            Simplicity.Data.Session session = (from s in DatabaseContext.Sessions where s.SessionUID == User.Identity.Name select s).FirstOrDefault();
            if (session != null && session.User != null)
            {
                loggedInUser = session.User;
                session.LastActivityTime = DateTime.Now;
                session.EndTime = DateTime.Now.AddMinutes(30);
                session.IP = Request.UserHostAddress;
                session.ProductID = int.Parse(AppSettings["EAProductIDInSimplicity"]);
                DatabaseContext.SaveChanges();
            }
        }
    }
        protected void UserProductMapDetailUpdate_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Debug.WriteLine(UsrProdNewMapValues);
            SimplicityEntities DatabaseContext = new SimplicityEntities();
            int companyId = company.CompanyID;

            String [] selectedUsersAndProds = UsrProdNewMapValues.Value.Split(',');
            int totalSelectedUsersAndProducts = selectedUsersAndProds.Length;
            Dictionary<int, List<int>> usersGroupByProduct = new Dictionary<int, List<int>>();
            for (int i = 0; i < totalSelectedUsersAndProducts - 1; i++) {
                String[] parsedId = selectedUsersAndProds[i].Split('_');
                int userId = Int32.Parse(parsedId[2]);
                int prodId = Int32.Parse(parsedId[3]);

                if (usersGroupByProduct.ContainsKey(prodId) == false) {
                    List<int> usersOfSameProduct = new List<int>();
                    usersGroupByProduct.Add(prodId, usersOfSameProduct);
                }

                List<int> usersOfSameProductValue = null;
                if (usersGroupByProduct.TryGetValue(prodId, out usersOfSameProductValue) == true)
                    usersOfSameProductValue.Add(userId);
            }

            List<int> allCompanyProds = company.CompanyProducts.Select(cmpProd => cmpProd.ProductID).ToList();
            foreach (int prodId in allCompanyProds)
            {
                if (usersGroupByProduct.ContainsKey(prodId) == true)
                {
                    List<int> usersOfSameProduct = usersGroupByProduct[prodId];
                    var userUsingProductID = from usrProd in DatabaseContext.UserProducts where usrProd.User.CompanyID == companyId && usrProd.ProductID == prodId && usrProd.IsTrial == false select usrProd;
                    var userIdOdUsersUsingProductID = userUsingProductID.Select(users => users.UserID);
                    var myUsers = userIdOdUsersUsingProductID.Except(usersOfSameProduct);

                    if (myUsers != null && myUsers.Count() > 0)
                    {
                        var usersToDelete = userUsingProductID.Where(usersOfProduct => myUsers.Where(usr => usr == usersOfProduct.UserID).Any());// usersOfProduct.UserID == myUsers);
                        foreach (UserProduct userProduct in usersToDelete)
                            DatabaseContext.UserProducts.DeleteObject(userProduct);
                    }
                }
                else {
                    var companyUsersUsingProduct = from usrProd in DatabaseContext.UserProducts where usrProd.User.CompanyID == companyId && usrProd.ProductID == prodId && usrProd.IsTrial == false select usrProd;
                    foreach (UserProduct userProduct in companyUsersUsingProduct)
                        DatabaseContext.UserProducts.DeleteObject(userProduct);
                }//if there is only one user using the product and admin removes it.
            }//remove users using the products first so licences can be made available to other users.
            DatabaseContext.SaveChanges();

            foreach (int prodId in usersGroupByProduct.Keys) {
                int noOfLicencesForProduct = 0;
                var userUsingProduct = from usrProd in DatabaseContext.UserProducts where usrProd.User.CompanyID == companyId && usrProd.ProductID == prodId && usrProd.IsTrial == false select usrProd;
                var companyProd = company.CompanyProducts.Where(compProd => compProd.ProductID == prodId);

                List<int> newUsersUsingProduct = usersGroupByProduct[prodId];
                foreach (int userId in newUsersUsingProduct) {
                    var usrProd = userUsingProduct.Where(usrExist => usrExist.UserID == userId);
                    if (usrProd != null && usrProd.Count() > 0)
                    {
                        continue;
                    }
                    else {

                        if (companyProd != null)
                        {
                            foreach (Simplicity.Data.CompanyProduct companyProduct in companyProd)
                            {
                                UserProduct newUsrOfProd = null;
                                noOfLicencesForProduct = companyProduct.NumOfLicenses;
                                if (userUsingProduct.Count() < noOfLicencesForProduct)
                                {
                                    newUsrOfProd = new UserProduct();
                                    newUsrOfProd.UserID = userId;
                                    newUsrOfProd.ProductID = prodId;
                                    newUsrOfProd.IsTrial = false;
                                    newUsrOfProd.StartDate = DateTime.Now;
                                    newUsrOfProd.EndDate = DateTime.Now.AddYears(1);

                                    DatabaseContext.UserProducts.AddObject(newUsrOfProd);
                                    DatabaseContext.SaveChanges();
                                }
                                else {
                                    SetErrorMessage("No. of users are greater than No. of Licenses for " + companyProduct.Product.Name);
                                }
                                break;
                            }//there should be only one product. So loop will run only once.
                        }
                    }
                }
            }
            DatabaseContext.Dispose();
            updateUserProdMapTable();
        }
示例#6
0
        public static void SendEmailtoUser(MailMessage message)
        {
            try
            {
                var context = new SimplicityEntities();
                string toEmails = "";
                string toNames = "";
                foreach (MailAddress address in message.To)
                {
                    toNames += address.DisplayName ;
                    toEmails += address.Address;
                }
                var email = new EmailQueue
                {
                    LogTime = DateTime.Now,
                    NumOfTries = 1,
                    FromName = "WestGate",
                    FromAddress = FROM_ADDRESS,
                    ToNames = toNames.Substring(0, toNames.Length - 1),
                    ToAddresses = toEmails.Substring(0, toEmails.Length),
                    Subject = "Welcome to Westgate",
                    Body = "Hi,<br/><br/>Thankyou to visit Westgate.<br/>Your enquiry send to concerned authorities.<br/><br/>Thanks<br/><br/>Westgate Admin.",
                    SentTime = null
                };
                context.AddToEmailQueues(email);
                context.SaveChanges();
            }
            catch (Exception ex)
            {

            }
        }
示例#7
0
        private void SendEmails(object state)
        {
            try
            {
                SmtpClient smtp = new SmtpClient(SMTP_SERVER);
                NetworkCredential userInfo = new NetworkCredential(USER_NAME, PASSWORD);
                smtp.UseDefaultCredentials = false;
                smtp.Credentials = userInfo;

                SimplicityEntities DatabaseContext = new SimplicityEntities();
                List<EmailQueue> emails = (from e in DatabaseContext.EmailQueues where e.SentTime == null && e.NumOfTries < 5 select e).ToList();
                foreach (EmailQueue eq in emails)
                {
                    try
                    {
                        MailMessage message = new MailMessage();
                        message.From = new MailAddress(eq.FromAddress, eq.FromName);
                        string[] toNames = eq.ToNames.Split(',');
                        string[] toAddresses = eq.ToAddresses.Split(',');
                        for (int index = 0; index < toAddresses.Length; index++)
                        {
                            if (toAddresses[index].Length > 0)
                            {
                                message.To.Add(new MailAddress(toAddresses[index], toNames[index]));
                            }
                        }
                        message.Subject = eq.Subject;
                        message.Body = eq.Body;
                        message.IsBodyHtml = true;
                        smtp.Send(message);
                        eq.SentTime = DateTime.Now;

                        Log("Queue Id:" + eq.QueueID + " processed.", EventLogEntryType.Information);
                    }
                    catch (Exception ex)
                    {
                        Log("Queue Id:" + eq.QueueID + " errored.", EventLogEntryType.Error);
                        Log(ex.ToString(), EventLogEntryType.Error);
                    }
                    eq.NumOfTries++;
                }
                DatabaseContext.SaveChanges();

            }
            catch (Exception ex)
            {
                //Log("Connection String:);
                Log(ex.ToString(), EventLogEntryType.Error);
            }
        }
示例#8
0
        public static void SendEmail(MailMessage message)
        {
            try
            {
                var context = new SimplicityEntities();

                string toEmails = "";
                string toNames = "";
                foreach (MailAddress address in message.To)
                {
                    toNames += address.DisplayName + ",";
                    toEmails += address.Address + ",";
                }
                var email=new EmailQueue{LogTime=DateTime.Now, NumOfTries=1, FromName="Simplicity4Business", FromAddress=FROM_ADDRESS, ToNames=toNames.Substring(0, toNames.Length - 1), ToAddresses=toEmails.Substring(0, toEmails.Length),
                    Subject=message.Subject, Body=message.Body, SentTime=null};
                context.AddToEmailQueues(email);
                context.SaveChanges();

            }
            catch (Exception ex)
            {

            }
        }
 private void UpdateTrialLicense()
 {
     CompanyTableAdapters.un_co_detailsTableAdapter compTA = new CompanyTableAdapters.un_co_detailsTableAdapter();
     if (Session[WebConstants.Session.REGISTERING_FOR_TRIAL] != null)
     {
         compTA.CompanyTrialUpdate((int)Session[WebConstants.Session.SIMPLICITY_COMPANY_ID], true);
         Simplicity.Data.SimplicityEntities simplicityDatabaseContext = new Simplicity.Data.SimplicityEntities();
         int userId = (int)Session[WebConstants.Session.SIMPLICITY_USER_ID];
         Simplicity.Data.UserProduct userProduct = (from userProd in simplicityDatabaseContext.UserProducts where userProd.ProductID == 2 && userProd.UserID == userId select userProd).FirstOrDefault();
         if (userProduct == null)
         {
             userProduct = new Simplicity.Data.UserProduct();
             userProduct.UserID = userId;
             userProduct.ProductID = 2;
             simplicityDatabaseContext.AddToUserProducts(userProduct);
         }
         userProduct.IsTrial = true;
         userProduct.StartDate = DateTime.Now;
         userProduct.EndDate = DateTime.Now.AddDays(15);
         simplicityDatabaseContext.SaveChanges();
     }
     else
     {
         compTA.CompanyTrialUpdate((int)Session[WebConstants.Session.SIMPLICITY_COMPANY_ID], false);
     }
 }