コード例 #1
0
ファイル: DataAccessApp.cs プロジェクト: sevenTiny/Chameleon
        public Result <List <Dictionary <string, CloudData> > > GetList(InterfaceSetting interfaceSetting, FilterDefinition <BsonDocument> filter, int pageIndex = 0)
        {
            //自定义查询列表
            var interfaceFields = _interfaceFieldsRepository.GetInterfaceFieldMetaFieldUpperKeyDicByInterfaceFieldsId(interfaceSetting.InterfaceFieldsId);

            //处理查询列
            var projection = Builders <BsonDocument> .Projection.Include("_id");

            foreach (var item in interfaceFields.Values)
            {
                projection = projection.Include(item.MetaFieldShortCode);
            }

            int skipSize = (pageIndex - 1) > 0 ? ((pageIndex - 1) * interfaceSetting.PageSize) : 0;

            var datas = TranslatorBsonToCloudData(_chameleonDataDbContext.GetCollectionBson(interfaceSetting.MetaObjectCode).Find(filter).Skip(skipSize).Limit(interfaceSetting.PageSize).Sort(StructureSortDefinition(interfaceSetting.InterfaceSortId)).Project(projection).ToList() ?? new List <BsonDocument>(0), interfaceFields);

            var result = Result <List <Dictionary <string, CloudData> > > .Success($"查询成功,共{datas.Count}条记录", datas);

            result.MoreMessage = new List <string> {
                datas.Count.ToString()
            };

            return(result);
        }
コード例 #2
0
 public override IReportSettingUserControl[] GetReportSettingControls()
 {
     IReportSettingUserControl[] settingUserControls = new IReportSettingUserControl[2];
     settingUserControls[0] = new BaseInfoSetting();
     settingUserControls[1] = new InterfaceSetting();
     return(settingUserControls);
 }
コード例 #3
0
ファイル: DataAccessApp.cs プロジェクト: sevenTiny/Chameleon
        public Result BatchUpdate(InterfaceSetting interfaceSetting, FilterDefinition <BsonDocument> filter, BsonDocument bsonDocument)
        {
            if (interfaceSetting == null)
            {
                return(Result.Error("接口设置参数不能为空"));
            }

            if (bsonDocument == null)
            {
                return(Result.Error("数据为空,更新终止"));
            }

            //获取全部接口校验
            var verificationDic = _interfaceVerificationRepository.GetMetaFieldUpperKeyDicByInterfaceVerificationId(interfaceSetting.InterfaceVerificationId);

            //获取到字段列表以编码为Key大写的字典
            var metaFields = _metaFieldRepository.GetMetaFieldShortCodeUpperDicByMetaObjectId(interfaceSetting.MetaObjectId);

            BsonDocument bsonElementsToModify = new BsonDocument();

            foreach (var bsonElement in bsonDocument)
            {
                string upperKey = bsonElement.Name.ToUpperInvariant();

                if (!metaFields.ContainsKey(upperKey))
                {
                    continue;
                }

                //校验值是否符合接口校验设置
                if (verificationDic.ContainsKey(upperKey))
                {
                    var verification = verificationDic[upperKey];

                    if (!_interfaceVerificationService.IsMatch(verification, Convert.ToString(bsonElement.Value)))
                    {
                        return(Result.Error(!string.IsNullOrEmpty(verification.VerificationTips) ? verification.VerificationTips : $"字段[{bsonElement.Name}]传递的值[{bsonElement.Value}]格式不正确"));
                    }
                }

                //检查字段的值是否符合字段类型
                var checkResult = _metaFieldService.CheckAndGetFieldValueByFieldType(metaFields[upperKey], bsonElement.Value);

                if (checkResult.IsSuccess)
                {
                    bsonElementsToModify.Add(new BsonElement(metaFields[upperKey].ShortCode, BsonValue.Create(checkResult.Data)));
                }
                else
                {
                    return(Result.Error($"字段[{bsonElement.Name}]传递的值[{bsonElement.Value}]不符合字段定义的类型"));
                }
            }

            //设置更新并执行更新操作
            var updateDefinitions = bsonElementsToModify.Select(item => Builders <BsonDocument> .Update.Set(item.Name, item.Value)).ToArray();

            _chameleonDataDbContext.GetCollectionBson(interfaceSetting.MetaObjectCode).UpdateMany(filter, Builders <BsonDocument> .Update.Combine(updateDefinitions));

            return(Result.Success($"修改成功"));
        }
