public PrescriptionEntity Find(string name)
        {
            try
            {
                var collection   = Connect(DataAccessConstants.DatabaseName).GetCollection <PrescriptionEntity>(CollectionName);
                var prescription = IMongoCollectionExtensions.Find <PrescriptionEntity>(collection, f => f.CustomerName.Equals(name) || f.GpName.Equals(name)).FirstOrDefault();

                if (prescription != null)
                {
                    return new PrescriptionEntity()
                           {
                               PrescriptionId = prescription.PrescriptionId,
                               CustomerName   = prescription.CustomerName,
                               GpName         = prescription.GpName,
                               Products       = prescription.Products
                           }
                }
                ;
            }
            catch (Exception e)
            {
                throw new KeyNotFoundException($"Customer or GP name not found: {name}");
            }

            throw new KeyNotFoundException($"Customer or GP name not found: {name}");
        }
        public AccountEntity Find(string accountName)
        {
            try
            {
                var collection = Connect(DataAccessConstants.DatabaseName).GetCollection <AccountEntity>(CollectionName);
                var account    = IMongoCollectionExtensions.Find <AccountEntity>(collection, f => f.AccountName.Equals(accountName)).FirstOrDefault();

                if (account != null)
                {
                    return new AccountEntity()
                           {
                               AccountId     = account.AccountId,
                               AccountName   = account.AccountName,
                               Password      = account.Password,
                               AccountType   = account.AccountType,
                               IsLoggedIn    = account.IsLoggedIn,
                               LastLoginDate = account.LastLoginDate
                           }
                }
                ;
            }
            catch (Exception e)
            {
                throw new KeyNotFoundException($"Account Name not found: {accountName}");
            }

            throw new KeyNotFoundException($"Account Name not found: {accountName}");
        }
示例#3
0
        public async Task <StaticPagedList <T> > PaginationAsync(int page, int total, SortDefinition <T> sortBy, Expression <Func <T, bool> > query = null)
        {
            StaticPagedList <T> staticPagedList;
            CancellationToken   cancellationToken;
            long num = (long)0;

            if (query != null)
            {
                IMongoCollection <T> collection       = this.Collection;
                FilterDefinition <T> filterDefinition = query;
                cancellationToken = new CancellationToken();
                num = await collection.CountAsync(filterDefinition, null, cancellationToken);

                IFindFluent <T, T> findFluent = IMongoCollectionExtensions.Find <T>(this.Collection, query, null).Skip(new int?((page - 1) * total)).Limit(new int?(total)).Sort(sortBy);
                cancellationToken = new CancellationToken();
                List <T> listAsync = await IAsyncCursorSourceExtensions.ToListAsync <T>(findFluent, cancellationToken);

                staticPagedList = new StaticPagedList <T>(listAsync, page, total, (int)num);
            }
            else
            {
                IMongoCollection <T> mongoCollection = this.Collection;
                FilterDefinition <T> bsonDocument    = new BsonDocument();
                cancellationToken = new CancellationToken();
                num = await mongoCollection.CountAsync(bsonDocument, null, cancellationToken);

                IFindFluent <T, T> findFluent1 = IMongoCollectionExtensions.Find <T>(this.Collection, new BsonDocument(), null).Skip(new int?((page - 1) * total)).Limit(new int?(total)).Sort(sortBy);
                cancellationToken = new CancellationToken();
                List <T> ts = await IAsyncCursorSourceExtensions.ToListAsync <T>(findFluent1, cancellationToken);

                staticPagedList = new StaticPagedList <T>(ts, page, total, (int)num);
            }
            return(staticPagedList);
        }
        public CustomerEntity Find(string customerName)
        {
            try
            {
                var collection = Connect(DataAccessConstants.DatabaseName)
                                 .GetCollection <CustomerEntity>(CollectionName);
                var customer = IMongoCollectionExtensions
                               .Find <CustomerEntity>(collection, f => f.CustomerName.Equals(customerName)).FirstOrDefault();

                if (customer != null)
                {
                    return(new CustomerEntity()
                    {
                        CustomerId = customer.CustomerId,
                        CustomerName = customer.CustomerName,
                        DateOfBirth = customer.DateOfBirth,
                        Address = customer.Address,
                        PhoneNumber = customer.PhoneNumber,
                        SchemesCards = customer.SchemesCards
                    });
                }
            }
            catch (Exception e)
            {
                throw new KeyNotFoundException($"Customer Name not found: {customerName}");
            }

            throw new KeyNotFoundException($"Customer Name not found: {customerName}");
        }
示例#5
0
        public async Task <T> FindAsync <TKey>(TKey id, string name = "_id")
        {
            FilterDefinition <T> filterDefinition = Builders <T> .Filter.Eq <TKey>(name, id);

            IFindFluent <T, T> findFluent = IMongoCollectionExtensions.Find <T>(this.Collection, filterDefinition, null);

            return(await IFindFluentExtensions.FirstOrDefaultAsync <T, T>(findFluent, new CancellationToken()));
        }
示例#6
0
        public async Task <StaticPagedList <T> > PaginationAsync(int page, int total, SortDefinition <T> sortBy, FilterDefinition <T> query)
        {
            long num = (long)0;
            IMongoCollection <T> collection        = this.Collection;
            FilterDefinition <T> filterDefinition  = query;
            CancellationToken    cancellationToken = new CancellationToken();

            num = await collection.CountAsync(filterDefinition, null, cancellationToken);

            IFindFluent <T, T> findFluent = IMongoCollectionExtensions.Find <T>(this.Collection, query, null).Skip(new int?((page - 1) * total)).Limit(new int?(total)).Sort(sortBy);

            cancellationToken = new CancellationToken();
            List <T> listAsync = await IAsyncCursorSourceExtensions.ToListAsync <T>(findFluent, cancellationToken);

            return(new StaticPagedList <T>(listAsync, page, total, (int)num));
        }
