示例#1
0
 public User Get(string login)
 {
     using (TestDatabaseEntities entities = new TestDatabaseEntities())
     {
         return(entities.Users.FirstOrDefault(u => u.login == login));
     }
 }
示例#2
0
        public static void Main()
        {
            using (var context = new TestDatabaseEntities())
            {
                // Left outer join Student to Enrollments
                System.Console.WriteLine("Using GroupJoin And SelectMany:");
                var stdEnrolments = context.Students
                                    .GroupJoin(context.Enrollments, s => s.StudentID, e => e.StudentID, (s, e) => new { s, e })
                                    .SelectMany(s2 => s2.e.DefaultIfEmpty(), (s2, e) => new { s2.s, e })
                                    .Select(s => new { s.s, s.e })
                                    .ToList();

                foreach (var r in stdEnrolments)
                {
                    System.Console.WriteLine($"StudentId: {r.s.StudentID}, CourseId: {((r.e != null) ? r.e.CourseID.ToString() : "none")}");
                }

                System.Console.WriteLine("\n\n\nUsing LeftJoin Extension:");
                var stdEnrolments2 = context.Students
                                     .LeftJoin(context.Enrollments, s => s.StudentID, e => e.StudentID, (s, e) => new { s, e })
                                     .Select(s2 => new { s2.s, s2.e })
                                     .ToList();

                foreach (var r in stdEnrolments2)
                {
                    System.Console.WriteLine($"StudentId: {r.s.StudentID}, CourseId: {((r.e != null) ? r.e.CourseID.ToString() : "none")}");
                }
            }
            System.Console.ReadLine();
        }
示例#3
0
        public ActionResult EditOrNewCustomer(string customerId = "")
        {
            TestDatabaseEntities ent          = new TestDatabaseEntities();
            DetailsFormModel     editCustomer = new DetailsFormModel();
            var customer = ent.Customers.Where(t => t.CustomerId.ToString() == customerId).FirstOrDefault();

            if (customer != null)
            {
                editCustomer.CustomerId      = customer.CustomerId;
                editCustomer.Login           = customer.Login;
                editCustomer.Password        = StringCipher.Decrypt(customer.Password);
                editCustomer.ConfirmPassword = StringCipher.Decrypt(customer.Password);
                editCustomer.FirstName       = customer.FirstName;
                editCustomer.LastName        = customer.LastName;
                editCustomer.Email           = customer.Email;
                if (customer.CustomerDetailsData != null)
                {
                    editCustomer.ChangerName = customer.CustomerDetailsData.ChangerName;
                    editCustomer.ChangedDate = customer.CustomerDetailsData.ChangedDate;
                    editCustomer.CreatedDate = customer.CustomerDetailsData.CreatedDate;
                    editCustomer.CreatorName = customer.CustomerDetailsData.CreatorName;
                }
            }
            return(View("~/Views/Home/Partials/CustomerDetails.cshtml", editCustomer));
        }
示例#4
0
 public List <Bilgi> List()
 {
     using (var ctx = new TestDatabaseEntities())
     {
         return(ctx.Bilgi.ToList());
     }
 }
示例#5
0
        public ActionResult PickAppointment(UserModel user)
        {
            TestDatabaseEntities context = new TestDatabaseEntities();

            if (user != null)
            {
                if (context.Appointments.Where(x => x.StudentUserID == user.UserID).FirstOrDefault() == null)
                {
                    var selection   = context.Availabilities.Where(x => x.AvailabilityID == user.SelectedAvailId).FirstOrDefault();
                    var instructor  = context.UserLogins.Where(x => x.UserID == selection.InstructorUserID).FirstOrDefault();
                    var confirmCode = Guid.NewGuid();
                    context.InsertAppointment(user.UserID, selection.InstructorUserID, selection.DateTime, confirmCode, selection.AvailabilityID);

                    SendConfirmAptEmail(instructor.Email, confirmCode.ToString(), user);
                    ViewBag.Message = "You have successfully asked for an meeting with " + instructor.Username.ToString() + ". We will notify you when they have confirmed the appointment.";
                    RedirectToAction("ProfilePage");
                }
                else
                {
                    ViewBag.Message = "You have already signed up for an appointment.";
                    RedirectToAction("ProfilePage");
                }
            }


            return(RedirectToAction("ProfilePage"));
        }