コード例 #4
0
        public IActionResult AddLogic(InterfaceSetting entity)
        {
            var result = Result.Success()
                         .ContinueEnsureArgumentNotNullOrEmpty(entity, nameof(entity))
                         .ContinueEnsureArgumentNotNullOrEmpty(entity.Name, nameof(entity.Name))
                         .ContinueEnsureArgumentNotNullOrEmpty(entity.Code, nameof(entity.Code))
                         .ContinueAssert(_ => entity.Code.IsAlnum(2, 50), "编码不合法,2-50位且只能包含字母和数字(字母开头)")
                         .ContinueAssert(_ => entity.PageSize > 0, "分页页大小不能<=0")
                         .Continue(_ =>
            {
                entity.CloudApplicationtId  = CurrentApplicationId;
                entity.CloudApplicationCode = CurrentApplicationCode;
                entity.MetaObjectId         = CurrentMetaObjectId;
                entity.MetaObjectCode       = CurrentMetaObjectCode;
                entity.CreateBy             = CurrentUserId;
                entity.Code     = string.Concat(CurrentMetaObjectCode, ".", entity.Code);
                entity.PageSize = entity.PageSize;    //暂时写死每页300条

                return(_InterfaceSettingService.Add(entity));
            });

            if (!result.IsSuccess)
            {
                return(View("Add", result.ToResponseModel(data: entity)));
            }

            return(Redirect($"/InterfaceSetting/List?metaObjectId={CurrentMetaObjectId}&metaObjectCode={CurrentMetaObjectCode}"));
        }
コード例 #5
0
        public IActionResult UpdateLogic(InterfaceSetting entity)
        {
            var result = Result.Success()
                         .ContinueEnsureArgumentNotNullOrEmpty(entity, nameof(entity))
                         .ContinueEnsureArgumentNotNullOrEmpty(entity.Name, nameof(entity.Name))
                         .ContinueAssert(_ => entity.Id != Guid.Empty, "Id Can Not Be Null")
                         .Continue(_ =>
            {
                entity.ModifyBy = CurrentUserId;
                return(_InterfaceSettingService.UpdateWithOutCode(entity, item =>
                {
                    item.InterfaceType = entity.InterfaceType;
                    item.InterfaceConditionId = entity.InterfaceConditionId;
                    item.InterfaceVerificationId = entity.InterfaceVerificationId;
                    item.InterfaceFieldsId = entity.InterfaceFieldsId;
                    item.PageSize = entity.PageSize;
                }));
            });

            if (!result.IsSuccess)
            {
                return(View("Update", result.ToResponseModel(entity)));
            }

            return(Redirect($"/InterfaceSetting/List?metaObjectId={CurrentMetaObjectId}&metaObjectCode={CurrentMetaObjectCode}"));
        }
コード例 #6
0
ファイル: DataAccessApp.cs プロジェクト: sevenTiny/Chameleon
        public object GetDynamicScriptDataSourceResult(InterfaceSetting interfaceSetting, Dictionary <string, string> argumentsUpperKeyDic)
        {
            var script = _triggerScriptRepository.GetById(interfaceSetting.DataSousrceId);

            var result = _triggerScriptService.ExecuteTriggerScript <object>(script, new object[] { argumentsUpperKeyDic });

            return(result.IsSuccess ? result.Data : throw new InvalidOperationException(result.Message));
        }
 public override IReportSettingUserControl[] GetReportSettingControls()
 {
     IReportSettingUserControl[] settingUserControls = new IReportSettingUserControl[5];
     settingUserControls[0] = new BaseInfoSetting();
     settingUserControls[1] = new ConditionSetting();
     settingUserControls[2] = new TreeSetting();
     settingUserControls[3] = new DetailReportSetting();
     settingUserControls[4] = new InterfaceSetting();
     return(settingUserControls);
 }
