Ejemplo n.º 1
0
        public static bool Update(string dbName, string collectionName, MongoDB.Driver.IMongoQuery query, MongoDB.Driver.Builders.UpdateBuilder update)
        {
            MongoCollection    collection = GetCollection(dbName, collectionName);
            WriteConcernResult result     = collection.Update(query, update);

            return(result.UpdatedExisting);
        }
Ejemplo n.º 2
0
        private MongoDB.Driver.IMongoQuery GetExpenseMongoQuery(int userId, DateTime expenseDate, string expenseMonth, IList <IExpenseType> expenseTypes = null)
        {
            MongoDB.Driver.IMongoQuery expenseMongoQuery = MongoDB.Driver.Builders.Query <ExpenseMDO> .Where(i => i.UserId == userId); //----> default query by userId



            if (!string.IsNullOrEmpty(expenseMonth))
            {
                expenseMongoQuery = Query.And(expenseMongoQuery, MongoDB.Driver.Builders.Query <ExpenseMDO>
                                              .EQ(i => i.ExpenseDate.Month, 12));
                if (expenseTypes != null && expenseTypes.Any())
                {
                    List <int> expenseTypeIds = expenseTypes.Select(t => t.TypeId).ToList <int>();
                    expenseMongoQuery = Query.And(expenseMongoQuery, MongoDB.Driver.Builders.Query <ExpenseMDO> .Where(x => x.ExpenseType.TypeId.In(expenseTypeIds)));
                }
            }
            else if ((!expenseDate.IsDefault()))
            {
                expenseMongoQuery = Query.And(expenseMongoQuery, MongoDB.Driver.Builders.Query <ExpenseMDO> .Where(i => i.ExpenseDate == expenseDate));
                if (expenseTypes != null && expenseTypes.Any())
                {
                    List <int> expenseTypeIds = expenseTypes.Select(t => t.TypeId).ToList <int>();
                    expenseMongoQuery = Query.And(expenseMongoQuery, MongoDB.Driver.Builders.Query <ExpenseMDO> .Where(x => x.ExpenseType.TypeId.In(expenseTypeIds)));
                }
            }
            else if (expenseTypes != null && expenseTypes.Any())
            {
                List <int> expenseTypeIds = expenseTypes.Select(t => t.TypeId).ToList <int>();
                expenseMongoQuery = Query.And(expenseMongoQuery, MongoDB.Driver.Builders.Query <ExpenseMDO> .Where(x => x.ExpenseType.TypeId.In(expenseTypeIds)));
            }

            return(expenseMongoQuery);
        }
Ejemplo n.º 3
0
        public ActionResult <DeveloperResponse> Update([FromBody] Developer data)
        {
            try
            {
                //check if email is present
                if (string.IsNullOrWhiteSpace(data.Email))
                {
                    return(BadRequest(new { Message = Constants.Provide_Email }));
                }

                //check if email is present
                if (string.IsNullOrWhiteSpace(data.Phone_Number))
                {
                    return(BadRequest(new { Message = Constants.Provide_Phone }));
                }
                data.Email = data.Email.ToLower();
                //Check for email formats
                if (!Checks.IsValidEmail(data.Email))
                {
                    return(BadRequest(new { Message = Constants.Invalid_Email }));
                }
                //check if a guid is included in the data
                if (string.IsNullOrWhiteSpace(data.Guid))
                {
                    return(BadRequest(new { Message = Constants.Provide_Guid }));
                }

                //check if the developer exists on the system via guid.

                if (!Store.CheckTestExistence(e => e.Guid, data.Guid))
                {
                    return(NotFound(new { Message = Constants.Non_Exist }));
                }

                //Update the Contact
                MongoDB.Driver.IMongoQuery query = Query <Developer> .EQ(d => d.Guid, data.Guid);

                MongoDB.Driver.IMongoUpdate replacement = Update <Developer> .Replace(data);

                context.Developer.Update(query, replacement);

                //initialize response data.
                DeveloperResponse response = new DeveloperResponse
                {
                    //prepare response data
                    Status  = true,
                    Message = Constants.Success,

                    //return the newly inserted data from the database.
                    Data = Store.FetchTestOne(d => d.Email, data.Email)
                };
                return(Ok(response));
            }
            catch (Exception ex)
            {
                Log.LogError(ex);
                return(StatusCode(500, ex.ToString()));
            }
        }
