Exemple #1
0
 public DataSource(string name, DataSourceTypes sourceType, DbHelpClassTypes dbHelpType, string connectionString)
 {
     _Name             = name;
     _SourceType       = sourceType;
     _DbHelpType       = dbHelpType;
     _ConnectionString = connectionString;
     _Attributes       = new StringCollection();
 }
        public static T_ErrorDesc GetErrorLog(DataBaseResultSet DBSet, DataSourceTypes DST, string sXmlData)
        {
            T_ErrorDesc objData = new T_ErrorDesc();

            objData.CategoryId      = 0;
            objData.ClientIPAddress = string.Empty;
            objData.EmpNo           = string.Empty;
            objData.ErrorData       = sXmlData;
            objData.ErrorDate       = DateTime.Now;
            objData.ErrorId         = DBSet.ErrorCode;
            objData.ErrorLineNo     = 0;
            objData.ErrorMsg        = DBSet.ErrorMessage;
            objData.ErrorType       = "Database Error";
            objData.EventCode       = 0;
            objData.MethodCode      = (int)DST;
            objData.MethodName      = DST.ToString();
            objData.MethodTrace     = string.Empty;
            objData.PageCode        = 0;
            objData.PageName        = string.Empty;

            return(objData);
        }
Exemple #3
0
 public CustomChooseDataSourceTypePageView(DataSourceTypes dataSourceTypes) : base(dataSourceTypes)
 {
 }
Exemple #4
0
        public DataBaseResultSet Save <T>(DataSourceTypes DataSourceTypes, T objFilter) where T : class, IModel, new()
        {
            DataBaseResultSet nResult = new DataBaseResultSet();

            switch (DataSourceTypes)
            {
            case Common.DataSourceTypes.T_ErrorDescSave:
                nResult = objDAL.SaveT_ErrorDesc(objFilter);
                break;

            case Common.DataSourceTypes.T_MstAccountSave:
                nResult = objDAL.SaveT_MstAccount(objFilter);
                break;

            case Common.DataSourceTypes.T_MstAccountMasterSave:
                nResult = objDAL.SaveT_MstAccountMaster(objFilter);
                break;

            case Common.DataSourceTypes.T_MstBrokerSave:
                nResult = objDAL.SaveT_MstBroker(objFilter);
                break;

            case Common.DataSourceTypes.T_MstCheckerSave:
                nResult = objDAL.SaveT_MstChecker(objFilter);
                break;

            case Common.DataSourceTypes.T_MstCompanySave:
                nResult = objDAL.SaveT_MstCompany(objFilter);
                break;

            case Common.DataSourceTypes.T_MstFinancialYearSave:
                nResult = objDAL.SaveT_MstFinancialYear(objFilter);
                break;

            case Common.DataSourceTypes.T_MstGroupSave:
                nResult = objDAL.SaveT_MstGroup(objFilter);
                break;

            case Common.DataSourceTypes.T_MstQualitySave:
                nResult = objDAL.SaveT_MstQuality(objFilter);
                break;

            case Common.DataSourceTypes.T_MstRoleSave:
                nResult = objDAL.SaveT_MstRole(objFilter);
                break;

            case Common.DataSourceTypes.T_MstTransportSave:
                nResult = objDAL.SaveT_MstTransport(objFilter);
                break;

            case Common.DataSourceTypes.T_MstWeaverSave:
                nResult = objDAL.SaveT_MstWeaver(objFilter);
                break;

            case Common.DataSourceTypes.T_TranCashSave:
                nResult = objDAL.SaveT_TranCash(objFilter);
                break;

            case Common.DataSourceTypes.T_TranJournalSave:
                nResult = objDAL.SaveT_TranJournal(objFilter);
                break;

            case Common.DataSourceTypes.T_TranPurchaseOrderSave:
                nResult = objDAL.SaveT_TranPurchaseOrder(objFilter);
                break;

            case Common.DataSourceTypes.T_TranSalesBillSave:
                nResult = objDAL.SaveT_TranSalesBill(objFilter);
                break;

            case Common.DataSourceTypes.T_TranSalesOrderSave:
                nResult = objDAL.SaveT_TranSalesOrder(objFilter);
                break;
            }

            if (nResult.ErrorCode != 0)
            {
                checkAndWriteDatabaseException <T>(objFilter, nResult, DataSourceTypes);
            }

            return(nResult);
        }
Exemple #5
0
 private void checkAndWriteDatabaseException <T>(T objData, DataBaseResultSet DBSet, DataSourceTypes DST) where T : class, IModel, new()
 {
     T_ErrorDesc       objErrorData   = WriteServiceErrorLog.GetErrorLog(DBSet, DST, objData.GetXmlString());
     string            sMsg           = string.Empty;
     DataBaseResultSet DBSetSaveError = objDAL.SaveT_ErrorDesc(objData);
 }