示例#6
0
 public IEnumerable <User> Get()
 {
     using (TestDatabaseEntities entities = new TestDatabaseEntities())
     {
         return(entities.Users.ToList());
     }
 }
示例#7
0
 public ActionResult LoginIntoSystem(CustomerLogin data)
 {
     if (ModelState.IsValid)
     {
         TestDatabaseEntities ent = new TestDatabaseEntities();
         var encryptedPassword    = StringCipher.Encrypt(data.Password);
         var customer             = ent.Customers.FirstOrDefault(t => (t.Login.ToUpper() == data.Login && t.Password == encryptedPassword));
         var roles = ent.CustomerRoles.Where(t => (t.Customers.Login.ToUpper() == data.Login && t.Customers.Password == encryptedPassword && t.Role.Name != "Customer"));
         if (customer == null)
         {
             ViewBag.ErrorMessage = "Unfortunately the user is not found!";
             return(View("Login"));
         }
         else if (customer.IsDisabled == true)
         {
             ViewBag.ErrorMessage = "Unfortunately the user is locked!";
             return(View("Login"));
         }
         else if (roles == null)
         {
             ViewBag.ErrorMessage = "Unfortunately the user is not authorized to enter!";
             return(View("Login"));
         }
         else
         {
             return(Redirect("/Home/Customers"));
         }
     }
     else
     {
         ViewBag.ErrorMessage = "Unfortunately some of the fields are not filled!";
         return(View("Login"));
     }
 }
示例#8
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            TestDatabaseEntities ent = new TestDatabaseEntities();

            //if (ent.Customers.FirstOrDefault(t => t.Login == "test") == null)
            //{
            //    Customers newCust = new Customers();
            //    newCust.Login = "******";
            //    newCust.Password = Encryption.Encrypt("Admin");
            //    ent.Customers.Add(newCust);
            //    ent.SaveChanges();
            //}
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("test"), Email= "*****@*****.**", PhoneNumber="3312312",FirstName= "Nelson", LastName= "Enrike" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("sveta"), Email = "*****@*****.**", PhoneNumber = "565645645", FirstName = "Svetlana", LastName = "Kaliuzhina" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("mil"), Email = "*****@*****.**", PhoneNumber = "312567786", FirstName = "Milan", LastName = "Baro" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("buf"), Email = "*****@*****.**", PhoneNumber = "312312377", FirstName = "Kim", LastName = "Carage" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("feli"), Email = "*****@*****.**", PhoneNumber = "787654321", FirstName = "Ciro", LastName = "Imobile" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("bin"), Email = "*****@*****.**", PhoneNumber = "31237879", FirstName = "Oleg", LastName = "Shevchenko" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("Avorro"), Email = "*****@*****.**", PhoneNumber = "12233344", FirstName = "Jack", LastName = "Sparrow" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("lui"), Email = "*****@*****.**", PhoneNumber = "455568787", FirstName = "Olya", LastName = "Polyakova" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("fran"), Email = "*****@*****.**", PhoneNumber = "678787785", FirstName = "Harry", LastName = "Potter" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("jerome"), Email = "*****@*****.**", PhoneNumber = "3218827", FirstName = "Drako", LastName = "Malfoy" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("phil"), Email = "*****@*****.**", PhoneNumber = "889865453", FirstName = "Arjen", LastName = "Robben" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("basty"), Email = "*****@*****.**", PhoneNumber = "332348995", FirstName = "Xavi", LastName = "Martinez" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("mario"), Email = "*****@*****.**", PhoneNumber = "1457785785", FirstName = "Jerome", LastName = "Boateng" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("mich"), Email = "*****@*****.**", PhoneNumber = "5575858675", FirstName = "Philip ", LastName = "Lahm" });
            //ent.Customers.Add(new Customers { Login = "", Password = Encryption.Encrypt("drako"), Email = "*****@*****.**", PhoneNumber = "32378898958", FirstName = "Mario", LastName = "Gomez" });



            ent.SaveChanges();
        }
示例#9
0
 public int Save(Bilgi bilgi)
 {
     using (var ctx = new TestDatabaseEntities())
     {
         ctx.Bilgi.Add(bilgi);
         return(ctx.SaveChanges());
     }
 }
