Пример #1
0
        // GET: CraveatsUser
        public ViewResult Index(string sortOrder, string currentFilter, string searchString, int?page)
        {
            ViewBag.CurrentSort  = sortOrder;
            ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewBag.CurrentFilter = searchString;


            Common.UserTypeEnum userTypeEnumFromSession = SessionManager.GetContextSessionOwnerType();

            int?sessionLoggedUserId = int.Parse(DataSecurityTripleDES.GetPlainText(
                                                    SessionManager.GetContextSessionLoggedUserID()));

            var users = (userTypeEnumFromSession == Common.UserTypeEnum.CraveatsAdmin)
                ? from u in db.User
                        where u.Id != sessionLoggedUserId
                        select u
                : from u in db.User
                        where u.Id == 0
                        select u;

            if (!String.IsNullOrEmpty(searchString))
            {
                users = users.Where(s => ((s.FirstName ?? "") + " " + (s.Surname ?? "")).Contains(searchString) ||
                                    s.EmailAddress.Contains(searchString));
            }
            switch (sortOrder)
            {
            case "name_desc":
                users = users.OrderByDescending(s => ((s.FirstName ?? "") + " " + (s.Surname ?? "")));
                break;

            case "Date":
                users = users.OrderBy(s => s.LastUpdated);
                break;

            case "date_desc":
                users = users.OrderByDescending(s => s.LastUpdated);
                break;

            default:      // Name ascending
                users = users.OrderBy(s => ((s.FirstName ?? "") + " " + (s.Surname ?? "")));
                break;
            }

            int pageSize   = 25;
            int pageNumber = (page ?? 1);

            return(View(users.ToPagedList(pageNumber, pageSize)));
        }
        internal int?RegisterNew(string email, string hashedPassword, string role)
        {
            try {
                Common.UserTypeEnum registeringRole = Common.CommonUtility.GetEnumValueFromDescription <Common.UserTypeEnum>(role);

                if (!(registeringRole.HasFlag(Common.UserTypeEnum.CraveatsDiner) ||
                      registeringRole.HasFlag(Common.UserTypeEnum.PartnerRestaurant)))
                {
                    throw new InvalidOperationException("Requested role could not be used in this context.");
                }

                using (CraveatsDbContext craveatsDbContext = new CraveatsDbContext()) {
                    DBCommonUtility dBCommonUtility   = new DBCommonUtility();
                    string          sqlCmdParamString = "";
                    SqlParameter[]  sqlParameters     = dBCommonUtility.GetSqlParameters(
                        new object[] {
                        email,
                        hashedPassword,
                        (int)registeringRole
                    },
                        out sqlCmdParamString
                        , true);
                    StringBuilder sbRawSQL = new StringBuilder("exec RegisterNewActiveUser");
                    sbRawSQL.AppendFormat(" {0}", sqlCmdParamString.Trim());

                    User newUser = craveatsDbContext.User.SqlQuery(
                        sql: sbRawSQL.ToString(),
                        parameters: sqlParameters
                        ).FirstOrDefault();

                    return(newUser?.Id);
                }
            }
            catch (Exception e) {
                throw e;
            }
        }
        // GET: Restaurant
        public ViewResult Index(string sortOrder, string currentFilter, string searchString, int?page)
        {
            ViewBag.CurrentSort  = sortOrder;
            ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewBag.CurrentFilter = searchString;


            Common.UserTypeEnum userTypeEnumFromSession = SessionManager.GetContextSessionOwnerType();

            int?sessionLoggedUserId = int.Parse(DataSecurityTripleDES.GetPlainText(
                                                    SessionManager.GetContextSessionLoggedUserID()));
            var Restaurants = (userTypeEnumFromSession == Common.UserTypeEnum.CraveatsAdmin)
                ? from s in db.Restaurant
                              select s
                : (userTypeEnumFromSession == Common.UserTypeEnum.PartnerRestaurant)
                    ? from s in db.Restaurant
                              where s.PartnerUserId == sessionLoggedUserId
                              select s
                    : from s in db.Restaurant
                              where s.PartnerUserId == 0
                              select s;

            if (!String.IsNullOrEmpty(searchString))
            {
                Restaurants = Restaurants.Where(s => s.Name.Contains(searchString) ||
                                                s.Detail.Contains(searchString));
            }
            switch (sortOrder)
            {
            case "name_desc":
                Restaurants = Restaurants.OrderByDescending(s => s.Name);
                break;

            case "Date":
                Restaurants = Restaurants.OrderBy(s => s.LastUpdated);
                break;

            case "date_desc":
                Restaurants = Restaurants.OrderByDescending(s => s.LastUpdated);
                break;

            default:      // Name ascending
                Restaurants = Restaurants.OrderBy(s => s.Name);
                break;
            }

            int pageSize   = 25;
            int pageNumber = (page ?? 1);

            return(View(Restaurants.ToPagedList(pageNumber, pageSize)));
        }