Exemple #6
0
        public List <T> GetList <T>(DataSourceTypes DataSourceTypes, T objFilter) where T : class, IModel, new()
        {
            List <T> list = new List <T>();

            switch (DataSourceTypes)
            {
            case Common.DataSourceTypes.T_ErrorDescList:
                objDAL.GetListT_ErrorDesc(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstAccountList:
                objDAL.GetListT_MstAccount(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstAccountMasterList:
                objDAL.GetListT_MstAccountMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstBrokerList:
                objDAL.GetListT_MstBroker(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstCheckerList:
                objDAL.GetListT_MstChecker(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstCompanyList:
                objDAL.GetListT_MstCompany(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstCompanyDropdownList:
                objDAL.GetListT_MstCompanyForDropDown(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstFinancialYearList:
                objDAL.GetListT_MstFinancialYear(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstGroupList:
                objDAL.GetListT_MstGroup(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstQualityList:
                objDAL.GetListT_MstQuality(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstRoleList:
                objDAL.GetListT_MstRole(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstTransportList:
                objDAL.GetListT_MstTransport(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_MstWeaverList:
                objDAL.GetListT_MstWeaver(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_TranCashList:
                objDAL.GetListT_TranCash(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_TranJournalList:
                objDAL.GetListT_TranJournal(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_TranPurchaseOrderList:
                objDAL.GetListT_TranPurchaseOrder(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_TranSalesBillList:
                objDAL.GetListT_TranSalesBill(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_TranSalesOrderList:
                objDAL.GetListT_TranSalesOrder(objFilter, ref list);
                break;

            case Common.DataSourceTypes.T_PrimKeyValuesList:
                objDAL.GetListT_PrimKeyValues(objFilter, ref list);
                break;
            }
            return(list);
        }
        public DataBaseResultSet Save <T>(DataSourceTypes DataSourceTypes, T objFilter) where T : class, IModel, new()
        {
            DataBaseResultSet nResult = new DataBaseResultSet();

            switch (DataSourceTypes)
            {
            case Common.DataSourceTypes.SalesDetailSave:
                nResult = objDAL.SaveSalesDetail(objFilter);
                break;

            case Common.DataSourceTypes.AreaMasterSave:
                nResult = objDAL.SaveAreaMaster(objFilter);
                break;

            case Common.DataSourceTypes.oVatDetailSave:
                nResult = objDAL.SaveoVatDetail(objFilter);
                break;

            case Common.DataSourceTypes.AutoSetupSave:
                nResult = objDAL.SaveAutoSetup(objFilter);
                break;

            case Common.DataSourceTypes.CustomerMasterSave:
                nResult = objDAL.SaveCustomerMaster(objFilter);
                break;

            case Common.DataSourceTypes.ErrorDescSave:
                nResult = objDAL.SaveErrorDesc(objFilter);
                break;

            case Common.DataSourceTypes.DoctorMasterSave:
                nResult = objDAL.SaveDoctorMaster(objFilter);
                break;

            case Common.DataSourceTypes.FirmMasterSave:
                nResult = objDAL.SaveFirmMaster(objFilter);
                break;

            case Common.DataSourceTypes.DiseaseDetailSave:
                nResult = objDAL.SaveDiseaseDetail(objFilter);
                break;

            case Common.DataSourceTypes.AdjDetailSave:
                nResult = objDAL.SaveAdjDetail(objFilter);
                break;

            case Common.DataSourceTypes.ShiftMasterSave:
                nResult = objDAL.SaveShiftMaster(objFilter);
                break;

            case Common.DataSourceTypes.DiseaseMasterSave:
                nResult = objDAL.SaveDiseaseMaster(objFilter);
                break;

            case Common.DataSourceTypes.CrDrDetailSave:
                nResult = objDAL.SaveCrDrDetail(objFilter);
                break;

            case Common.DataSourceTypes.VatDetailSave:
                nResult = objDAL.SaveVatDetail(objFilter);
                break;

            case Common.DataSourceTypes.GroupMasterSave:
                nResult = objDAL.SaveGroupMaster(objFilter);
                break;

            case Common.DataSourceTypes.MapProductSave:
                nResult = objDAL.SaveMapProduct(objFilter);
                break;

            case Common.DataSourceTypes.OldBillMasterSave:
                nResult = objDAL.SaveOldBillMaster(objFilter);
                break;

            case Common.DataSourceTypes.XDetailSave:
                nResult = objDAL.SaveXDetail(objFilter);
                break;

            case Common.DataSourceTypes.OrderDetailSave:
                nResult = objDAL.SaveOrderDetail(objFilter);
                break;

            case Common.DataSourceTypes.DeletedDetailSave:
                nResult = objDAL.SaveDeletedDetail(objFilter);
                break;

            case Common.DataSourceTypes.TallyMasterSave:
                nResult = objDAL.SaveTallyMaster(objFilter);
                break;

            case Common.DataSourceTypes.OBillMasterSave:
                nResult = objDAL.SaveOBillMaster(objFilter);
                break;

            case Common.DataSourceTypes.BranchStockSave:
                nResult = objDAL.SaveBranchStock(objFilter);
                break;

            case Common.DataSourceTypes.XMasterSave:
                nResult = objDAL.SaveXMaster(objFilter);
                break;

            case Common.DataSourceTypes.oBatchMasterSave:
                nResult = objDAL.SaveoBatchMaster(objFilter);
                break;

            case Common.DataSourceTypes.AccountMasterSave:
                nResult = objDAL.SaveAccountMaster(objFilter);
                break;

            case Common.DataSourceTypes.CityMasterSave:
                nResult = objDAL.SaveCityMaster(objFilter);
                break;

            case Common.DataSourceTypes.OrderMasterSave:
                nResult = objDAL.SaveOrderMaster(objFilter);
                break;

            case Common.DataSourceTypes.CompanyDetailSave:
                nResult = objDAL.SaveCompanyDetail(objFilter);
                break;

            case Common.DataSourceTypes.MiscRcptPmtSave:
                nResult = objDAL.SaveMiscRcptPmt(objFilter);
                break;

            case Common.DataSourceTypes.CategoryMasterSave:
                nResult = objDAL.SaveCategoryMaster(objFilter);
                break;

            case Common.DataSourceTypes.CompanyMasterSave:
                nResult = objDAL.SaveCompanyMaster(objFilter);
                break;

            case Common.DataSourceTypes.PurDetailSave:
                nResult = objDAL.SavePurDetail(objFilter);
                break;

            case Common.DataSourceTypes.ConfigSave:
                nResult = objDAL.SaveConfig(objFilter);
                break;

            case Common.DataSourceTypes.GenericMasterSave:
                nResult = objDAL.SaveGenericMaster(objFilter);
                break;

            case Common.DataSourceTypes.SalesManMasterSave:
                nResult = objDAL.SaveSalesManMaster(objFilter);
                break;

            case Common.DataSourceTypes.BillMasterSave:
                nResult = objDAL.SaveBillMaster(objFilter);
                break;

            case Common.DataSourceTypes.ProductMasterSave:
                nResult = objDAL.SaveProductMaster(objFilter);
                break;

            case Common.DataSourceTypes.OtherAddSave:
                nResult = objDAL.SaveOtherAdd(objFilter);
                break;

            case Common.DataSourceTypes.PatientMasterSave:
                nResult = objDAL.SavePatientMaster(objFilter);
                break;

            case Common.DataSourceTypes.BatchMasterSave:
                nResult = objDAL.SaveBatchMaster(objFilter);
                break;

            case Common.DataSourceTypes.PreFormatSave:
                nResult = objDAL.SavePreFormat(objFilter);
                break;

            case Common.DataSourceTypes.UserMasterSave:
                nResult = objDAL.SaveUserMaster(objFilter);
                break;

            case Common.DataSourceTypes.PrintFormatSave:
                nResult = objDAL.SavePrintFormat(objFilter);
                break;

            case Common.DataSourceTypes.ReceivePaymentSave:
                nResult = objDAL.SaveReceivePayment(objFilter);
                break;

            case Common.DataSourceTypes.AddressBookSave:
                nResult = objDAL.SaveAddressBook(objFilter);
                break;
            }

            if (nResult.ErrorCode != 0)
            {
                checkAndWriteDatabaseException <T>(objFilter, nResult, DataSourceTypes);
            }

            return(nResult);
        }
        public List <T> GetList <T>(DataSourceTypes DataSourceTypes, T objFilter) where T : class, IModel, new()
        {
            List <T> list = new List <T>();

            switch (DataSourceTypes)
            {
            case Common.DataSourceTypes.SalesDetailList:
                objDAL.GetListSalesDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.AreaMasterList:
                objDAL.GetListAreaMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.oVatDetailList:
                objDAL.GetListoVatDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.AutoSetupList:
                objDAL.GetListAutoSetup(objFilter, ref list);
                break;

            case Common.DataSourceTypes.CustomerMasterList:
                objDAL.GetListCustomerMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.ErrorDescList:
                objDAL.GetListErrorDesc(objFilter, ref list);
                break;

            case Common.DataSourceTypes.DoctorMasterList:
                objDAL.GetListDoctorMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.FirmMasterList:
                objDAL.GetListFirmMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.DiseaseDetailList:
                objDAL.GetListDiseaseDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.AdjDetailList:
                objDAL.GetListAdjDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.ShiftMasterList:
                objDAL.GetListShiftMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.DiseaseMasterList:
                objDAL.GetListDiseaseMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.CrDrDetailList:
                objDAL.GetListCrDrDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.VatDetailList:
                objDAL.GetListVatDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.GroupMasterList:
                objDAL.GetListGroupMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.MapProductList:
                objDAL.GetListMapProduct(objFilter, ref list);
                break;

            case Common.DataSourceTypes.OldBillMasterList:
                objDAL.GetListOldBillMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.XDetailList:
                objDAL.GetListXDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.OrderDetailList:
                objDAL.GetListOrderDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.DeletedDetailList:
                objDAL.GetListDeletedDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.TallyMasterList:
                objDAL.GetListTallyMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.OBillMasterList:
                objDAL.GetListOBillMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.BranchStockList:
                objDAL.GetListBranchStock(objFilter, ref list);
                break;

            case Common.DataSourceTypes.XMasterList:
                objDAL.GetListXMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.oBatchMasterList:
                objDAL.GetListoBatchMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.AccountMasterList:
                objDAL.GetListAccountMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.CityMasterList:
                objDAL.GetListCityMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.OrderMasterList:
                objDAL.GetListOrderMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.CompanyDetailList:
                objDAL.GetListCompanyDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.MiscRcptPmtList:
                objDAL.GetListMiscRcptPmt(objFilter, ref list);
                break;

            case Common.DataSourceTypes.CategoryMasterList:
                objDAL.GetListCategoryMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.CompanyMasterList:
                objDAL.GetListCompanyMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.PurDetailList:
                objDAL.GetListPurDetail(objFilter, ref list);
                break;

            case Common.DataSourceTypes.ConfigList:
                objDAL.GetListConfig(objFilter, ref list);
                break;

            case Common.DataSourceTypes.GenericMasterList:
                objDAL.GetListGenericMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.SalesManMasterList:
                objDAL.GetListSalesManMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.BillMasterList:
                objDAL.GetListBillMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.ProductMasterList:
                objDAL.GetListProductMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.GetAllListProduct:
                objDAL.GetAllListProduct(objFilter, ref list);
                break;

            case Common.DataSourceTypes.OtherAddList:
                objDAL.GetListOtherAdd(objFilter, ref list);
                break;

            case Common.DataSourceTypes.PatientMasterList:
                objDAL.GetListPatientMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.BatchMasterList:
                objDAL.GetListBatchMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.BatchMasterListByProductCode:
                objDAL.GetListBatchMasterByProductCode(objFilter, ref list);
                break;

            case Common.DataSourceTypes.PreFormatList:
                objDAL.GetListPreFormat(objFilter, ref list);
                break;

            case Common.DataSourceTypes.UserMasterList:
                objDAL.GetListUserMaster(objFilter, ref list);
                break;

            case Common.DataSourceTypes.PrintFormatList:
                objDAL.GetListPrintFormat(objFilter, ref list);
                break;

            case Common.DataSourceTypes.ReceivePaymentList:
                objDAL.GetListReceivePayment(objFilter, ref list);
                break;

            case Common.DataSourceTypes.AddressBookList:
                objDAL.GetListAddressBook(objFilter, ref list);
                break;
            }
            return(list);
        }
        public XafDashboardChooseDataSourceTypePageView(ISupportedDataSourceTypesService dataSourceTypesService, DataSourceTypes dataSourceTypes)
            : base(dataSourceTypesService, dataSourceTypes)
        {
            //TODO: Localize
            if (Controls.Find("dataSourceTypesListBox", true).FirstOrDefault() is ListBoxControl listbox)
            {
                listbox.Items.Add(new CheckedListBoxItem
                {
                    Value       = XAFDataSourceType.XAF,
                    Description = CaptionHelper.GetLocalizedText("Captions", "XafObjectDataSource"),
                    Tag         = CaptionHelper.GetLocalizedText("Captions", "ObjectDataSourceWithXafPersistentTypes")
                });

                listbox.Items.Add(new CheckedListBoxItem
                {
                    Value       = SenDevDataSourceType.Script,
                    Description = "C# Script data source", //CaptionHelper.GetLocalizedText("Captions", "XafObjectDataSource"),
                    Tag         = "C#"                     //CaptionHelper.GetLocalizedText("Captions", "ObjectDataSourceWithXafPersistentTypes")
                });


                listbox.Items.Add(new CheckedListBoxItem
                {
                    Value       = SenDevDataSourceType.XafDataExtract,
                    Description = "XAF Data Extract",                     //CaptionHelper.GetLocalizedText("Captions", "XafObjectDataSource"),
                    Tag         = "Preprocessed data extract"             //CaptionHelper.GetLocalizedText("Captions", "ObjectDataSourceWithXafPersistentTypes")
                });
            }
        }
 public CustomChooseReportTypePage(IChooseReportTypePageView view, IConnectionStorageService connectionStorageService,
                                   DataSourceTypes dataSourceTypes, IWizardRunnerContext context, ISolutionTypesProvider solutionTypesProvider) :
     base(view, connectionStorageService, dataSourceTypes, context, solutionTypesProvider)
 {
 }
Exemple #11
0
        public MainModule()
        {
            #region general instructions

            /* Uses NancyFx 2.0 (new syntax)
             *
             * Create a GET method similar to:
             * Get("/path/path...", parms =>
             * {
             *      string jsonText = "";
             *      // do logic here
             *      // serialize desired result to json format
             *      return (Response)jsonText;
             * });
             *
             *
             * To put parameters in path segments:
             * Surround path segments with braces:
             *  ex: Get["/path/{aaa}/{bbb}"] = parms => {....}
             *  In code, refer to parms.aaa, parms.bbb, etc.
             *
             * To put parameters at end of url:
             * Add to url: ?xxx=yyy&aaa=bbb, etc.
             *  ex: Get["/path?cust=aaa&order=bbb"] = parms => {....}
             *  In code, refer to Request.Query.cust, Request.Query.order, etc.
             *  (if specific item requested is not in the url, it will be null)
             *  You can also verify by Request.Query.item.HasValue, which returns true or false.
             *  You can also iterate these parameters:
             *  foreach (var parm in Request.Query)
             *   In this case, "parm" will contain the name of the parameter
             *   and Request.Query[parm] will be the value of the parameter.
             *
             * All parameters passed in (except for ip=, db=, table=, procedure=, orderby= and columns=) are considered
             * to be filters used to select data. They are converted to Filter objects (see Filter class in DataAccess.cs).
             * they are collected in a List<Filter> so they can be passed into the DataAccess.GetData method.
             *
             * To SELECT from table or stored procedure, create url similar to:
             * http://localhost:8080/select/?ip=192.168.1.18&amp;db=Access&amp;table=tblNAMembers&amp;NAID=equal:431
             * Call select function like this:
             * using (var client = new HttpClient())
             *   {
             *       var json = await client.GetStringAsync(url);
             *       DataTable dt = DeserializeDataTable(json);
             *   }
             * Expect a serialized DataTable to be returned, containing record(s) requested.
             * Note: This code uses Newtonsoft Json.Net for serialization/deserialization.
             *       Feel free to use another technique if wanted. If you use Json.Net,
             *       make sure you include the DataTableConverter class in Converters.cs
             *       as I have made some changes to the Newtonsoft version to fix issues.
             *
             *
             * To INSERT, UPDATE or DELETE, created a url similar to:
             * http://localhost:8080/insert?ip=192.168.1.18&amp;db=Access
             * http://localhost:8080/update?ip=192.168.1.18&amp;db=Access
             * http://localhost:8080/delete?ip=192.168.1.18&amp;db=Access
             * You must also include a serialized 1-record DataTable as payload, containing the particular
             * record to be INSERTed, UPDATEd or DELETEd.
             * Call insert, update or delete methods like this:
             * Assume you have a 1-record DataTable (dt), with the record being worked on.
             *   var json = SerializeDataTable(dt);
             *   var data = new StringContent(json, Encoding.UTF8, "application/json");
             *   var response = await client.PostAsync(url, data);
             *   string result = response.Content.ReadAsStringAsync().Result;
             *   dt = DeserializeDataTable(result);
             * For insert or update, dt will contain the record updated or inserted,
             *  including new AutoIncrement key value if appropriate.
             * For delete, (NEED TO FIGURE THIS OUT)
             */
            #endregion

            string          json;
            DbFlavors       dbFlavor;
            DataSourceTypes dsType    = DataSourceTypes.table;
            List <Filter>   filters   = new List <Filter>();
            List <string>   errors    = new List <string>();
            string          dbColumns = string.Empty;
            string          dsName    = string.Empty;
            string          orderBy   = string.Empty;
            string          clientIp  = string.Empty;
            string          msg       = string.Empty;
            bool            isOK;

            #region handle missing or invalid path
            Get("/", parms =>
            {
                msg  = $"Missing path in URL: {Request.Url.ToString()}";
                json = GetJsonHelp(Formatting.Indented);
                json = DataAccess.InsertJsonProperties(json, Formatting.Indented, "status", "error", "reason", msg);
                Logger.LogError($"Missing path in URL: {Request.Url.ToString()}", "MainModule Routing");
                return((Response)json);
            });
            Get("/{parm1}", parms =>
            {
                var path = Request.Path.Substring(1);
                msg      = $"Invalid path '{path}' in URL: {Request.Url.ToString()}";
                if (path != "favicon.ico")
                {
                    Logger.LogError(msg, "MainModule Routing");
                }
                json = GetJsonHelp(Formatting.Indented);
                json = DataAccess.InsertJsonProperties(json, Formatting.Indented, "status", "error", "reason", msg);
                return((Response)json);
            });
            #endregion

            #region help
            Get("help", parms =>
            {
                Logger.LogInfo("Help requested", "MainModule.Get(\"help\")");
                json = GetJsonHelp(Formatting.Indented);
                return((Response)json);
            });
            #endregion

            #region SELECT instructions

            /*
             * Select from table or stored procedure
             * Ex: Access request: http://localhost:8080/select/?ip=192.168.1.18&amp;db=Access&amp;table=tblNAMembers&amp;NAID=equal:431
             *      MySql request: http://localhost:8080/select/?ip=192.168.1.18&amp;db=MySql&amp;procedure=get_members&amp;ID=eq:431
             * - path must be: select
             * - must have ?ip=
             * - must have &amp;db=[Access|Sql|MySql]
             * - must have &amp;table= or &amp;procedure=
             *   - note: stored procedures don't work well with Access
             *   - if table, may have orderby=col[desc][,col[desc] ...] (ignored for stored procedures)
             *   - if table, may have columns=col,col... (ignored for stored procedures)
             *     - if columns parameter has column names, those columns will be selected
             *     - if missing or no column names, all columns will be selected
             * - filter parameters are optional
             *    - if table, filter format is : colName=operator:value,...
             *    - if table, operators are: less, lessorequal, equal, notequal, greaterorequal, greater, contains, notcontains, starts, ends
             *       - multiple filters imply AND
             *    - if procedure, filter format is: parameterName=value,...
             *       - you may also use format: parameterName=equal:value,... (operator MUST be "equal")
             *       - must supply a filter for each stored procedure parameter
             */
            #endregion

            Get("select", parms =>
            {
                Logger.LogInfo($"SELECT requested: {Request.Url.ToString()}", "MainModule.Get(\"select\")");
                bool isTest = false;
                if (isTest)
                {
                    json = DataAccess.SerializeDictionary(new Dictionary <string, string> {
                        { "status", "testing" }, { "result", "in select" }
                    });
                    return((Response)json);
                }

                #region verify valid parameters

                if (!Request.Query.db.HasValue)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "missing parameter: db=Access|Sql|MySql" }
                    }));
                }

                isOK = Enum.IsDefined(typeof(DbFlavors), Request.Query.db.ToString());
                if (!isOK)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "invalid parameter: db=Access|Sql|MySql" }
                    }));
                }

                if (!Request.Query.table.HasValue & !Request.Query.procedure.HasValue)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Parameter 'table' or 'procedure' missing" }
                    }));
                }

                if (Request.Query.table.HasValue & Request.Query.procedure.HasValue)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Can't use both 'table' and 'procedure' parameters" }
                    }));
                }

                if (Request.Query.table.HasValue)
                {
                    dsType = DataSourceTypes.table;
                }
                else if (Request.Query.procedure.HasValue)
                {
                    dsType = DataSourceTypes.procedure;
                }

                if (dsType == DataSourceTypes.table && Request.Query.table == string.Empty)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Parameter 'table' has no value" }
                    }));
                }

                else if (dsType == DataSourceTypes.procedure && Request.Query.procedure == string.Empty)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Parameter 'procedure' has no value" }
                    }));
                }

                if (!Request.Query.ip.HasValue)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Parameter 'ip' missing, should be ip=<myIpAddress>" }
                    }));
                }
                if (Request.Query.ip == string.Empty)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Parameter 'ip' has no value, should be ip=<myIpAddress>" }
                    }));
                }

                if (Request.Query.columns.HasValue)
                {
                    dbColumns = Request.Query.columns.ToString();
                    if (string.IsNullOrEmpty(dbColumns))
                    {
                        return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                        {
                            { "status", "fail" }, { "reason", "Parameter 'columns' must have column names: colName,colName..." }
                        }));
                    }

                    dbColumns = dbColumns.Replace(",", ", ", StringComparison.CurrentCultureIgnoreCase);
                }

                if (Request.Query.orderby.HasValue)
                {
                    if (Request.Query.orderby == string.Empty)
                    {
                        return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                        {
                            { "status", "fail" }, { "reason", "Parameter 'orderby' has no value" }
                        }));
                    }
                    else
                    {
                        orderBy = Request.Query.orderby;
                    }
                }
                else
                {
                    orderBy = string.Empty;
                }

                #endregion

                clientIp = Request.Query.ip.ToString();
                dbFlavor = (DbFlavors)Enum.Parse(typeof(DbFlavors), Request.Query.db);
                dsName   = dsType == DataSourceTypes.table ? Request.Query.table : Request.Query.procedure;

                #region get list of filters for query

                filters = new List <Filter>();
                errors  = new List <string>();
                isOK    = Collect_Filters(out filters, out errors);
                if (!isOK)
                {
                    json = $"{{\"errors\":{JsonConvert.SerializeObject(errors)}}}";
                    json = DataAccess.InsertJsonProperties(json, Formatting.None, "status", "error", "method", "MainModule Get(\"select\")");
                    return((Response)json);
                }

                #endregion

                isTest = false;
                if (isTest)
                {
                    if (filters.Count == 0)
                    {
                        json = DataAccess.SerializeDictionary(new Dictionary <string, string> {
                            { "filters", "''" }
                        });
                    }
                    else
                    {
                        json = $"{{\"filters\":{JsonConvert.SerializeObject(filters, Formatting.None)}}}";
                    }

                    json = DataAccess.InsertJsonProperties(json, Formatting.Indented, "status", "testing", "dbFlavor", dbFlavor.ToString(), "data source type", dsType.ToString(), "dsName", dsName, "dbColumns", dbColumns, "order by", $"'{orderBy}'");
                    Console.WriteLine(json);
                    Console.WriteLine("\nPress any key to exit...");
                    return((Response)json);
                }

                #region get data
                using (var dt = DataAccess.GetData(clientIp, dbFlavor, dsType, dsName, dbColumns, filters, orderBy))
                {
                    if (dt == null)
                    {
                        json = DataAccess.LastError;
                    }
                    else
                    {
                        //Console.WriteLine("Got data table");
                        var settings = new JsonSerializerSettings()
                        {
                            Formatting = Formatting.Indented
                        };
                        settings.Converters.Add(new Converters.DataTableConverter());
                        json = JsonConvert.SerializeObject(dt, settings);
                    }

                    return((Response)json);
                }
                #endregion
            });

            #region SQLSELECT instructions

            /*
             * Select data using a SQL command
             * Ex: Access request: http://localhost:8080/sqlselect/?ip=192.168.1.18&amp;db=Access&amp;NAID=equal:431
             *      MySql request: http://localhost:8080/sqlselect/?ip=192.168.1.18&amp;db=MySql&amp;StudentID=equal:43
             * - path must be: sqlselect
             * - must have ?ip=
             * - must have &amp;db=[Access|Sql|MySql]
             * - SQL statement MUST begin with "select" (case-insensitive)
             * - must include filter parameters if SQL statement has a WHERE clause
             *   - must have a parameter for each WHERE clause column
             *   - filter format is: parameterName=value,...
             *   - you may also use format: parameterName=equal:value,... (operator MUST be "equal")
             */
            #endregion

            Post("sqlselect", parms =>
            {
                Logger.LogInfo($"SQL SELECT requested: {Request.Url.ToString()}", "MainModule.Get(\"selectsql\")");
                bool isTest = false;
                if (isTest)
                {
                    json = DataAccess.SerializeDictionary(new Dictionary <string, string> {
                        { "status", "testing" }, { "result", "in selectsql" }
                    });
                    return((Response)json);
                }

                #region verify valid parameters

                if (!Request.Query.db.HasValue)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "missing parameter: db=Access|Sql|MySql" }
                    }));
                }

                bool isOK = Enum.IsDefined(typeof(DbFlavors), Request.Query.db.ToString());
                if (!isOK)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "invalid parameter: db=Access|Sql|MySql" }
                    }));
                }

                if (!Request.Query.ip.HasValue)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Parameter 'ip' missing, should be ip=<myIpAddress>" }
                    }));
                }
                if (Request.Query.ip == string.Empty)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Parameter 'ip' has no value, should be ip=<myIpAddress>" }
                    }));
                }

                #endregion

                dsType   = DataSourceTypes.sql;
                clientIp = Request.Query.ip.ToString();
                dbFlavor = (DbFlavors)Enum.Parse(typeof(DbFlavors), Request.Query.db);

                #region get list of filters for query

                filters = new List <Filter>();
                errors  = new List <string>();
                isOK    = Collect_Filters(out filters, out errors);
                if (!isOK)
                {
                    json = $"{{\"errors\":{JsonConvert.SerializeObject(errors)}}}";
                    json = DataAccess.InsertJsonProperties(json, Formatting.None, "status", "error", "method", "MainModule Get(\"sqlselect\")");
                    return((Response)json);
                }

                #endregion

                // get SQL statement from request body
                var sql = new StreamReader(Request.Body).ReadToEnd();
                if (!sql.StartsWith("select ", StringComparison.CurrentCultureIgnoreCase))
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", $"invalid SQL statement: {sql}" }
                    }));
                }

                isTest = false;
                if (isTest)
                {
                    if (filters.Count == 0)
                    {
                        json = DataAccess.SerializeDictionary(new Dictionary <string, string> {
                            { "filters", "''" }
                        });
                    }
                    else
                    {
                        json = $"{{\"filters\":{JsonConvert.SerializeObject(filters, Formatting.None)}}}";
                    }

                    json = DataAccess.InsertJsonProperties(json, Formatting.Indented, "status", "testing", "dbFlavor", dbFlavor.ToString());
                    Console.WriteLine(json);
                    Console.WriteLine("\nPress any key to exit...");
                    return((Response)json);
                }

                #region get data
                using (var dt = DataAccess.GetData(clientIp, dbFlavor, dsType, sql, filters))
                {
                    if (dt == null)
                    {
                        json = DataAccess.LastError;
                    }
                    else
                    {
                        //Console.WriteLine("Got data table");
                        var settings = new JsonSerializerSettings()
                        {
                            Formatting = Formatting.Indented
                        };
                        settings.Converters.Add(new Converters.DataTableConverter());
                        json = JsonConvert.SerializeObject(dt, settings);
                    }

                    return((Response)json);
                }
                #endregion

                json = "";
                return((Response)json);
            });

            #region INSERT, UPDATE, DELETE instructions
            // Ex: Access request: http://localhost:8080/insert?ip=192.168.1.18&amp;db=Access
            // - path must be: [insert|update|delete]
            // - must have ip=
            // - must have db=Access|Sql|MySql
            // - must have a serialized 1-record DataTable as payload for request.
            #endregion

            Post("update", parms =>
            {
                clientIp = Request.Query.ip.ToString();

                #region verify valid parameters
                if (!Request.Query.db.HasValue)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Missing parameter: db=Access|Sql|MySql" }
                    }));
                }
                dbFlavor = (DbFlavors)Enum.Parse(typeof(DbFlavors), Request.Query.db);
                if (!Enum.IsDefined(typeof(DbFlavors), dbFlavor))
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Invalid parameter: db=Access|Sql|MySql" }
                    }));
                }

                if (!Request.Query.ip.HasValue)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Parameter 'ip' missing, should be ip=<myIpAddress>" }
                    }));
                }
                if (Request.Query.ip == string.Empty)
                {
                    return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                    {
                        { "status", "fail" }, { "reason", "Parameter 'ip' has no value, should be ip=<myIpAddress>" }
                    }));
                }
                #endregion

                // get updated table from request body
                json = new StreamReader(Request.Body).ReadToEnd();
                using (DataTable dtUpdated = Deserialize_Table_Json(json))
                {
                    #region verify payload was deserialized into a 1-record DataTable
                    if (dtUpdated == null)
                    {
                        return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                        {
                            { "status", "error" }, { "reason", "could not deserialize payload into DataTable" }, { "payload", json }
                        }));
                    }
                    if (dtUpdated.Rows.Count != 1)
                    {
                        return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                        {
                            { "status", "error" }, { "table rows", dtUpdated.Rows.Count.ToString() }, { "reason", "must supply a 1-row DataTable for update" }
                        }));
                    }
                    #endregion

                    #region verify order by
                    if (Request.Query.orderby.HasValue)
                    {
                        if (Request.Query.orderby == string.Empty)
                        {
                            return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                            {
                                { "status", "fail" }, { "reason", "Parameter 'orderby' has no value" }
                            }));
                        }
                        else
                        {
                            orderBy = Request.Query.orderby;
                        }
                    }
                    else
                    {
                        orderBy = string.Empty;
                    }
                    #endregion

                    #region verify the original record was saved
                    if (!DataAccess.savedData.ContainsKey(clientIp + dtUpdated.TableName))
                    {
                        return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                        {
                            { "status", "error" }, { "reason", "no saved record exists" }, { "ip address", clientIp }, { "table name", dtUpdated.TableName }
                        }));
                    }
                    #endregion

                    clientIp = Request.Query.ip.ToString();
                    try
                    {
                        using (DataTable dtSaved = DataAccess.savedData[clientIp + dtUpdated.TableName])
                        {
                            #region verify saved DataTable contains a single record
                            if (dtSaved.Rows.Count != 1)
                            {
                                return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                                {
                                    { "status", "error" }, { "table rows", dtSaved.Rows.Count.ToString() }, { "reason", "saved DataTable must have exactly 1 DataRow" }
                                }));
                            }
                            #endregion

                            bool isTest = false;
                            if (isTest)
                            {
                                Console.WriteLine($"\nOriginal: {string.Join(", ", dtSaved.Rows[0].ItemArray)}");
                                Console.WriteLine($"\nUpdated : {string.Join(", ", dtUpdated.Rows[0].ItemArray)}");
                            }

                            // update data and get new updated record
                            using (var dt = DataAccess.UpdateData(clientIp, dbFlavor, dtUpdated, dtSaved, orderBy))
                            {
                                if (dt == null)
                                {
                                    json = DataAccess.LastError;
                                }
                                else
                                {
                                    var settings = new JsonSerializerSettings()
                                    {
                                        Formatting = Formatting.Indented
                                    };
                                    settings.Converters.Add(new Converters.DataTableConverter());
                                    json = JsonConvert.SerializeObject(dt, settings);
                                }

                                return((Response)json);
                            }


                            // insert record. result: 0 = failure, >0 = ID of new record, -1 = no auto-number field
                            //var newID = DataAccess.InsertData(dbFlavor, dtUpdated);

                            // loop thru columns, build sql statement, insert row
                            // ignore auto-increment columns in field list and value list
                            // "insert into {table} (xx,xx,xx) values (xx, xx, xx,...)"

                            // for SQL, select SCOPE_IDENTITY for last auto-increment ID
                            // for MySql, select LAST_INSERT_ID
                            // for Access???

                            // then get the new row, serialize and return
                        }
                    }
                    catch (Exception ex)
                    {
                        return((Response)DataAccess.SerializeDictionary(new Dictionary <string, string>
                        {
                            { "status", "error" }, { "method", "MainModule" }, { "error", ex.Message }
                        }));
                    }
                }
            });
        }