示例#10
0
        public ActionResult PageChangedOrSorted(int pagenumber, string sortedColumn)
        {
            ViewBag.SelectedPage = 1;
            TestDatabaseEntities    ent   = new TestDatabaseEntities();
            IEnumerable <Customers> table = ent.Customers.Take(pageSize).ToList();

            return(View("~/Views/Home/Partials/CustomersTable.cshtml", table));
        }
示例#11
0
        public ActionResult RemoveAvail(int id)
        {
            TestDatabaseEntities context = new TestDatabaseEntities();

            context.DeleteAvail(id);
            ViewBag.Message = "You have successfully deleted availability time.";

            return(RedirectToAction("ProfilePage"));
        }
示例#12
0
 public int Delete(Bilgi bilgi)
 {
     using (var ctx = new TestDatabaseEntities())
     {
         Bilgi c = ctx.Bilgi.Where(i => i.SICIL_NO == bilgi.SICIL_NO).SingleOrDefault();
         ctx.Bilgi.Remove(c);
         return(ctx.SaveChanges());
     }
 }
示例#13
0
        public ActionResult SetAvailability(AvailabilityModel user)
        {
            TestDatabaseEntities context = new TestDatabaseEntities();

            context.InsertAvailablity(user.InstructorUserID, user.UserTypeID, user.DateTime);
            ViewBag.message = "You have set your availabilty successfully. You can now add more times if you wish. " +
                              "Please return to your profile page to view availability times.";

            return(RedirectToAction("Availability"));
        }
示例#14
0
        public ActionResult CancelApt(int id, int studentUserId, int interviewerId)
        {
            TestDatabaseEntities context = new TestDatabaseEntities();

            context.DeleteApt(id, studentUserId, interviewerId);

            ViewBag.Message = "You have successfully canceled your appointment.";

            return(RedirectToAction("ProfilePage"));
        }
示例#15
0
 protected void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (this.db != null)
         {
             this.db.Dispose();
             this.db = null;
         }
     }
 }
示例#16
0
        public ActionResult VerifyAccount(string activationCode)
        {
            TestDatabaseEntities context = new TestDatabaseEntities();
            var v = context.UserLogins.Where(x => x.ActivationCode == new Guid(activationCode)).FirstOrDefault();

            if (v != null)
            {
                var userId = v.UserID;
                context.ConfirmEmail(userId);
            }
            return(View());
        }
 public ActionResult Delete(Bilgi bilgi)
 {
     using (var ctx = new TestDatabaseEntities())
     {
         if (ModelState.IsValid)
         {
             NWBusinessLogic nwBusiness = new NWBusinessLogic();
             nwBusiness.Delete(bilgi);
         }
         return(View());
     }
 }
示例#18
0
        public ActionResult ConfirmApt(string confirmCode)
        {
            TestDatabaseEntities context = new TestDatabaseEntities();
            var v          = context.Appointments.Where(x => x.confirmCode == new Guid(confirmCode)).FirstOrDefault();
            var aptUser    = context.UserLogins.Where(x => x.UserID == v.StudentUserID).FirstOrDefault();
            var instructor = context.UserLogins.Where(x => x.UserID == v.InstructorUserID).FirstOrDefault();
            var availId    = v.OriginalAvailID;

            if (v != null)
            {
                context.ConfirmApt(v.AppointmentID, aptUser.UserID, instructor.UserID);


                var    fromEmail         = new MailAddress("*****@*****.**", "PrepIN Support");
                var    toEmail           = new MailAddress(aptUser.Email);
                var    fromEmailPassword = "******";
                string subject           = "Confirmation of Appointment";

                string body = "</br> </br> Your appointment with " + instructor.Username.ToString() + " for " + v.Time.ToLongDateString() + " at " + v.Time.ToShortTimeString() + " has been confirmed!";


                var smtp = new SmtpClient
                {
                    Host                  = "lv-shared04.cpanelplatform.com",
                    Port                  = 587,
                    EnableSsl             = true,
                    DeliveryMethod        = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials           = new NetworkCredential(fromEmail.Address, fromEmailPassword)
                };

                using (var message = new MailMessage(fromEmail, toEmail)
                {
                    Subject = subject,
                    Body = body,
                    IsBodyHtml = true
                })
                    smtp.Send(message);



                ViewBag.Message = "You have successfully confirmed your appointment with " + aptUser.Username + ".";
                context.DeleteAvail(availId);
                return(RedirectToAction("ProfilePage"));
            }
            else
            {
                ViewBag.Message = "An error has occured. Redirecting you to profile page or login page.";
                return(RedirectToAction("ProfilePage"));
            }
        }
