Example #1
0
        public JsonResult ChangePassword(RegisterUserModel reg)
        {
            var user = db.USERs.Where(c => c.ID == reg.ID).FirstOrDefault();

            user.Password        = reg.Password;
            db.Entry(user).State = System.Data.EntityState.Modified;
            db.SaveChanges();
            return(Json(new { status = "Ok", code = 400, msg = "Password Changed" }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult AddNewUser(RegisterUserModel rgsterUserformdata)
        {
            if (Session["UserId"] == null)
            {
                return(Json(new { status = "Ok", code = 401, msg = "Unauthorized Access", data = User }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                #region Adduser

                //checking validation
                //if (ModelState.IsValid)
                //{
                try
                {
                    //assigning form data to table model
                    var rgsteruser = new USER();
                    rgsteruser.FirstName      = rgsterUserformdata.FirstName;
                    rgsteruser.Email          = rgsterUserformdata.Email;
                    rgsteruser.UserName       = rgsterUserformdata.UserName;
                    rgsteruser.Password       = rgsterUserformdata.Password;
                    rgsteruser.ProfilePicPath = rgsterUserformdata.PicturePath;
                    rgsteruser.IsActive       = true;
                    rgsteruser.Status         = "Active";
                    rgsteruser.DateCreated    = DateTime.Now;
                    rgsteruser.CreatedBy      = Convert.ToInt32(Session["UserId"].ToString());
                    rgsteruser.RoleId         = 2;
                    if (rgsterUserformdata.ProfilePictureFile != null)
                    {
                        UploadProfilePicture(rgsterUserformdata);
                    }
                    rgsteruser.ProfilePicPath = rgsterUserformdata.PicturePath;
                    //insert to daatbase
                    db.USERs.Add(rgsteruser);
                    db.SaveChanges();

                    return(Json(new { status = "Ok", code = 200, msg = "No User Found", data = User }, JsonRequestBehavior.AllowGet));
                }
                catch (Exception ex)
                {
                    //if any error
                    return(Json(new { status = "Bad Gateway", code = 400, msg = "Failed" + ex.Message, data = "" }, JsonRequestBehavior.AllowGet));
                }
                //}
                //else
                //{
                //    //Validation Failed
                //    return Json(new { status = "Bad Gateway", code = 400, msg = "Validation Failed", data = "" }, JsonRequestBehavior.AllowGet);

                //}
                #endregion
            }
        }
        public void AddNotification(NotificationModel nmodel)
        {
            notification nm = new notification();

            nm.NotificationText = nmodel.NotificationText;
            nm.N_To             = nmodel.N_To;
            nm.N_from           = nmodel.N_from;
            nm.IsRead           = false;
            nm.dateCreated      = DateTime.Now;
            db = new LeadCRMEntities();
            db.notifications.Add(nm);
            db.SaveChanges();
        }
        public JsonResult DeleteNotification()
        {
            int userid        = Convert.ToInt32(Session["UserId"].ToString());
            var notifications = db.notifications.Where(p => p.N_To == userid && p.IsRead == false).OrderByDescending(p => p.ID).ToList();

            foreach (notification n in notifications)
            {
                n.IsRead          = true;
                db.Entry(n).State = System.Data.EntityState.Modified;
                db.SaveChanges();
            }

            return(Json(new { code = 200 }, JsonRequestBehavior.AllowGet));
        }
        //public static DataTable ToDataTable<T>(List<T> items)
        //{
        //    DataTable dataTable = new DataTable(typeof(T).Name);

        //    //Get all the properties
        //    PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
        //    foreach (PropertyInfo prop in Props)
        //    {
        //        //Defining type of data column gives proper data table
        //        var type = (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>) ? Nullable.GetUnderlyingType(prop.PropertyType) : prop.PropertyType);
        //        //Setting column names as Property names
        //        dataTable.Columns.Add(prop.Name, type);
        //    }
        //    foreach (T item in items)
        //    {
        //        var values = new object[Props.Length];
        //        for (int i = 0; i < Props.Length; i++)
        //        {
        //            //inserting property values to datatable rows
        //            values[i] = Props[i].GetValue(item, null);
        //        }
        //        dataTable.Rows.Add(values);
        //    }

        //    return dataTable;
        //}

        public bool insertBulk(List <LeadModel> m)
        {
            try
            {
                if (m.Count > 0)
                {
                    foreach (LeadModel emp in m)
                    {
                        string da    = "20-07-15";
                        Lead   objlm = new Lead();
                        objlm.AssignedToUSerID   = 2;
                        objlm.Budget             = emp.Budget;
                        objlm.ClientName         = emp.ClientName;
                        objlm.ContactNo          = emp.ContactNo;
                        objlm.Created_By         = emp.Created_By;
                        objlm.DateCreated        = emp.DateCreated;
                        objlm.Email              = emp.Email;
                        objlm.IntialRequirements = emp.IntialRequirements;
                        objlm.IPAddress          = emp.IPAddress;
                        objlm.Is_Active          = emp.Is_Active;
                        objlm.LastStatus         = emp.LastStatus;
                        objlm.LeadDate           = DateTime.Now;
                        objlm.LeadStatus         = emp.LeadStatus;
                        objlm.LeadTime           = emp.LeadTime;
                        objlm.LeadType           = emp.LeadTypeID;
                        objlm.Location           = emp.Location;
                        objlm.NextPlan           = emp.NextPlan;
                        objlm.Status             = emp.Status;
                        objlm.TimeZone           = emp.TimeZoneID;
                        db.Leads.Add(objlm);
                    }

                    db.SaveChanges();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                return(false);
            }
        }
        public JsonResult AddNewLead(LeadModel newlead)
        {
            if (Session["UserId"] == null)
            {
                return(Json(new { status = "Ok", code = 401, msg = "Unauthorized Access", data = "" }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                #region AddLead

                //checking validation
                //if (ModelState.IsValid)
                //{
                try
                {
                    if (newlead.ID <= 0 || newlead.ID == null)
                    {
                        //assigning form data to table model
                        var newleadrgstr = new Lead();
                        newleadrgstr.ClientName         = newlead.ClientName;
                        newleadrgstr.LeadDate           = newlead.LeadDate;
                        newleadrgstr.LeadTime           = newlead.LeadTime;
                        newleadrgstr.LeadType           = newlead.LeadTypeID;
                        newleadrgstr.ContactNo          = newlead.ContactNo;
                        newleadrgstr.Email              = newlead.Email;
                        newleadrgstr.TimeZone           = newlead.TimeZoneID;
                        newleadrgstr.Location           = newlead.Location;
                        newleadrgstr.IPAddress          = newlead.IPAddress;
                        newleadrgstr.LeadStatus         = newlead.LeadStatus;
                        newleadrgstr.Budget             = newlead.Budget;
                        newleadrgstr.NextPlan           = newlead.NextPlan;
                        newleadrgstr.LastStatus         = newlead.LastStatus;
                        newleadrgstr.IntialRequirements = newlead.IntialRequirements;
                        newleadrgstr.AssignedToUSerID   = newlead.AssignedToUSerID;
                        newleadrgstr.DateCreated        = DateTime.Now;
                        newleadrgstr.Is_Active          = true;
                        newleadrgstr.Status             = "Active";
                        newleadrgstr.Created_By         = Convert.ToInt32(Session["UserId"]);

                        //var adminId = Convert.ToInt32(Session["UserId"].ToString());

                        //var user = db.USERs.Where(c => c.ID == newlead.AssignedToUSerID).FirstOrDefault();
                        ////var admin = db.USERs.Where(c => c.ID == adminId).FirstOrDefault();
                        //var mes = "Dear " + user.UserName + " a lead has been assigned to you";

                        //var body = "<p>Email From: {0} ({1})</p><p>Message:</p><p>{2}</p>";
                        //var message = new MailMessage();
                        //message.To.Add(new MailAddress(user.Email));  // replace with valid value
                        //message.From = new MailAddress("*****@*****.**");  // replace with valid value
                        //message.Subject = "You have been assigned a Lead";
                        //message.Body = string.Format(body, "Rashid Rahim", "*****@*****.**", mes);
                        //message.IsBodyHtml = true;

                        //using (var smtp = new SmtpClient())
                        //{
                        //    var credential = new NetworkCredential
                        //    {
                        //        UserName = "******",  // replace with valid value
                        //        Password = "******"  // replace with valid value
                        //    };
                        //    smtp.Credentials = credential;
                        //    smtp.Host = "smtp-mail.outlook.com";
                        //    smtp.Port = 587;
                        //    smtp.EnableSsl = true;
                        //    smtp.SendMailAsync(message);

                        //}

                        //insert to daatbase
                        db.Leads.Add(newleadrgstr);
                        db.SaveChanges();

                        NotificationModel nm = new NotificationModel();
                        nm.N_To             = newlead.AssignedToUSerID;
                        nm.NotificationText = "You have Assigned to New Lead";
                        nm.N_from           = Convert.ToInt32(Session["UserId"]);
                        nm.IsRead           = false;
                        nm.dateCreated      = DateTime.Now;
                        AddNotification(nm);
                    }
                    else
                    {
                        if (Convert.ToInt32(Session["RoleID"]) == 1)
                        {
                            var result = db.Leads.SingleOrDefault(b => b.ID == newlead.ID);
                            if (result != null)
                            {
                                result.ClientName         = newlead.ClientName;
                                result.LeadDate           = newlead.LeadDate;
                                result.LeadTime           = newlead.LeadTime;
                                result.LeadType           = newlead.LeadTypeID;
                                result.ContactNo          = newlead.ContactNo;
                                result.Email              = newlead.Email;
                                result.TimeZone           = newlead.TimeZoneID;
                                result.Location           = newlead.Location;
                                result.IPAddress          = newlead.IPAddress;
                                result.LeadStatus         = newlead.LeadStatus;
                                result.Budget             = newlead.Budget;
                                result.NextPlan           = newlead.NextPlan;
                                result.LastStatus         = newlead.LastStatus;
                                result.IntialRequirements = newlead.IntialRequirements;
                                result.AssignedToUSerID   = newlead.AssignedToUSerID;
                                result.DateCreated        = DateTime.Now;
                                result.Is_Active          = true;
                                result.Status             = "Active";
                                result.Created_By         = Convert.ToInt32(Session["UserId"]);
                                db.SaveChanges();

                                NotificationModel nm = new NotificationModel();
                                nm.N_To             = newlead.AssignedToUSerID;
                                nm.NotificationText = "Lead has been Edited";
                                nm.N_from           = Convert.ToInt32(Session["UserId"]);
                                nm.IsRead           = false;
                                nm.dateCreated      = DateTime.Now;
                                AddNotification(nm);
                            }
                        }
                        else
                        {
                            var result = db.Leads.SingleOrDefault(b => b.ID == newlead.ID);
                            if (result != null)
                            {
                                result.ClientName         = newlead.ClientName;
                                result.LeadDate           = newlead.LeadDate;
                                result.LeadTime           = newlead.LeadTime;
                                result.LeadType           = newlead.LeadTypeID;
                                result.ContactNo          = newlead.ContactNo;
                                result.Email              = newlead.Email;
                                result.TimeZone           = newlead.TimeZoneID;
                                result.Location           = newlead.Location;
                                result.IPAddress          = newlead.IPAddress;
                                result.LeadStatus         = newlead.LeadStatus;
                                result.Budget             = newlead.Budget;
                                result.NextPlan           = newlead.NextPlan;
                                result.LastStatus         = newlead.LastStatus;
                                result.IntialRequirements = newlead.IntialRequirements;
                                result.AssignedToUSerID   = newlead.AssignedToUSerID;
                                result.DateCreated        = DateTime.Now;
                                result.Is_Active          = true;
                                result.Status             = "Active";
                                result.Created_By         = Convert.ToInt32(Session["UserId"]);
                                db.SaveChanges();

                                // use fro notification for all Admin Roles
                                db = new LeadCRMEntities();
                                var adminslist = db.USERs.Where(p => p.RoleId == 1).ToList();
                                for (int i = 0; i < adminslist.Count; i++)
                                {
                                    NotificationModel nm = new NotificationModel();
                                    nm.N_To             = adminslist[i].ID;
                                    nm.NotificationText = "Lead has been Edited";
                                    nm.N_from           = Convert.ToInt32(Session["UserId"]);
                                    nm.IsRead           = false;
                                    nm.dateCreated      = DateTime.Now;
                                    AddNotification(nm);
                                }
                            }
                        }
                    }
                    return(Json(new { status = "Ok", code = 200, msg = "No User Found", data = "" }, JsonRequestBehavior.AllowGet));
                }
                catch (Exception ex)
                {
                    //if any error
                    return(Json(new { status = "Bad Gateway", code = 400, msg = "Failed" + ex.Message, data = "" }, JsonRequestBehavior.AllowGet));
                }
                //}
                //else
                //{


                //    //foreach (var eve in ModelState.EntityValidationErrors)
                //    //{
                //    //    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                //    //        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                //    //    foreach (var ve in eve.ValidationErrors)
                //    //    {
                //    //        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                //    //            ve.PropertyName, ve.ErrorMessage);
                //    //    }
                //    //}



                //    //Validation Failed
                //    return Json(new { status = "Bad Gateway", code = 400, msg = "Validation Failed", data = "" }, JsonRequestBehavior.AllowGet);

                //}
                #endregion
            }
        }