コード例 #8
0
ファイル: DataAccessApp.cs プロジェクト: sevenTiny/Chameleon
        public Result <Dictionary <string, CloudData> > Get(InterfaceSetting interfaceSetting, FilterDefinition <BsonDocument> filter)
        {
            var listResult = GetList(interfaceSetting, filter, 0);

            if (listResult.IsSuccess)
            {
                return(Result <Dictionary <string, CloudData> > .Success("查询成功", listResult.Data.FirstOrDefault()));
            }

            return(Result <Dictionary <string, CloudData> > .Error(listResult.Message));
        }
コード例 #9
0
        public Setting(string settingFile)
        {
            _settingFile = settingFile;

            Project   = new ProjectSetting();
            General   = new GeneralSetting();
            Interface = new InterfaceSetting();
            Theme     = new ThemeSetting();
            Script    = new ScriptSetting();
            Log       = new LogSetting();

            ReadFromFile();
        }
コード例 #10
0
ファイル: DataAccessApp.cs プロジェクト: sevenTiny/Chameleon
        public object GetJsonDataSourceResult(InterfaceSetting interfaceSetting)
        {
            var entity = _triggerScriptRepository.GetById(interfaceSetting.DataSousrceId);

            try
            {
                return(JObject.Parse(entity.Script));
            }
            catch
            {
                try
                {
                    return(JArray.Parse(entity.Script));
                }
                catch (Exception ex)
                {
                    return(string.Empty);
                }
            }
        }
コード例 #11
0
ファイル: DataAccessApp.cs プロジェクト: sevenTiny/Chameleon
 public Result <int> GetCount(InterfaceSetting interfaceSetting, FilterDefinition <BsonDocument> filter)
 {
     return(Result <int> .Success("查询成功", Convert.ToInt32(_chameleonDataDbContext.GetCollectionBson(interfaceSetting.MetaObjectCode).CountDocuments(filter))));
 }
コード例 #12
0
ファイル: DataAccessApp.cs プロジェクト: sevenTiny/Chameleon
        public Result Delete(InterfaceSetting interfaceSetting, FilterDefinition <BsonDocument> filter)
        {
            _chameleonDataDbContext.GetCollectionBson(interfaceSetting.MetaObjectCode).DeleteMany(filter);

            return(Result.Success($"删除成功"));
        }