示例#19
0
        public async Task <ActionResult> Index()
        {
            var context  = new TestDatabaseEntities();
            var personal = new tblPersonal()
            {
                FirstName  = "Juan",
                LastName   = "Dela Cruz",
                MiddleName = "Pedro"
            };

            context.tblPersonals.Add(personal);
            await context.SaveChangesAsync();

            return(View());
        }
示例#20
0
        public ActionResult ResetPassword(string email)
        {
            TestDatabaseEntities context = new TestDatabaseEntities();


            if (email != null)
            {
                string resetCode = Guid.NewGuid().ToString();
                context.AddPasswordResetCode(email, resetCode);
                SendResetCodeEmail(email, resetCode);
                ViewBag.Message = "Password reset email sent to " + email;
            }

            return(View());
        }
示例#21
0
 public Bilgi Update(Bilgi bilgi)
 {
     using (var ctx = new TestDatabaseEntities())
     {
         var c = ctx.Bilgi.FirstOrDefault(i => i.SICIL_NO == bilgi.SICIL_NO);
         if (c != null)
         {
             c.AD                 = bilgi.AD;
             c.SOYAD              = bilgi.SOYAD;
             c.GOREVI             = bilgi.GOREVI;
             c.IS_BASLANGIC_TARIH = bilgi.IS_BASLANGIC_TARIH;
             ctx.SaveChanges();
         }
         return(c);
     }
 }
示例#22
0
        public ActionResult CreateUser(UserModel user)
        {
            TestDatabaseEntities context = new TestDatabaseEntities();

            var activationCode = Guid.NewGuid();
            var passwordHash   = Crypto.Hash(user.Password);
            var obj1           = context.UserLogins.Where(x => x.Username.Equals(user.Username)).FirstOrDefault();
            var obj2           = context.UserLogins.Where(x => x.Email.Equals(user.Email)).FirstOrDefault();

            if (obj1 != null)
            {
                if (string.Compare(user.Username, obj1.Username) == 0)
                {
                    ViewBag.message = "Username already exists. Please try again.";
                    return(RedirectToAction("CreateUser"));
                }
                else
                {
                    ViewBag.message = "Unknown error has occured.";
                    return(RedirectToAction("Index"));
                }
            }
            if (obj2 != null)
            {
                if (string.Compare(user.Email, obj2.Email) == 0)
                {
                    ViewBag.message = "Email already exists. Please try again.";
                    return(RedirectToAction("CreateUser"));
                }
                else
                {
                    ViewBag.message = "Unknown error has occured.";
                    return(RedirectToAction("Index"));
                }
            }


            else
            {
                context.Insert_User(user.Username, passwordHash, user.Email, activationCode, (int)user.UserGroup, (int)user.UserType);


                SendVerificationCodeEmail(user.Email, activationCode.ToString());

                return(RedirectToAction("AccountSuccess"));
            }
        }