Ejemplo n.º 4
0
        private MongoCursor <IncomeMDO> GetIncomeMongoCursor(MongoDB.Driver.IMongoQuery incomeMongoQuery, int currentPage)
        {
            int rowCount      = (currentPage * NumberOfRowsPerPage);
            int skipPageCount = rowCount != 0 ? (rowCount - NumberOfRowsPerPage) : 0;
            MongoCursor <IncomeMDO> incomeMongoCursor = new MongoDBManager().Find <IncomeMDO>("Incomes", incomeMongoQuery);

            incomeMongoCursor.Skip  = skipPageCount;                                        //------> Setting the skip count
            incomeMongoCursor.Limit = NumberOfRowsPerPage;                                  //-----> Setting the take count (Limit)
            incomeMongoCursor.SetSortOrder(SortBy.Descending("IncomeDate", "CreatedDate")); //Setting the sort order before executing

            return(incomeMongoCursor);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Remove all documents of user from income collection.
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public bool RemoveDocumentsByUserId(int userId)
        {
            try
            {
                MongoDB.Driver.IMongoQuery removeByUserIdQuery = MongoDB.Driver.Builders.Query <Income> .EQ(e => e.UserId, userId);

                new MongoDBManager().Remove <IncomeMDO>("Incomes", removeByUserIdQuery);
                return(true);
            }
            catch (WriteConcernException)
            {
                return(false);
            }
        }
Ejemplo n.º 6
0
        public void Update(IExpense expense)
        {
            MongoDB.Driver.IMongoQuery expenseUpdateConditionQuery = Query.And(MongoDB.Driver.Builders.Query <ExpenseMDO> .Where(e => e.UserId == expense.UserId),
                                                                               MongoDB.Driver.Builders.Query <ExpenseMDO> .Where(e => e.ExpenseId == expense.Id));
            var updateStatements = MongoDB.Driver.Builders.Update
                                   .Set("ExpenseType.TypeId", expense.ExpenseType.TypeId)
                                   .Set("ExpenseType.Type", expense.ExpenseType.Type)
                                   .Set("Amount", expense.Amount)
                                   .Set("Description", expense.Description)
                                   .Set("ModifiedBy", expense.UserId)
                                   .Set("ExpenseDate", expense.ExpenseDate)
                                   .Set("Comments", (expense.Comments == null) ? string.Empty : expense.Comments);

            new MongoDBManager().Update <ExpenseMDO>(EXPENSES, expenseUpdateConditionQuery, updateStatements);
        }
Ejemplo n.º 7
0
        public void Update(IIncome income)
        {
            MongoDB.Driver.IMongoQuery incomeUpdateConditionQuery = Query.And(MongoDB.Driver.Builders.Query <IncomeMDO> .Where(e => e.UserId == income.UserId),
                                                                              MongoDB.Driver.Builders.Query <IncomeMDO> .Where(e => e.IncomeId == income.IncomeId));
            var updateStatements = MongoDB.Driver.Builders.Update
                                   .Set("IncomeType.TypeId", income.IncomeType.TypeId)
                                   .Set("IncomeType.Type", income.IncomeType.Type)
                                   .Set("Amount", income.Amount)
                                   .Set("Description", income.Description)
                                   .Set("ModifiedBy", income.UserId)
                                   .Set("IncomeDate", income.IncomeDate)
                                   .Set("Comments", (income.Comments == null) ? string.Empty : income.Comments);

            new MongoDBManager().Update <IncomeMDO>("Incomes", incomeUpdateConditionQuery, updateStatements);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Get all expenses by using MongoQuery
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="currentPage"></param>
        /// <param name="expenseDate"></param>
        /// <param name="expenseTypes"></param>
        /// <returns></returns>
        public IList <IExpense> GetAll(int userId, int currentPage, DateTime expenseDate, string expenseMonth, IList <IExpenseType> expenseTypes = null)
        {
            MongoDB.Driver.IMongoQuery expenseMongoQuery = this.GetExpenseMongoQuery(userId, expenseDate, expenseMonth, expenseTypes);
            int totalExpenseCount = new MongoDBManager().GetCountByQuery <ExpenseMDO>(EXPENSES, expenseMongoQuery); //-----> MongoDb call to get the count.

            if (totalExpenseCount < ((currentPage - 1) * NumberOfRowsPerPage))
            {
                currentPage = 1;
            }
            MongoCursor <ExpenseMDO> expenseMongoCursor = this.GetExpenseMongoCursor(expenseMongoQuery, currentPage);
            List <IExpense>          expenses           = this.MapExpenseMDOCollectionToDomainList(expenseMongoCursor.ToList());//-----> MongoDb Call to get the filtered incomes.

            expenses.ForEach(a => a.TotalCount = totalExpenseCount);

            return(expenses);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Get all incomes by using MongoQuery
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="currentPage"></param>
        /// <param name="incomeDate"></param>
        /// <param name="incomeTypes"></param>
        /// <returns></returns>
        public List <IIncome> GetAllByMongoQuery(int userId, int currentPage, DateTime incomeDate, List <IIncomeType> incomeTypes = null)
        {
            MongoDB.Driver.IMongoQuery incomeMongoQuery = this.GetIncomeMongoQuery(userId, incomeDate, incomeTypes);
            int totalIncomeCount = new MongoDBManager().GetCountByQuery <IncomeMDO>("Incomes", incomeMongoQuery); //-----> MongoDb call to get the count.

            if (totalIncomeCount < ((currentPage - 1) * NumberOfRowsPerPage))
            {
                currentPage = 1;
            }
            MongoCursor <IncomeMDO> incomeMongoCursor = this.GetIncomeMongoCursor(incomeMongoQuery, currentPage);
            List <IIncome>          incomes           = this.MapIncomeMDOCollectionToDomainList(incomeMongoCursor.ToList());//-----> MongoDb Call to get the filtered incomes.

            incomes.ForEach(a => a.TotalCount = totalIncomeCount);


            return(incomes);
        }
Ejemplo n.º 10
0
        private MongoDB.Driver.IMongoQuery GetIncomeMongoQuery(int userId, DateTime incomeDate, List <IIncomeType> incomeTypes = null)
        {
            MongoDB.Driver.IMongoQuery incomeMongoQuery = MongoDB.Driver.Builders.Query <IncomeMDO> .Where(i => i.UserId == userId); //----> default query by userId

            if ((!incomeDate.IsDefault()))
            {
                incomeMongoQuery = Query.And(incomeMongoQuery, MongoDB.Driver.Builders.Query <IncomeMDO> .Where(i => i.IncomeDate == incomeDate));
                if (incomeTypes != null && incomeTypes.Any())
                {
                    List <int> incomeTypeIds = incomeTypes.Select(t => t.TypeId).ToList <int>();
                    incomeMongoQuery = Query.And(incomeMongoQuery, MongoDB.Driver.Builders.Query <IncomeMDO> .Where(x => x.IncomeType.TypeId.In(incomeTypeIds)));
                }
            }
            else if (incomeTypes != null && incomeTypes.Any())
            {
                List <int> incomeTypeIds = incomeTypes.Select(t => t.TypeId).ToList <int>();
                incomeMongoQuery = Query.And(incomeMongoQuery, MongoDB.Driver.Builders.Query <IncomeMDO> .Where(x => x.IncomeType.TypeId.In(incomeTypeIds)));
            }

            return(incomeMongoQuery);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// To get all documents of the specified collection by mongoQuery.
        /// </summary>
        /// <typeparam name="T">The type of the collection.</typeparam>
        /// <param name="collectionName">The name of the collection. </param>
        /// <param name="query">The mongo query to execute.</param>
        /// <returns>Mongo Cursor </returns>
        public MongoCursor <T> Find <T>(string collectionName, MongoDB.Driver.IMongoQuery query)
        {
            MongoCollection collection = this.GetMongoDBCollection <T>(collectionName);

            return(collection.FindAs <T>(query));
        }
Ejemplo n.º 12
0
        /// <summary>
        /// To get the count of documents.
        /// </summary>
        /// <typeparam name="T">The type of the collection.</typeparam>
        /// <param name="collectionName">The collection name.</param>
        /// <param name="query">The MongoQuery to get the count.</param>
        /// <returns>count as integer value.</returns>
        public int GetCountByQuery <T>(string collectionName, MongoDB.Driver.IMongoQuery query)
        {
            MongoCollection collection = this.GetMongoDBCollection <T>(collectionName);

            return(int.Parse(collection.Count(query).ToString()));
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="collectionName">集合名称</param>
        /// <param name="query">查询条件条件查询,调用示例:Query.Matches("Title", "感冒") 或者 Query.EQ("Title", "感冒") 或者Query.And(Query.Matches("Title", "感冒"),Query.EQ("Author", "yanc")) 等等</param>
        /// <param name="update">更新字段,调用示例:Update.Set("Title", "yanc") 或者 Update.Set("Title", "yanc").Set("Author", "yanc2") 等等</param>
        public static bool Update(string collectionName, MongoDB.Driver.IMongoQuery query, MongoDB.Driver.IMongoUpdate update)
        {
            var result = MongoDbHepler.Update(nosqlConnectionString, nosqlDbName, collectionName, query, update);

            return(result.Ok);
        }
Ejemplo n.º 14
0
 /// <summary>
 /// 根据查询条件获取一条数据
 /// </summary>
 /// <typeparam name="T">数据类型</typeparam>
 /// <param name="collectionName">集合名称</param>
 /// <param name="query">查询条件,调用示例:Query.Matches("Title", "感冒") 或者 Query.EQ("Title", "感冒") 或者Query.And(Query.Matches("Title", "感冒"),Query.EQ("Author", "yanc"))</param>
 /// <returns>数据对象</returns>
 public static T GetOneByCondition <T>(string collectionName, MongoDB.Driver.IMongoQuery query) where T : IEntity <string>
 {
     return(MongoDbHepler.GetOneByCondition <T>(nosqlConnectionString, nosqlDbName, collectionName, query));
 }
Ejemplo n.º 15
0
        public void RemoveDocumentByExpenseId(int expenseId)
        {
            MongoDB.Driver.IMongoQuery removeByExpenseIdQuery = MongoDB.Driver.Builders.Query <ExpenseMDO> .EQ(e => e.ExpenseId, expenseId);

            new MongoDBManager().Remove <ExpenseMDO>(EXPENSES, removeByExpenseIdQuery);
        }
Ejemplo n.º 16
0
        public FindAndModifyResult Update <T>(string collectionName, MongoDB.Driver.IMongoQuery query, IMongoUpdate updateStatements)
        {
            MongoCollection collection = this.GetMongoDBCollection <T>(collectionName);

            return(collection.FindAndModify(query, MongoDB.Driver.Builders.SortBy.Null, updateStatements));
        }
Ejemplo n.º 17
0
        private IMongoQuery CreateQueryById(string id)
        {
            MongoDB.Driver.IMongoQuery query = Query.EQ("_id", ObjectId.Parse(id));

            return(query);
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Remove a document from the specified collection.
        /// </summary>
        /// <typeparam name="T">The type of the collection.</typeparam>
        /// <param name="collectionName">The collection name.</param>
        /// <param name="query">MongoQuery to remove the document.</param>
        /// <returns>WriteConcernResult whether Remove failed or not.</returns>
        public WriteConcernResult Remove <T>(string collectionName, MongoDB.Driver.IMongoQuery query)
        {
            MongoCollection collection = this.GetMongoDBCollection <T>(collectionName);

            return(collection.Remove(query));
        }
Ejemplo n.º 19
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="incomeId"></param>
        public void RemoveDocumentByIncomeId(int incomeId)
        {
            MongoDB.Driver.IMongoQuery removeByIncomeIdQuery = MongoDB.Driver.Builders.Query <IncomeMDO> .EQ(e => e.IncomeId, incomeId);

            new MongoDBManager().Remove <IncomeMDO>("Incomes", removeByIncomeIdQuery);
        }