コード例 #13
0
ファイル: DataAccessApp.cs プロジェクト: sevenTiny/Chameleon
        public Result BatchAdd(InterfaceSetting interfaceSetting, IEnumerable <BsonDocument> bsonsList)
        {
            if (interfaceSetting == null)
            {
                return(Result.Error("接口设置参数不能为空"));
            }

            if (bsonsList == null || !bsonsList.Any())
            {
                return(Result.Success($"没有任何数据需要插入"));
            }

            //获取全部接口校验
            var verificationDic = _interfaceVerificationRepository.GetMetaFieldUpperKeyDicByInterfaceVerificationId(interfaceSetting.InterfaceVerificationId);

            //获取到字段列表以编码为Key大写的字典
            var metaFields = _metaFieldRepository.GetMetaFieldShortCodeUpperDicByMetaObjectId(interfaceSetting.MetaObjectId);

            List <BsonDocument> insertBsonsList = new List <BsonDocument>(bsonsList.Count());

            foreach (var bsonDocument in bsonsList)
            {
                if (bsonDocument == null)
                {
                    return(Result.Error("数据为空,插入终止"));
                }

                BsonDocument bsonElementsToAdd = new BsonDocument();

                foreach (var bsonElement in bsonDocument)
                {
                    string upperKey = bsonElement.Name.ToUpperInvariant();

                    if (!metaFields.ContainsKey(upperKey))
                    {
                        continue;
                    }

                    //校验值是否符合接口校验设置
                    if (verificationDic.ContainsKey(upperKey))
                    {
                        var verification = verificationDic[upperKey];
                        if (!_interfaceVerificationService.IsMatch(verification, Convert.ToString(bsonElement.Value)))
                        {
                            return(Result.Error(!string.IsNullOrEmpty(verification.VerificationTips) ? verification.VerificationTips : $"字段[{bsonElement.Name}]传递的值[{bsonElement.Value}]格式不正确"));
                        }
                    }

                    //检查字段的值是否符合字段类型
                    var checkResult = _metaFieldService.CheckAndGetFieldValueByFieldType(metaFields[upperKey], bsonElement.Value);

                    if (checkResult.IsSuccess)
                    {
                        bsonElementsToAdd.Add(new BsonElement(metaFields[upperKey].ShortCode, BsonValue.Create(checkResult.Data)));
                    }
                    else
                    {
                        return(Result.Error($"字段[{bsonElement.Name}]传递的值[{bsonElement.Value}]不符合字段定义的类型"));
                    }
                }

                //获取系统内置的bson元素
                var systemBsonDocument = _metaFieldService.GetSystemFieldBsonDocument();

                //设置系统字段及其默认值
                foreach (var presetBsonElement in systemBsonDocument)
                {
                    //如果传入的字段已经有了,那么这里就不预置了
                    if (!bsonElementsToAdd.Contains(presetBsonElement.Name))
                    {
                        bsonElementsToAdd.Add(presetBsonElement);
                    }
                }

                //补充字段
                bsonElementsToAdd.SetElement(new BsonElement("MetaObject", interfaceSetting.MetaObjectCode));

                if (bsonElementsToAdd.Any())
                {
                    insertBsonsList.Add(bsonElementsToAdd);
                }
            }

            if (insertBsonsList.Any())
            {
                _chameleonDataDbContext.GetCollectionBson(interfaceSetting.MetaObjectCode).InsertMany(insertBsonsList);
            }

            return(Result.Success($"插入成功! 成功{insertBsonsList.Count}条,失败{bsonsList.Count() - insertBsonsList.Count}条."));
        }