示例#7
0
        public async Task <IEnumerable <T> > AllAsync(FilterDefinition <T> query, SortDefinition <T> sortBy = null)
        {
            IEnumerable <T>    listAsync;
            CancellationToken  cancellationToken;
            IFindFluent <T, T> findFluent = IMongoCollectionExtensions.Find <T>(this.Collection, query, null);

            if (sortBy == null)
            {
                IFindFluent <T, T> findFluent1 = findFluent;
                cancellationToken = new CancellationToken();
                listAsync         = await IAsyncCursorSourceExtensions.ToListAsync <T>(findFluent1, cancellationToken);
            }
            else
            {
                IFindFluent <T, T> findFluent2 = findFluent.Sort(sortBy);
                cancellationToken = new CancellationToken();
                listAsync         = await IAsyncCursorSourceExtensions.ToListAsync <T>(findFluent2, cancellationToken);
            }
            return(listAsync);
        }
示例#8
0
        public async Task <T> FindAsync(Expression <Func <T, bool> > where)
        {
            IFindFluent <T, T> findFluent = IMongoCollectionExtensions.Find <T>(this.Collection, where, null);

            return(await IFindFluentExtensions.FirstOrDefaultAsync <T, T>(findFluent, new CancellationToken()));
        }
示例#9
0
        public async Task <T> FindAsync(FilterDefinition <T> query)
        {
            IFindFluent <T, T> findFluent = IMongoCollectionExtensions.Find <T>(this.Collection, query, null);

            return(await IFindFluentExtensions.FirstOrDefaultAsync <T, T>(findFluent, new CancellationToken()));
        }
示例#10
0
        public async Task <IEnumerable <T> > AllAsync()
        {
            IFindFluent <T, T> findFluent = IMongoCollectionExtensions.Find <T>(this.Collection, new BsonDocument(), null);

            return(await IAsyncCursorSourceExtensions.ToListAsync <T>(findFluent, new CancellationToken()));
        }
示例#11
0
        public JsonResult Login([FromBody] LoginModel login)
        {
            var         aa             = this.HttpContext.Request.Body;
            BaseMessage loginMessage   = new BaseMessage();
            var         userCollection = mongodb.GetMongodbCollection <SessionUsers>("Users");
            //MongoDB.Driver.ExpressionFilterDefinition<Users> mongodbQuery = new MongoDB.Driver.ExpressionFilterDefinition<Users>(entity => entity.UserName == login.loginName && entity.Activity == "1");
            //var userCursor = userCollection.FindSync<Users>(mongodbQuery);
            string guid = Guid.NewGuid().ToString();

            if (userCollection != null)
            {
                var userFluent = IMongoCollectionExtensions.Find <SessionUsers>(userCollection, entity => entity.UserName == login.username && entity.Password == login.password && entity.Activity == "1");
                if (userFluent.Count() > 0)
                {
                    var          user        = userFluent.First();
                    SessionUsers sessionUser = user;
                    sessionUser.ExpireTime = DateTime.Now.AddMinutes(20);
                    sessionUser.SessionId  = guid;
                    SessionHelper.SessionUser.Add(sessionUser);
                    loginMessage.code           = HttpStatus.Success;
                    loginMessage.data           = new ExpandoObject();
                    loginMessage.data.SessionId = guid;
                    loginMessage.data.DspName   = sessionUser.UserDspName;
                    loginMessage.data.ImgUrl    = HttpContext.Request.Host.Value + new PathString("/UpLoadImg").Value + "/" + sessionUser.ImgUrl;

                    loginMessage.msg = "µÇ½³É¹¦£¡";
                }
                else
                {
                    log.Error("ÕË»§»òÃÜÂë´íÎó");
                    loginMessage.msg  = "ÕË»§»òÃÜÂë´íÎó£¡";
                    loginMessage.code = HttpStatus.LoginFailed;
                    ErrorLoginHelper.AddErrorLoginCount(login.username);
                    if (ErrorLoginHelper.GetErrorLoginCount(login.username) >= 10)
                    {
                        log.Info("ײ¿â¹¥»÷" + Common.ErrorLoginHelper.GetUserIp(this.HttpContext));
                    }
                }
            }
            else
            {
                loginMessage.msg = "·þÎñ¶Ë´íÎó£¬ÇëÁªÏµ¹ÜÀíÔ±£¡";
                log.Error("·þÎñ¶Ë´íÎó£¬ÇëÁªÏµ¹ÜÀíÔ±£¡");
                loginMessage.code = HttpStatus.LoginFailed;
            }

            //List<Users> myList = new List<Users>() { new Users() { CreateTime =DateTime.Now,UserId="1",Activity="1"},new Users() { CreateTime=DateTime.Now.AddDays(1),UserId="2",Activity="1",UserType=1} };
            //ParameterExpression parameter1 = Expression.Parameter(typeof(Users), "p");
            //ConstantExpression constant1 = Expression.Constant(DateTime.Now.AddMinutes(30));
            //ConstantExpression constant2 = Expression.Constant(DateTime.Now.AddDays(2));
            //MemberExpression member = Expression.PropertyOrField(parameter1, "CreateTime");
            //var query1 = Expression.GreaterThan(member, constant1);
            //var query2 = Expression.LessThan(Expression.PropertyOrField(parameter1, "CreateTime"), constant2);
            //var query = Expression.And(query1, query2);
            //var lambda1 = Expression.Lambda<Func<Users, Boolean>>(query, parameter1);
            //var list = myList.Where(lambda1.Compile());


            //return Json(guid);
            return(Json(loginMessage));
        }