示例#23
0
        public ActionResult ProfilePage()
        {
            TestDatabaseEntities context = new TestDatabaseEntities();
            UserLogin            user    = context.UserLogins.Where(x => x.Username == User.Identity.Name).FirstOrDefault();

            if (User.Identity.IsAuthenticated)
            {
                UserModel model = new UserModel();
                model.UserID         = user.UserID;
                model.UserGroupID    = user.UserGroupID;
                model.UserTypeID     = user.UserTypeID;
                model.HasAppointment = user.HasAppointment;

                if (user.UserGroupID != 1)
                {
                    model.AvailList = context.Availabilities.Where(x => x.InstructorUserID == user.UserID).ToList();
                }
                if (user.HasAppointment == true)
                {
                    model.Appointments = context.Appointments.Where(x => x.StudentUserID == user.UserID).ToList();

                    if (model.UserGroupID == 1)
                    {
                        int oppositeId = model.Appointments.FirstOrDefault().InstructorUserID;
                        model.AppointmentTime = context.GetStudentAppointmentTime(user.UserID).FirstOrDefault();
                        model.WhoIsMyAptWith  = context.GetUserNameFromID(oppositeId).ToString();
                    }

                    if (model.UserGroupID != 1)
                    {
                        int oppositeId = model.Appointments.FirstOrDefault().StudentUserID;
                        model.AppointmentTime = context.GetInstructorAppointmentTime(user.UserID).FirstOrDefault();
                        model.WhoIsMyAptWith  = context.GetUserNameFromID(oppositeId).ToString();
                    }
                }
                if (user.HasAppointment == false && user.UserGroupID == 1)
                {
                    model.MatchedAvails = context.Availabilities.Where(x => x.UserTypeID == user.UserTypeID).ToList();
                }
                return(View(model));
            }
            else
            {
                return(RedirectToAction("Login"));
            }
        }
示例#24
0
        public ActionResult Availability()
        {
            if (User.Identity.IsAuthenticated)
            {
                TestDatabaseEntities context = new TestDatabaseEntities();
                UserLogin            user    = context.UserLogins.Where(x => x.Username == User.Identity.Name).FirstOrDefault();

                AvailabilityModel model = new AvailabilityModel();
                model.InstructorUserID = user.UserID;
                model.UserTypeID       = user.UserTypeID;
                return(View(model));
            }
            else
            {
                return(RedirectToAction("Login"));
            }
        }
示例#25
0
        public ActionResult ResetPasswordCodeValidation(string resetCode)
        {
            TestDatabaseEntities context = new TestDatabaseEntities();
            var match = context.UserLogins.Where(x => x.ResetPasswordCode == resetCode);

            if (match != null)
            {
                NewPasswordModel model = new NewPasswordModel();
                model.ResetCode = resetCode;
                return(View(model));
            }
            else
            {
                ViewBag.message = "You have reached this page in error. Now being returned to login page";
                return(RedirectToAction("Login"));
            }
        }
示例#26
0
        public ActionResult Login(UserModel user, string ReturnUrl = "")
        {
            TestDatabaseEntities context = new TestDatabaseEntities();


            var obj  = context.UserLogins.Where(x => x.Username.Equals(user.Username)).FirstOrDefault();
            var pass = Crypto.Hash(user.Password);

            if (obj != null && obj.IsEmailConfirmed == true)
            {
                if (string.Compare(pass, obj.Password) == 0)
                {
                    int    timeout   = user.RememberMe ? 525600 : 20;
                    var    ticket    = new FormsAuthenticationTicket(user.Username, user.RememberMe, timeout);
                    string encrypted = FormsAuthentication.Encrypt(ticket);
                    var    cookie    = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
                    cookie.Expires  = DateTime.Now.AddMinutes(timeout);
                    cookie.HttpOnly = true;
                    Response.Cookies.Add(cookie);

                    if (Url.IsLocalUrl(ReturnUrl))
                    {
                        return(Redirect(ReturnUrl));
                    }
                    else
                    {
                        return(RedirectToAction("ProfilePage"));
                    }
                }
                else
                {
                    ViewBag.Message = "Username/Password combo incorrect. Please try again";
                }
            }
            else if (obj.IsEmailConfirmed == false)
            {
                ViewBag.Message = "You have not confirmed your email yet. Please check the email you signed up with and try again.";
            }
            else
            {
                ViewBag.Message = "Username/Password combo incorrect. Please try again";
            }

            return(View(user));
        }
示例#27
0
        public ActionResult ResetPasswordCodeValidation(NewPasswordModel model)
        {
            var message = "";
            TestDatabaseEntities context = new TestDatabaseEntities();

            if (model.ResetCode != null)
            {
                string newPassword = Crypto.Hash(model.NewPassword);
                context.ChangePassword(newPassword, model.ResetCode);
                message         = "Password successfully changed";
                ViewBag.Message = message;
                return(RedirectToAction("ProfilePage"));
            }
            else
            {
                message         = "Something went wrong. Redirecting to login page. Please contact support.";
                ViewBag.Message = message;
                return(RedirectToAction("Login"));
            }
        }