コード例 #14
0
ファイル: OrderRepostory.cs プロジェクト: philwang1990/Src
        public OrderModel setOrderModel(DataModel data)
        {
            OrderModel book = new OrderModel();

            book.productOid        = data.productOid;
            book.packageOid        = data.packageOid;
            book.memberUuid        = data.memberUuid;
            book.contactFirstname  = data.contactFirstname; // "昶宇";
            book.contactLastname   = data.contactLastname;  // "林";
            book.contactEmail      = data.contactEmail;     //"*****@*****.**";
            book.telCountryCd      = data.telCountryCd;     // "886";
            book.contactTel        = data.contactTel;       // "934233332";
            book.contactCountryCd  = data.contactCountryCd; // "TW";
            book.lstGoDt           = data.lstGoDt;          // "20180906";
            book.eventOid          = data.eventOid;
            book.eventBackupData   = data.eventBackupData == null ?"" : data.eventBackupData.Replace("-", "");
            book.price1Qty         = data.price1Qty;         //;
            book.price2Qty         = data.price2Qty;
            book.price3Qty         = data.price3Qty;         // 0;
            book.price4Qty         = data.price4Qty;
            book.payMethod         = data.payMethod;         // "ONLINE_CITI";
            book.deviceId          = data.deviceId;          // "6ed75d896bbef9575563bfe33ab21e07";
            book.tokenKey          = data.tokenKey;          // "6f0748b65c09999b8818abfb3cf1846a";//"46da9fc1c7a765d20957c431d498c88f";
            book.crtDevice         = data.crtDevice;         // "Macintosh";
            book.crtBrowser        = data.crtBrowser;        // "Chrome";
            book.crtBrowserVersion = data.crtBrowserVersion; //"68.0.3440.106";
            //book.couponUuid = data.couponUuid;
            //book.priceCoupon = data.priceCoupon;
            book.adCampaign   = data.adCampaign;
            book.sourceCode   = data.sourceCode;   //"WEB";
            book.sourceParam1 = data.sourceParam1; // "4026";
            //book.sourceParam2 = "";
            //book.sourceParam3 = "";
            book.guideLang          = data.guideLang;                 // "zh-tw";
            book.note               = data.note;                      // "this is order note";
            book.hasRank            = data.hasRank;                   // "Y";
            book.multipricePlatform = data.multipricePlatform;        // "01";
            book.currency           = data.currency;                  //"TWD";
            book.currPriceTotal     = data.currPriceTotal.ToString(); // "500";

            //book.card = new cardInfo() { cardNo = "" }; //不確定有沒有..
            //book.asiaMileMemberNo = "";//不確定有沒有..
            //book.asiaMileMemberFirstName = "";//不確定有沒有..
            //book.asiaMileMemberLastName = "";//不確定有沒有..

            book.orderCusList = data.travelerData;

            List <modules> ListM = new List <modules>();


            // BookingRepostory_3 dd = new BookingRepostory_3();
            ListM.Add(this.getFlightInfo2(data));
            ListM.Add(this.getShuttleInfo2(data));
            ListM.Add(this.getRendCar2(data));
            ListM.Add(this.getPsgData2(data));
            ListM.Add(this.getSendData2(data));
            ListM.Add(this.getOtherData2(data));
            ListM.Add(this.getContactData2(data));

            book.modules = ListM;

            book.productUrlOid = data.productUrlOid;                   // 17379;
            book.productName   = data.productName;                     // "浪漫水金九";
            //string[] c = new string[1]; c[0] = "A01-001-00001";
            book.productCity = data.productCity;                       // c;
            //string[] c2 = new string[1]; c2[0] = "A01-001";
            book.productCountry      = data.productCountry;            // c2;
            book.productMainCat      = data.productMainCat;            // "M07";
            book.productOrderHandler = data.productOrderHandler;       // "KKDAY";
            book.payPmchOid          = data.payPmchOid;                // "1";
            book.couponFailureCode   = data.couponFailureCode;         // null;
            //string[] c3 = new string[1];
            book.allowedCardNumberArray = data.allowedCardNumberArray; // c3;
            book.alsoUpdateMember       = data.alsoUpdateMember;       // true;
            book.riskStatus             = data.riskStatus;             // "03";

            Pmch pmchObj = new Pmch();

            pmchObj.pmchOid              = "1";
            pmchObj.pmchCode             = "CITI_CREDITCARD";
            pmchObj.pmchPayURL           = "citi/payment/auth";
            pmchObj.is3D                 = "0";
            pmchObj.acctdocReceiveMethod = "ONLINE_CITI";

            InterfaceSetting interSetting = new InterfaceSetting();

            interSetting.isNeedCardInput = "true";

            List <LogoList> loglList = new List <LogoList>();
            LogoList        logo     = new LogoList();

            logo.logoName = "JCB";
            logo.logoUrl  = "JCB_URL";
            loglList.Add(logo);

            logo          = new LogoList();
            logo.logoName = "MASTER";
            logo.logoUrl  = "MASTER_URL";
            loglList.Add(logo);

            logo          = new LogoList();
            logo.logoName = "VISA";
            logo.logoUrl  = "VISA_URL";
            loglList.Add(logo);

            interSetting.logoList = loglList;

            List <string> acceptedCardTypeListStr = new List <string>();

            acceptedCardTypeListStr.Add("MASTERCARD");
            acceptedCardTypeListStr.Add("JCB");
            acceptedCardTypeListStr.Add("VISA");
            interSetting.acceptedCardTypeList = acceptedCardTypeListStr;

            interSetting.acceptedCurrency = "TWD";

            List <string> otherInfoList = new List <string>();

            otherInfoList.Add("01");

            interSetting.otherInfoList = otherInfoList;

            pmchObj.interfaceSetting = interSetting;
            pmchObj.title            = "信用卡付款";
            pmchObj.bg_class         = null;
            List <string> card_classList = new List <string>();

            card_classList.Add("jcb_logo");
            card_classList.Add("master_logo");
            card_classList.Add("visa_logo");

            pmchObj.card_class_list = card_classList;

            book.pmch = pmchObj;
            return(book);
        }