Example #1
0
        public JsonResult Save(MaterialSaveModel model)
        {
            var objectId = ObjectId.GenerateNewId();

            if (!string.IsNullOrEmpty(model.ID) && !ObjectId.TryParse(model.ID, out objectId))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "ID is not allowed."
                }));
            }

            if (string.IsNullOrEmpty(model.Name))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Name is not allowed to be empty."
                }));
            }

            // 查询
            var mongo  = new MongoHelper();
            var filter = Builders <BsonDocument> .Filter.Eq("ID", objectId);

            var doc = mongo.FindOne(Constant.MaterialCollectionName, filter);

            var now = DateTime.Now;

            if (doc == null) // 新建
            {
                var pinyin = PinYinHelper.GetTotalPinYin(model.Name);

                doc = new BsonDocument
                {
                    ["ID"]           = objectId,
                    ["Name"]         = model.Name,
                    ["CategoryID"]   = 0,
                    ["CategoryName"] = "",
                    ["TotalPinYin"]  = string.Join("", pinyin.TotalPinYin),
                    ["FirstPinYin"]  = string.Join("", pinyin.FirstPinYin),
                    ["Version"]      = 0,
                    ["CreateTime"]   = BsonDateTime.Create(now),
                    ["UpdateTime"]   = BsonDateTime.Create(now),
                    ["Data"]         = BsonDocument.Parse(model.Data),
                    ["Thumbnail"]    = model.Thumbnail
                };

                if (ConfigHelper.EnableAuthority)
                {
                    var user = UserHelper.GetCurrentUser();

                    if (user != null)
                    {
                        doc["UserID"] = user.ID;
                    }
                }

                mongo.InsertOne(Constant.MaterialCollectionName, doc);
            }
            else // 更新
            {
                var update1 = Builders <BsonDocument> .Update.Set("UpdateTime", BsonDateTime.Create(now));

                var update2 = Builders <BsonDocument> .Update.Set("Data", BsonDocument.Parse(model.Data));

                var update = Builders <BsonDocument> .Update.Combine(update1, update2);

                mongo.UpdateOne(Constant.MaterialCollectionName, filter, update);
            }

            return(Json(new
            {
                Code = 200,
                Msg = "Saved successfully!",
                ID = objectId
            }));
        }
Example #2
0
        public JsonResult Save(MaterialSaveModel model)
        {
            var objectId = ObjectId.GenerateNewId();

            if (!string.IsNullOrEmpty(model.ID) && !ObjectId.TryParse(model.ID, out objectId))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "ID不合法。"
                }));
            }

            if (string.IsNullOrEmpty(model.Name))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "名称不允许为空。"
                }));
            }

            // 查询
            var mongo  = new MongoHelper();
            var filter = Builders <BsonDocument> .Filter.Eq("ID", objectId);

            var doc = mongo.FindOne(Constant.MaterialCollectionName, filter);

            var now = DateTime.Now;

            if (doc == null) // 新建
            {
                var pinyin = PinYinHelper.GetTotalPinYin(model.Name);

                doc                 = new BsonDocument();
                doc["ID"]           = objectId;
                doc["Name"]         = model.Name;
                doc["CategoryID"]   = 0;
                doc["CategoryName"] = "";
                doc["TotalPinYin"]  = string.Join("", pinyin.TotalPinYin);
                doc["FirstPinYin"]  = string.Join("", pinyin.FirstPinYin);
                doc["Version"]      = 0;
                doc["CreateTime"]   = BsonDateTime.Create(now);
                doc["UpdateTime"]   = BsonDateTime.Create(now);
                doc["Data"]         = BsonDocument.Parse(model.Data);
                doc["Thumbnail"]    = "";
                mongo.InsertOne(Constant.MaterialCollectionName, doc);
            }
            else // 更新
            {
                var update1 = Builders <BsonDocument> .Update.Set("UpdateTime", BsonDateTime.Create(now));

                var update2 = Builders <BsonDocument> .Update.Set("Data", BsonDocument.Parse(model.Data));

                var update = Builders <BsonDocument> .Update.Combine(update1, update2);

                mongo.UpdateOne(Constant.MaterialCollectionName, filter, update);
            }

            return(Json(new
            {
                Code = 200,
                Msg = "保存成功!",
                ID = objectId
            }));
        }