示例#28
0
        public void TestMethodTest()
        {
            TestDatabaseEntities context = new TestDatabaseEntities();

            context.Entidade = new Mock <DbSet <Entidade> >().Object;

            List <Entidade> entidades = new List <Entidade>()
            {
                new Entidade()
                {
                    Id = 1, Propriedade = "1"
                },
                new Entidade()
                {
                    Id = 2, Propriedade = "2"
                }
            };

            IQueryable <Entidade> queryableEntidade = entidades.AsQueryable();

            var mockDbSet = MockDbSet <Entidade>(
                new Entidade()
            {
                Id = 1, Propriedade = "1"
            },
                new Entidade()
            {
                Id = 2, Propriedade = "2"
            }
                );

            context.Entidade = mockDbSet;

            // var tester = new Tester();

            var result = Tester.TestMethod(context);
        }
示例#29
0
        public void SendConfirmAptEmail(string email, string code, UserModel user)
        {
            TestDatabaseEntities context = new TestDatabaseEntities();
            string username          = context.UserLogins.Where(x => x.UserID == user.UserID).FirstOrDefault().Username;
            var    fromEmail         = new MailAddress("*****@*****.**", "PrepIN Support");
            var    toEmail           = new MailAddress(email);
            string fromEmailPassword = "******";

            string acceptUrl  = "/Home/ConfirmApt?confirmCode=" + code;
            string denyUrl    = "/Home/DenyApt?denyCode=" + code;
            var    acceptLink = Request.Url.AbsoluteUri.Replace(Request.Url.PathAndQuery, acceptUrl);
            var    denyLink   = Request.Url.AbsoluteUri.Replace(Request.Url.PathAndQuery, denyUrl);

            string subject = "Confirm Appointment";

            string body = "</br> </br> You have a new appointment set up with " + username + ". Click <a href='" + acceptLink + "'>here</a> to accept this appointment. Click <a href='" + denyLink + "'>here</a> to deny this appointment.";


            var smtp = new SmtpClient
            {
                Host                  = "lv-shared04.cpanelplatform.com",
                Port                  = 587,
                EnableSsl             = true,
                DeliveryMethod        = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials           = new NetworkCredential(fromEmail.Address, fromEmailPassword)
            };

            using (var message = new MailMessage(fromEmail, toEmail)
            {
                Subject = subject,
                Body = body,
                IsBodyHtml = true
            })
                smtp.Send(message);
        }