Exemple #12
0
        public EntityConfiguration <T> Key <TKey>(Expression <Func <T, TKey> > selector, DataSourceTypes dataSourceType)
        {
            var column = Parse(selector);

            column.DataSourceType = dataSourceType;
            column.Table.Key      = column;
            column.IsKey          = true;
            return(this);
        }
        public VMConvertBaiduToMBTiles(Map esriMap, int port)
        {
            /*if (BaiDuMapManager.inst.cp == null)
             * {
             *  BaiDuMapManager.inst.cp = new CacheVersionProvider();
             *  //System.Threading.Tasks.Task.Factory.StartNew(() => { BaiDuMapManager.inst.cp.initVersionFormWeb(); });
             * }*/
            if (!PBS.Util.Utility.IsConnectedToInternet())
            {
                throw new Exception("No internet connectivity!");
            }
            _port = port;
            //check the availability of the port using for this map
            if (!ServiceManager.PortEntities.ContainsKey(_port))
            {
                try
                {
                    //WebServiceHost host = new WebServiceHost(serviceProvider, new Uri("http://localhost:" + port));
                    WebServiceHost host = new WebServiceHost(typeof(PBSServiceProvider), new Uri("http://localhost:" + _port));
                    host.AddServiceEndpoint(typeof(IPBSServiceProvider), new WebHttpBinding(), "").Behaviors.Add(new WebHttpBehavior());
                    ServiceDebugBehavior stp = host.Description.Behaviors.Find <ServiceDebugBehavior>();
                    stp.HttpHelpPageEnabled = false;
                    host.Open();
                    ServiceManager.PortEntities.Add(_port, new PortEntity(host, new PBSServiceProvider()));
                }
                catch (Exception e)
                {
                    string m = "The port using for this map is not available.\r\n";
                    //HTTP 无法注册 URL http://+:7777/CalulaterServic/。进程不具有此命名空间的访问权限(有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=70353)
                    if (e.Message.Contains("http://go.microsoft.com/fwlink/?LinkId=70353"))
                    {
                        throw new Exception(m + "Your Windows has enabled UAC, which restrict of Http.sys Namespace. Please reopen PortableBasemapServer by right clicking and select 'Run as Administrator'. \r\nAdd WebServiceHost Error!\r\n" + e.Message);
                    }
                    throw new Exception(m + e.Message);
                }
            }
            try
            {
                foreach (var map in DataSourceBaiduOnlineMap.CustomOnlineMaps)
                {
                    DataSourceTypes.Add(map.Name);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            SelectedDatasourceType = DataSourceTypes[0];
            CMDClickBrowseButton   = new DelegateCommand(BrowseButtonClicked);
            CMDSaveArea            = new DelegateCommand(StartSaveArea);
            CMDResetArea           = new DelegateCommand(ZoomToInitialExtend);
            CMDClickStartButton    = new DelegateCommand(StartButtonClicked, (p) => { return(!string.IsNullOrEmpty(Output) && DownloadExtent != null && (Levels != null && Levels.Length > 0) && IsIdle); });
            CMDClickProfileButton  = new DelegateCommand(ProfileButtonClicked, (p) => { return(!string.IsNullOrEmpty(SelectedProfile)); });
            IsIdle = true;
            SelectedIndexOfDrawExtentMethod = 0;
            Profiles = new ObservableCollection <string>(_configManager.GetAllDownloadProfileNames());

            _map = esriMap;
            //current level
            _map.ExtentChanged += (s, a) =>
            {
                if ((_map.Layers[0] as TiledMapServiceLayer).TileInfo == null)
                {
                    return;
                }
                int i;
                for (i = 0; i < (_map.Layers[0] as TiledMapServiceLayer).TileInfo.Lods.Length; i++)
                {
                    if (Math.Abs(_map.Resolution - (_map.Layers[0] as TiledMapServiceLayer).TileInfo.Lods[i].Resolution) < 0.000001)
                    {
                        break;
                    }
                }
                lastLevel    = i;
                CurrentLevel = i.ToString();
                NotifyPropertyChanged(p => p.CurrentLevel);
            };
            _graphicsLayer = new GraphicsLayer();
            _map.Layers.Add(_graphicsLayer);
            _map.MouseRightButtonDown += new MouseButtonEventHandler(MouseRightButtonDown);
            _map.MouseRightButtonUp   += new MouseButtonEventHandler(MouseRightButtonUp);
            _map.MouseMove            += new System.Windows.Input.MouseEventHandler(MouseMove);
            //load first map
            ChangeMap();
        }
 public ChoosePersonsPage(IChooseReportTypePageView view, IEnumerable <SqlDataConnection> dataConnections,
                          DataSourceTypes dataSourceTypes, IWizardRunnerContext context, ISolutionTypesProvider solutionTypesProvider)
     : base(view, dataConnections, dataSourceTypes, context, solutionTypesProvider)
 {
 }