示例#30
0
        public ActionResult CustomersPart(int?page, string columnId, string src)
        {
            ViewBag.SelectedPage = page == null?1:page;
            ViewBag.SortedColumn = columnId;
            ViewBag.SortedType   = src;
            string searchtext = string.Empty;

            if (Request.Cookies["searchtext"] != null)
            {
                searchtext = Request.Cookies["searchtext"].Value;
            }

            int skipCount            = (ViewBag.SelectedPage - 1) * pageSize;
            TestDatabaseEntities ent = new TestDatabaseEntities();
            List <Customers>     table;
            int tablecount = 0;

            if (columnId == "loginSort")
            {
                if (src.Contains("asc"))
                {
                    var select = ent.Customers.Where(t => t.Email.Contains(searchtext) || t.FirstName.Contains(searchtext) || t.LastName.Contains(searchtext) || t.Login.Contains(searchtext) || t.PhoneNumber.Contains(searchtext) || t.CustomerRoles.Any(r => r.Role.Name.Contains(searchtext))).ToList();
                    tablecount = select.Count;
                    table      = select.OrderBy(t => t.Login).Skip(skipCount).Take(pageSize).ToList();
                }
                else
                {
                    var select = ent.Customers.Where(t => t.Email.Contains(searchtext) || t.FirstName.Contains(searchtext) || t.LastName.Contains(searchtext) || t.Login.Contains(searchtext) || t.PhoneNumber.Contains(searchtext) || t.CustomerRoles.Any(r => r.Role.Name.Contains(searchtext))).ToList();
                    tablecount = select.Count;
                    table      = select.OrderBy(t => t.Login).Skip(skipCount).Take(pageSize).ToList();
                }
            }
            else if (columnId == "nameSort")
            {
                if (src.Contains("asc"))
                {
                    var select = ent.Customers.Where(t => t.Email.Contains(searchtext) || t.FirstName.Contains(searchtext) || t.LastName.Contains(searchtext) || t.Login.Contains(searchtext) || t.PhoneNumber.Contains(searchtext) || t.CustomerRoles.Any(r => r.Role.Name.Contains(searchtext))).ToList();
                    tablecount = select.Count;
                    table      = select.OrderBy(t => t.FirstName).ThenBy(t => t.LastName).Skip(skipCount).Take(pageSize).ToList();
                }
                else
                {
                    var select = ent.Customers.Where(t => t.Email.Contains(searchtext) || t.FirstName.Contains(searchtext) || t.LastName.Contains(searchtext) || t.Login.Contains(searchtext) || t.PhoneNumber.Contains(searchtext) || t.CustomerRoles.Any(r => r.Role.Name.Contains(searchtext))).ToList();
                    tablecount = select.Count;
                    table      = select.OrderByDescending(t => t.FirstName).ThenBy(t => t.LastName).Skip(skipCount).Take(pageSize).ToList();
                }
            }
            else if (columnId == "emailSort")
            {
                if (src.Contains("asc"))
                {
                    var select = ent.Customers.Where(t => t.Email.Contains(searchtext) || t.FirstName.Contains(searchtext) || t.LastName.Contains(searchtext) || t.Login.Contains(searchtext) || t.PhoneNumber.Contains(searchtext) || t.CustomerRoles.Any(r => r.Role.Name.Contains(searchtext))).ToList();
                    tablecount = select.Count;
                    table      = select.OrderBy(t => t.Email).Skip(skipCount).Take(pageSize).ToList();
                }
                else
                {
                    var select = ent.Customers.Where(t => t.Email.Contains(searchtext) || t.FirstName.Contains(searchtext) || t.LastName.Contains(searchtext) || t.Login.Contains(searchtext) || t.PhoneNumber.Contains(searchtext) || t.CustomerRoles.Any(r => r.Role.Name.Contains(searchtext))).ToList();
                    tablecount = select.Count;
                    table      = select.OrderByDescending(t => t.Email).Skip(skipCount).Take(pageSize).ToList();
                }
            }
            else if (columnId == "phoneSort")
            {
                if (src.Contains("asc"))
                {
                    var select = ent.Customers.Where(t => t.Email.Contains(searchtext) || t.FirstName.Contains(searchtext) || t.LastName.Contains(searchtext) || t.Login.Contains(searchtext) || t.PhoneNumber.Contains(searchtext) || t.CustomerRoles.Any(r => r.Role.Name.Contains(searchtext))).ToList();
                    tablecount = select.Count;
                    table      = select.OrderBy(t => t.PhoneNumber).Skip(skipCount).Take(pageSize).ToList();
                }
                else
                {
                    var select = ent.Customers.Where(t => t.Email.Contains(searchtext) || t.FirstName.Contains(searchtext) || t.LastName.Contains(searchtext) || t.Login.Contains(searchtext) || t.PhoneNumber.Contains(searchtext) || t.CustomerRoles.Any(r => r.Role.Name.Contains(searchtext))).ToList();
                    tablecount = select.Count;
                    table      = select.OrderByDescending(t => t.PhoneNumber).Skip(skipCount).Take(pageSize).ToList();
                }
            }
            else
            {
                var select = ent.Customers.Where(t => t.Email.Contains(searchtext) || t.FirstName.Contains(searchtext) || t.LastName.Contains(searchtext) || t.Login.Contains(searchtext) || t.PhoneNumber.Contains(searchtext) || t.CustomerRoles.Any(r => r.Role.Name.Contains(searchtext))).ToList();
                tablecount = select.Count;
                table      = select.OrderBy(t => t.CustomerId).Skip(skipCount).Take(pageSize).ToList();
            }

            int pagecount = tablecount % pageSize == 0 ? tablecount / pageSize : tablecount / pageSize + 1;

            ViewBag.PageCount      = pagecount;
            ViewBag.TotalRowsCount = tablecount;
            ViewBag.SearchText     = searchtext;

            return(View("~/Views/Home/Partials/CustomersPart.cshtml", table));
        }