예제 #1
0
 public CommonDDLWriter(SqlFuConnection db, DbEngine engine)
 {
     db.MustNotBeNull();
     Db = db;
     Builder = new StringBuilder();
     _engine = engine;
 }
예제 #2
0
파일: Update.cs 프로젝트: ktaranov/LiteDB
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);
            var doc = JsonSerializer.Deserialize(s).AsDocument;

            return engine.Update(col, new BsonDocument[] { doc });
        }
예제 #3
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var fs = new LiteFileStorage(engine);
            var id = this.ReadId(s);

            return fs.Delete(id);
        }
예제 #4
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);
            var query = this.ReadQuery(s);

            return engine.Delete(col, query);
        }
예제 #5
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);
            var index = s.Scan(this.FieldPattern).Trim();

            return engine.Min(col, index.Length == 0 ? "_id" : index);
        }
예제 #6
0
 public RedefineForAttribute(DbEngine engine, string definition)
 {
     if (engine == DbEngine.None) throw new ArgumentException("I need a database engine");
     definition.MustNotBeEmpty();
     Database = engine;
     Definition = definition;
 }
예제 #7
0
 public SqlFuConnection(DbConnection cnx,DbEngine engine)
 {
     cnx.MustNotBeNull();
     _conex = cnx;
     _provider = ProviderFactory.GetProvider(engine);
     _conex.Open();
 }
예제 #8
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);
            var newName = s.Scan(@"[\w-]+").ThrowIfEmpty("Invalid new collection name");

            return engine.RenameCollection(col, newName);
        }
예제 #9
0
 public CommonDDLWriter(IAccessDb db,DbEngine engine)
 {
     db.MustNotBeNull();
     Db = db;
     Builder = new StringBuilder();
     _engine = engine;
 }
예제 #10
0
파일: Update.cs 프로젝트: ktaranov/LiteDB
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var fs = new LiteFileStorage(engine);
            var id = this.ReadId(s);
            var metadata = JsonSerializer.Deserialize(s).AsDocument;

            return fs.SetMetadata(id, metadata);
        }
예제 #11
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var cols = engine.GetCollectionNames().OrderBy(x => x).ToArray();

            if (cols.Length == 0) return BsonValue.Null;

            return string.Join(Environment.NewLine, cols);
        }
 public ActionResult Index(int? claimId)
 {
     var db = new DbEngine();
     TenderClaim claim = null;
     var dealTypeString = string.Empty;
     var claimStatusString = string.Empty;
     if (claimId.HasValue)
     {
         claim = db.LoadTenderClaimById(claimId.Value);
         if (claim != null)
         {
             var managerFromAd = UserHelper.GetManagerFromActiveDirectoryById(claim.Manager.Id);
             if (managerFromAd != null)
             {
                 claim.Manager.Name = managerFromAd.Name;
             }
             claim.Positions = db.LoadSpecificationPositionsForTenderClaim(claimId.Value);
             if (claim.Positions != null && claim.Positions.Any())
             {
                 var productManagers = claim.Positions.Select(x => x.ProductManager).ToList();
                 foreach (var productManager in productManagers)
                 {
                     var productManagerFromAd =
                         UserHelper.GetProductManagerFromActiveDirectoryById(productManager.Id);
                     if (productManagerFromAd != null)
                     {
                         productManager.Name = productManagerFromAd.Name;
                     }
                 }
                 var calculations = db.LoadCalculateSpecificationPositionsForTenderClaim(claimId.Value);
                 if (calculations != null && calculations.Any())
                 {
                     foreach (var position in claim.Positions)
                     {
                         position.Calculations =
                             calculations.Where(x => x.IdSpecificationPosition == position.Id).ToList();
                     }
                 }
             }
             var dealTypes = db.LoadDealTypes();
             var dealType = dealTypes.FirstOrDefault(x => x.Id == claim.DealType);
             if (dealType != null)
             {
                 dealTypeString = dealType.Value;
             }
             var statusList = db.LoadClaimStatus();
             var status = statusList.FirstOrDefault(x => x.Id == claim.ClaimStatus);
             if (status != null)
             {
                 claimStatusString = status.Value;
             }
         }
     }
     ViewBag.Claim = claim;
     ViewBag.Status = claimStatusString;
     ViewBag.DealType = dealTypeString;
     return View();
 }
예제 #13
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);
            var query = this.ReadQuery(s);
            var skipLimit = this.ReadSkipLimit(s);
            var docs = engine.Find(col, query, skipLimit.Key, skipLimit.Value);

            return new BsonArray(docs);
        }
예제 #14
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);
            var field = s.Scan(this.FieldPattern).Trim();
            var opts = JsonSerializer.Deserialize(s);
            var options =
                opts.IsNull ? new IndexOptions() :
                opts.IsBoolean ? new IndexOptions { Unique = opts.AsBoolean } :
                (new BsonMapper()).ToObject<IndexOptions>(opts.AsDocument);

            return engine.EnsureIndex(col, field, options);
        }
예제 #15
0
파일: Bulk.cs 프로젝트: ktaranov/LiteDB
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);
            var filename = s.Scan(@".*");

            using (var sr = new StreamReader(filename, Encoding.UTF8))
            {
                var docs = JsonSerializer.DeserializeArray(sr);

                return engine.Insert(col, docs.Select(x => x.AsDocument));
            }
        }
예제 #16
0
 public static IHaveDbProvider GetProvider(DbEngine engine)
 {
     switch (engine)
     {
         case DbEngine.SqlServer: return new SqlServerProvider();
         case DbEngine.SqlServerCE: return new SqlServerCEProvider();
         case DbEngine.MySql: return new MySqlProvider();
         case DbEngine.PostgreSQL:return new PostgresProvider();
         case DbEngine.Oracle:return new OracleProvider();
         case DbEngine.SQLite:return new SqliteProvider();
     }
     throw new Exception("Unkown provider");
 }
예제 #17
0
파일: Upload.cs 프로젝트: ktaranov/LiteDB
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var fs = new LiteFileStorage(engine);
            var id = this.ReadId(s);

            var filename = Path.GetFullPath(s.Scan(@"\s*.*").Trim());

            if (!File.Exists(filename)) throw new IOException("File " + filename + " not found");

            var file = fs.Upload(id, filename);

            return file.AsDocument;
        }
 public JsonResult Delete(int id)
 {
     var isComplete = false;
     try
     {
         var db = new DbEngine();
         isComplete = db.DeleteCalculateSpecificationPosition(id);
     }
     catch (Exception)
     {
         isComplete = false;
     }
     return Json(new { IsComplete = isComplete }, JsonRequestBehavior.AllowGet);
 }
 public JsonResult Edit(CalculateSpecificationPosition model)
 {
     var isComplete = false;
     try
     {
         var db = new DbEngine();
         isComplete = db.UpdateCalculateSpecificationPosition(model);
     }
     catch (Exception)
     {
         isComplete = false;
     }
     return Json(new { IsComplete = isComplete });
 }
예제 #20
0
파일: Read.cs 프로젝트: ktaranov/LiteDB
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);
            var query = this.ReadQuery(s);
            var skipLimit = this.ReadSkipLimit(s);
            var docs = engine.Find(col, query, skipLimit.Key, skipLimit.Value);
            var cnt = 0;

            foreach(var d in docs)
            {
                cnt++;
            }

            return new BsonValue(cnt);
        }
예제 #21
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);
            var value = JsonSerializer.Deserialize(s);

            if (value.IsArray)
            {
                return engine.Insert(col, value.AsArray.RawValue.Select(x => x.AsDocument));
            }
            else
            {
                engine.Insert(col, new BsonDocument[] { value.AsDocument });

                return BsonValue.Null;
            }
        }
예제 #22
0
        public BsonValue Run(DbEngine engine, string command)
        {
            if (string.IsNullOrEmpty(command)) return BsonValue.Null;

            var s = new StringScanner(command);

            foreach (var cmd in _commands)
            {
                if (cmd.IsCommand(s))
                {
                    return cmd.Execute(engine, s);
                }
            }

            throw LiteException.InvalidCommand(command);
        }
예제 #23
0
파일: Find.cs 프로젝트: ktaranov/LiteDB
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var fs = new LiteFileStorage(engine);

            if (s.HasTerminated)
            {
                var files = fs.FindAll().Select(x => x.AsDocument);

                return new BsonArray(files);
            }
            else
            {
                var id = this.ReadId(s);

                var files = fs.Find(id).Select(x => x.AsDocument);

                return new BsonArray(files);
            }
        }
예제 #24
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var fs = new LiteFileStorage(engine);
            var id = this.ReadId(s);
            var filename = s.Scan(@"\s*.*").Trim();

            var file = fs.FindById(id);

            if (file != null)
            {
                file.SaveAs(filename, true);

                return file.AsDocument;
            }
            else
            {
                return false;
            }
        }
예제 #25
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            if (s.HasTerminated || s.Match(@"\d+"))
            {
                var start = s.Scan(@"\d*").Trim();
                var end = s.Scan(@"\s*\d*").Trim();

                if (start.Length > 0 && end.Length == 0) end = start;

                return engine.DumpPages(
                    start.Length == 0 ? 0 : Convert.ToUInt32(start),
                    end.Length == 0 ? uint.MaxValue : Convert.ToUInt32(end)).ToString();
            }
            else
            {
                var col = s.Scan(@"[\w-]+");
                var field = s.Scan(@"\s+\w+").Trim();

                return engine.DumpIndex(col, field).ToString();
            }
        }
예제 #26
0
파일: Config.cs 프로젝트: eugman/SqlFu
 public static SqlFuConnection GetDb(bool noLog = false,DbEngine engine=DbEngine.SqlServer)
 {
     var cnx = Connex;
     switch(engine)
     {
         case DbEngine.SQLite:
             DirectoryInfo dd = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
             var f = dd.Parent.Parent.FullName;
             cnx = string.Format(SqliteConnex, Path.Combine(f, "testdb.db"));                    
             //cnx = SqliteConnex;
             break;
         case DbEngine.MySql:
             cnx = MysqlConnex;
             break;
         case DbEngine.PostgreSQL:
             cnx = PostgresConnex;
             break;
     }
     var d = new SqlFuConnection(cnx, engine);
     
     return d;
 }
예제 #27
0
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);
            var field = s.Scan(this.FieldPattern).Trim().ThrowIfEmpty("Invalid field name");
            var opts = JsonSerializer.Deserialize(s);
            var options = new IndexOptions();

            if(opts.IsBoolean)
            {
                options.Unique = opts.AsBoolean;
            }
            else if(opts.IsDocument)
            {
                var doc = opts.AsDocument;

                if (doc["unique"].IsBoolean) options.Unique = doc["unique"].AsBoolean;
                if (doc["ignoreCase"].IsBoolean) options.IgnoreCase = doc["ignoreCase"].AsBoolean;
                if (doc["removeAccents"].IsBoolean) options.RemoveAccents = doc["removeAccents"].AsBoolean;
                if (doc["trimWhitespace"].IsBoolean) options.TrimWhitespace = doc["trimWhitespace"].AsBoolean;
                if (doc["emptyStringToNull"].IsBoolean) options.EmptyStringToNull = doc["emptyStringToNull"].AsBoolean;
            }

            return engine.EnsureIndex(col, field, options);
        }
예제 #28
0
파일: SqlFuDao.cs 프로젝트: valipan/SqlFu
 public static void ConnectionStringIs(string conn, DbEngine engineType)
 {
     conn.MustNotBeEmpty();
     connString = conn;
     Engine     = engineType;
 }
        /// <summary>
        /// OrdersFulfillment controller
        /// Make Shopify fulfillment calls with given order ids and tracking numbers
        /// Write shopUrl to hidden input to front-end for further queries
        /// </summary>
        public async Task <ActionResult> OrdersFulfillment(string ShopUrl, string OrderIds, string LabelNumbers, string NotifyFlag)
        {
            //Db connection to query store details
            DbEngine conn = new DbEngine();
            //get store Shopify's token to access API
            string token = conn.GetStringValues(ShopUrl, "ShopifyToken");

            if (!OrderIds.Contains(","))
            {//If there in only one order
                //new ShopifyAPI objects to query
                ShopifyAPI newApi = new ShopifyAPI();
                //get fulfillment ids (if existed on this order)
                string fulfillments = await newApi.GetFulfillment(ShopUrl, token, OrderIds);

                if (fulfillments == "")
                {//if not fulfilled yet, fulfill it
                    string fulfillmentId = await newApi.NewFulfillment(ShopUrl, token, OrderIds, LabelNumbers, NotifyFlag);

                    //string fulfillmentId = await newApi.NewFulfillment(ShopUrl, token, OrderIds, LabelNumbers);
                }
                else if (!fulfillments.Contains(","))
                {//if fulfilled, update tracking information
                    string fulfillmentId = await newApi.UpdateFulfillment(ShopUrl, token, OrderIds, fulfillments, LabelNumbers, NotifyFlag);
                }
                else
                {
                    List <string> fulfillmentIds = fulfillments.Split(',').ToList();
                    foreach (string fId in fulfillmentIds)
                    {
                        string fulfillmentId = await newApi.UpdateFulfillment(ShopUrl, token, OrderIds, fId, LabelNumbers, NotifyFlag);
                    }
                }
            }
            else
            {//more than one order
                //get the list of orderIds
                List <string> orderIds = OrderIds.Split(',').ToList();
                //bulk print
                List <string> labelNumbers = LabelNumbers.Split(',').ToList();

                //foreach (string id in orderIds)
                for (var i = 0; i < orderIds.Count; i++)
                {//loop through orderIds list and fulfill/update fulfillment as per required
                    ShopifyAPI newApi       = new ShopifyAPI();
                    string     fulfillments = await newApi.GetFulfillment(ShopUrl, token, orderIds[i]);

                    if (fulfillments == "")
                    {//if not fulfilled yet, fulfill it
                        string fulfillmentId = await newApi.NewFulfillment(ShopUrl, token, orderIds[i], labelNumbers[i], NotifyFlag);

                        //string fulfillmentId = await newApi.NewFulfillment(ShopUrl, token, id, LabelNumbers);
                    }
                    else if (!fulfillments.Contains(","))
                    {//if fulfilled, update tracking information
                        string fulfillmentId = await newApi.UpdateFulfillment(ShopUrl, token, orderIds[i], fulfillments, labelNumbers[i], NotifyFlag);
                    }
                    else
                    {
                        List <string> fulfillmentIds = fulfillments.Split(',').ToList();
                        foreach (string fId in fulfillmentIds)
                        {
                            string fulfillmentId = await newApi.UpdateFulfillment(ShopUrl, token, orderIds[i], fId, labelNumbers[i], NotifyFlag);
                        }
                    }
                }
            }

            Response.Write("<input id='shopUrl' type='hidden'  value='" + ShopUrl + "'>");//passing shopUrl to View() for further queries
            return(View());
        }
예제 #30
0
 public BsonValue Execute(DbEngine engine, StringScanner s)
 {
     return(BsonValue.Null);
 }
예제 #31
0
        public OperationProtocolForm(OperationClass operationInfo, PatientClass patientInfo, DbEngine dbEngine)
        {
            _stopSaveParameters = true;

            InitializeComponent();

            _dbEngine      = dbEngine;
            _operationInfo = operationInfo;
            _patientInfo   = patientInfo;
        }
예제 #32
0
 public BsonValue Execute(DbEngine engine, StringScanner s)
 {
     return(engine.Shrink());
 }
예제 #33
0
 public NameOnlyOption(string name, DbEngine engine) : base(name, engine)
 {
 }
예제 #34
0
        public void DropDatabase()
        {
            var engine = new DbEngine();

            engine.DropDatabase();
        }
예제 #35
0
 /// <summary>
 /// Read collection name from db.(colname).(command)
 /// </summary>
 public string ReadCollection(DbEngine db, StringScanner s)
 {
     return(s.Scan(@"db\.([\w-]+)\.\w+\s*", 1));
 }
예제 #36
0
        /// <summary>
        /// Authorise method
        ///     Process returned authorisation sync from Shopify, get the updated accessToken
        ///     Check and add or update accessToken/install status if required
        /// </summary>
        /// <param name="shop">shop Url</param>
        /// <param name="code">authorisation code</param>
        /// <param name="state">authorisation state</param>
        /// <returns></returns>
        public async Task <ActionResult> Authorise(string shop, string code, string state)
        {
            //Get updating accessToken to Shopify Store
            string accessToken = await AuthorizationService.Authorize(code, shop, apiKey, secretKey);

            DbEngine DBConnection = new DbEngine();

            if (DBConnection.ExistingShop(shop))                                //Check if shop has installed the app
            {
                if (DBConnection.GetIntergerValues(shop, "AppInstalled") == 0)  //App previously uninstalled
                {
                    DBConnection.UpdateIntergerValues(shop, "AppInstalled", 1); //reset indicator
                    var service = new WebhookService(shop, accessToken);
                    var hook    = new Webhook()
                    {
                        Address   = appUrl + "Shopify/Uninstalled?shopUrl=" + shop,
                        CreatedAt = DateTime.Now,
                        Format    = "json",
                        Topic     = "app/uninstalled"
                    };

                    try
                    {
                        hook = await service.CreateAsync(hook);
                    }
                    catch (ShopifyException e)
                    {
                        throw e;
                    }
                }

                string currentToken = DBConnection.GetStringValues(shop, "ShopifyToken");
                if (currentToken != accessToken) //check and update Shopify Token
                {
                    DBConnection.UpdateStringValues(shop, "ShopifyToken", accessToken);
                }
            }
            else
            {//initiat a webhook to manage uninstalls
                DBConnection.InsertNewShop(shop, accessToken);
                var service = new WebhookService(shop, accessToken);
                var hook    = new Webhook()
                {
                    Address   = appUrl + "Shopify/Uninstalled?shopUrl=" + shop,
                    CreatedAt = DateTime.Now,
                    Format    = "json",
                    Topic     = "app/uninstalled"
                };

                try
                {
                    hook = await service.CreateAsync(hook);
                } catch (ShopifyException e)
                {
                    throw e;
                }
            }

            //Redirect to Home/Index with parameter
            return(RedirectToAction("Installed", "Home", new { shopUrl = shop }));
        }
예제 #37
0
 public AbstractDropConstraintWriter(StringBuilder builder, DbEngine engine, IDatabaseTools tools)
     : base(builder, engine)
 {
     _tools = tools;
 }
        public JsonResult LabelQuery(string ShopUrl, string Address1, string Address2, string Suburb, string Postcode, string Region, float Weight, string Type)
        {
            //DB connection to query store details
            DbEngine newDB = new DbEngine();
            //get store details with provided url
            StoreRecord storeDetails = newDB.GetShopRecord(ShopUrl);
            //Labeldetails entity to query
            Labeldetails label = new Labeldetails();

            //populate store details for query
            label.apiKey       = storeDetails.FastwayApiKey;
            label.fromAddress1 = storeDetails.StoreAddress1;
            label.fromCity     = storeDetails.Suburb;
            label.fromPostcode = storeDetails.Postcode;
            //populate delivery details for query
            label.toAddress1 = Address1;
            label.toAddress2 = Address2;
            label.toCity     = Suburb;
            label.toPostcode = Postcode;
            //populate parcel details for query
            label.weight      = (double)Weight;
            label.countryCode = storeDetails.CountryCode;
            //FastwayAPI object for service query
            FastwayAPI newApiCall = new FastwayAPI();
            //Call fastway API and receive back a list of available service
            List <UsableLabel> services = newApiCall.ServiceQuery(label);
            //UsableLabel entity to respond
            UsableLabel service = new UsableLabel();

            try
            {
                if (services.First().CostexgstTotalChargeToEndUser != 0)
                {         //if no service found
                    if (services.Count == 1 && Type != "Parcel")
                    {     //no service and type was "Parcel"
                        return(Json(new
                        { //return an Error code
                            Error = "No Service Available"
                        }));
                    }
                    else//service(s) available
                    {
                        if (Type == "Parcel")
                        {//type was "Parcel", assign parcel option to response json
                            service = services.First();
                        }
                        else
                        {//type was NOT "Parcel", get service based on value of Type
                            if (Type == "SAT-NAT-A3")
                            {
                                if (services.First().BaseLabelColour == "BROWN")
                                {
                                    service = services[services.FindIndex(a => a.BaseLabelColour == "SAT-LOC-A3")];
                                }
                                else
                                {
                                    service = services[services.FindIndex(a => a.BaseLabelColour == Type)];
                                }
                            }
                            else
                            {
                                service = services[services.FindIndex(a => a.BaseLabelColour == Type)];
                            }
                        }
                        return(Json(new
                        {//return details about availabel service
                            BaseLabelColour = service.BaseLabelColour,
                            TotalCost = service.CostexgstTotalChargeToEndUser,
                            Rural = service.RuralLabelCostExgst > 0 ? true : false,
                            Excess = service.ExcessLabelCount,
                            Saturday = services.First().Saturday
                        }));
                    }
                }
                else
                {
                    return(Json(new
                    {//Error code from Fastway NOTE: will need to handle different type of error HERE
                        Error = "No Service Available"
                    }));
                }
            }
            catch (Exception e)
            {
                //general error code Note: will need to handle these
                throw e;
            }
        }
예제 #39
0
 public DbSpecificOption(string name, DbEngine engine)
 {
     Name   = name;
     Engine = engine;
 }
예제 #40
0
        public void ShowData()
        {
            DbEngine engineworker = new DbEngine();
            Airport  airport      = engineworker.GetAirportData(CityCode);

            HumidityBlovkLabel.Text = airport.Humidity.ToString();

            HumidityConditionGeneralLabel.Text = "Υγρασία " + airport.Humidity.ToString();

            string outputTemperature = airport.Temperature.ToString().Split(new char[] { '(', ')' })[1];

            outputTemperature = outputTemperature.Substring(0, 2);
            TemperatureConditionGeneralLabel.Text = "Θερμοκρασία " + outputTemperature + "°C";
            TemperatureBlockLabel.Text            = outputTemperature + "°C";;

            WindConditionGeneralLabel.Text     = "Άνεμος " + airport.Wind;
            PressureConditionGeneralLabel.Text = "Ατμοσφαιρική Πίεση " + airport.Pressure.Substring(1, 12);

            if (airport.Visibility == " greater than 7 mile(s):0")
            {
                VisibilityConditionGeneralLabel.Text = "Ορατότητα Μεγαλύτερη απο 7 Ν. Μίλια";
            }
            else
            {
                VisibilityConditionGeneralLabel.Text = "Ορατότητα " + airport.Visibility;
            }

            int index = airport.DateTime.IndexOf('/');

            UpdateLabel.Text = "Ενημερώθηκε " + airport.DateTime.Substring(index + 1);

            switch (airport.WeatherCondition.ToString())
            {
            case " partly cloudy":
            {
                WeatherConditionLabel.Source      = MultimediaLoad.LoadPngImage("WeatherConditions/Status-weather-clouds-icon");
                WeatherConditionSub.Text          = "Λίγα Σύννεφα";
                WeatherConditionGeneralLabel.Text = "Καιρικές Συνθήκες " + WeatherConditionSub.Text;
            } break;

            case " mostly cloudy":
            {
                WeatherConditionLabel.Source      = MultimediaLoad.LoadPngImage("WeatherConditions/Status-weather-many-clouds-icon");
                WeatherConditionSub.Text          = "Συννεφιά";
                WeatherConditionGeneralLabel.Text = "Καιρικές Συνθήκες " + WeatherConditionSub.Text;
            } break;

            case " mostly clear":
            {
                WeatherConditionLabel.Source      = MultimediaLoad.LoadPngImage("WeatherConditions/Status-weather-clear-icon");
                WeatherConditionSub.Text          = "Καθαρός";
                WeatherConditionGeneralLabel.Text = "Καιρικές Συνθήκες " + WeatherConditionSub.Text;
            } break;

            case "NaN":
            {
                WeatherConditionSub.Text          = "Server Error";
                WeatherConditionGeneralLabel.Text = "Καιρικές Συνθήκες " + WeatherConditionSub.Text;
                MessageBox.Show("Ο Server Δεν επέστρεψε πλήρεις πληροφορίες για τις καιρικές συνθήκες στην περιοχή.");
            } break;
            }
        }
예제 #41
0
        /// <summary>
        /// 上传数据
        /// </summary>
        /// <param name="state">异步状态同步变量</param>
        public void UploadTable(object state)
        {
            List <string> tableName = GetTableToBeUploaded();
            List <Model.TableModel.Sys_tbl_operate_record> recordToBeAdded = new List <Model.TableModel.Sys_tbl_operate_record>();

            try
            {
                foreach (var item in tableName)
                {
                    string        sql          = string.Format("select * from {0}", item);
                    DataTable     dtData       = AccessDbEngine.QueryTable(sql);
                    StringBuilder idToBeDelete = new StringBuilder();
                    idToBeDelete.Append("'");
                    if (dtData != null && dtData.Rows.Count > 0)
                    {
                        bool      containId   = true;
                        DataTable dtToBeAdded = dtData.Clone();
                        dtToBeAdded.Clear();
                        foreach (DataColumn dc in dtData.Columns)
                        {
                            if (dc.ColumnName.ToLower() == "id")
                            {
                                containId = true;
                                break;
                            }
                            containId = false;
                        }
                        foreach (DataRow dr in dtData.Rows)
                        {
                            Model.TableModel.Sys_tbl_operate_record model = new Model.TableModel.Sys_tbl_operate_record();
                            string currentId = string.Empty;
                            if (!containId)
                            {
                                currentId = CreateIdByRow(dr);
                            }
                            else
                            {
                                currentId = (dr["id"] ?? "UNKNOWN").ToString();
                            }
                            if (AlreadyOpreate(currentId, "upload"))
                            {
                                continue;
                            }
                            model.id               = currentId;
                            model.status_name      = "已确认";
                            model.status_no        = "310";
                            model.tbl_name         = item;
                            model.tbl_operate_time = DateTime.Now;
                            model.tbl_oprate_type  = "upload";
                            recordToBeAdded.Add(model);
                            dtToBeAdded.Rows.Add(dr);
                            idToBeDelete.Append(currentId);
                            idToBeDelete.Append("','");
                        }
                        if (idToBeDelete.Length > 2)
                        {
                            idToBeDelete.Remove(idToBeDelete.Length - 2, 2);
                        }
                        string sqlDelete = string.Format("delete from {0} where id in ({1})", item, idToBeDelete);
                        DbEngine.QueryInt <Model.TableModel.Sys_tbl_operate_record>("Insert", recordToBeAdded);
                        recordToBeAdded.Clear();
                        DbEngine.InsertBulk(item, dtToBeAdded);
                    }
                }
                GC.Collect(1);
                state = true;
            }
            catch (Exception ex)
            {
                throw ex;
                //state = false;
            }
        }
        public JsonResult MultiLabelPrinting(string ShopUrl, string Instruction, float Weight, string Labels, string Reference, string FullDetails)
        {
            //DB connection to query store details
            DbEngine newDB = new DbEngine();
            //get store details with provided url
            StoreRecord storeDetails = newDB.GetShopRecord(ShopUrl);
            //Labeldetails entity to query
            Labeldetails label = new Labeldetails();

            ///populate store details for query
            label.apiKey      = storeDetails.FastwayApiKey;
            label.fromCompany = storeDetails.StoreName;

            if (storeDetails.Phone != "" && storeDetails.Phone != null && storeDetails.Phone != "null")
            {
                label.fromPhone = storeDetails.Phone;
            }
            label.fromAddress1        = storeDetails.StoreAddress1;
            label.fromCity            = storeDetails.Suburb;
            label.fromPostcode        = storeDetails.Postcode;
            label.weight              = Math.Ceiling(Weight * 100) / 100;
            label.specialInstruction1 = Instruction;
            label.countryCode         = storeDetails.CountryCode;

            //parsing the labels addresses details
            JArray ls  = JArray.Parse(Labels);
            JArray fds = JArray.Parse(FullDetails);

            List <string> references = Reference.Split(',').ToList();

            List <Labeldetails> labelDetails = new List <Labeldetails>();

            for (var i = 0; i < ls.Count; i++)
            {
                if (ls[i]["BaseLabel"].ToString() != "")
                {
                    Labeldetails l = label;
                    if (ls[i]["Company"].ToString() != "" && ls[i]["Company"].ToString() != null && ls[i]["Company"].ToString() != "null")
                    {
                        l.toCompany     = ls[i]["Company"].ToString();
                        l.toContactName = ls[i]["Name"].ToString();
                    }
                    else
                    {
                        l.toCompany = ls[i]["Name"].ToString();
                    }

                    if (references.Count > 0)
                    {
                        l.reference = references[i];
                    }

                    l.toAddress1 = ls[i]["Address1"].ToString();
                    l.toAddress2 = ls[i]["Address2"].ToString();
                    l.toPostcode = ls[i]["Postcode"].ToString();
                    l.toCity     = ls[i]["Suburb"].ToString();

                    l.labelColour = ls[i]["Service"].ToString();
                    l.labelNumber = ls[i]["BaseLabel"].ToString();
                    l.ruralNumber = ls[i]["RuralLabel"].ToString();

                    l.toRfName = ls[i]["Destination"].ToString();

                    labelDetails.Add(l);
                }
            }

            try
            {
                PdfDocument doc = new PdfDocument();
                if (labelDetails.Count > 0)
                {
                    FastwayAPI getBase = new FastwayAPI();
                    doc = getBase.PrintMultipleLabels(labelDetails, doc);
                }

                MemoryStream pdfStream = new MemoryStream();
                doc.Save(pdfStream, false);
                byte[] pdfBytes = pdfStream.ToArray();

                var pdfString = Convert.ToBase64String(pdfBytes);


                return(Json(new
                {//return status success
                    PdfBase64Stream = pdfString
                }));
            }
            catch (Exception e)
            {     //error
                return(Json(new
                { //return status success
                    Error = e.Message
                }));
            }
        }
예제 #43
0
파일: Indexes.cs 프로젝트: shahid-pk/LiteDB
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);

            return(new BsonArray(engine.GetIndexes(col).Select(x => x.AsDocument)));
        }
예제 #44
0
파일: Drop.cs 프로젝트: shahid-pk/LiteDB
        public BsonValue Execute(DbEngine engine, StringScanner s)
        {
            var col = this.ReadCollection(engine, s);

            return(engine.DropCollection(col));
        }
        /// <summary>
        /// NewConsignment controller
        /// Based on the specified order IDs by Shopify, write required variables
        /// to front-end in hidden inputs for further queries
        /// Used for both single or multiple orders
        /// Filter out international orders
        /// </summary>
        public async Task <ActionResult> NewConsignment(string shop, string[] ids, string id)
        {
            //Get order numbers
            string orders;

            if (id != null)
            {
                orders = id;
            }
            else
            {
                orders = Request.QueryString["ids[]"];
                if (orders == null)
                {
                    orders = Request.QueryString["ids[][]"];
                }
            }


            //required objects
            List <string> orderIds                      = new List <string>();               //list of orderIds
            List <string> processingOrderIds            = new List <string>();               //list of orderIds
            List <string> processingOrderPreferences    = new List <string>();               //list of orderIds
            List <Order>  orderDetails                  = new List <Order>();                //list of order details
            List <ShopifySharp.Address> deliveryAddress = new List <ShopifySharp.Address>(); //list of delivery details
            List <string> emails = new List <string>();                                      //list of emails addresses

            if (orders == null || orders == "")                                              //No order select (in case customer reach this page from outside of their admin page
            {
                return(View());                                                              //NOTE: might need to redirect them to their admin page
            }

            if (orders.Contains(','))//if there are more than one order
            {
                //get a list of order numbers received
                orderIds = orders.Split(',').ToList();
            }
            else
            {
                //get a list of ONE order number
                orderIds.Add(orders);
            }
            //DB connection required to query store details
            DbEngine conn = new DbEngine();
            //Get Shopify Token to access Shopify API
            string token = conn.GetStringValues(shop, "ShopifyToken");
            int    cCode = conn.GetIntergerValues(shop, "CountryCode");
            List <CustomParcel> lCustomParcels = conn.GetCustomParcel(shop);
            //ShopifyAPI object
            ShopifyAPI api = new ShopifyAPI();

            //foreach order number from list, get a list of delivery details
            for (int i = 0; i < orderIds.Count; i++)
            {
                //get the order with order number
                Order k = await api.GetOrder(shop, token, orderIds[i]);

                if (k.ShippingAddress != null)
                {//if shipping address exist, add to list of delivery details
                    bool check = true;
                    //check if order is international
                    switch (cCode)
                    {
                    case 6:
                        if (k.ShippingAddress.Country != "New Zealand")
                        {
                            check = false;
                        }
                        break;

                    case 1:
                        if (k.ShippingAddress.Country != "Australia")
                        {
                            check = false;
                        }
                        break;
                    }
                    //check if duplicate addresses
                    if (deliveryAddress.Count > 0)
                    {
                        for (var l = 0; l < deliveryAddress.Count; l++)
                        {
                            if (deliveryAddress[l].Name == k.ShippingAddress.Name)
                            {
                                check = false;
                                break;
                            }
                        }
                    }
                    if (check == true)
                    {
                        deliveryAddress.Add(k.ShippingAddress);
                        emails.Add(k.Email);
                        processingOrderIds.Add(orderIds[i]);
                        processingOrderPreferences.Add(k.OrderNumber.ToString());
                    }
                }
                orderDetails.Add(k);//add order details into list of order details
            }

            ////jsonserialiser object to form json from list
            JavaScriptSerializer jsonSerialiser = new JavaScriptSerializer();
            ////creating json about orders to pass back to View()
            //string orderJson = jsonSerialiser.Serialize(orderDetails);
            string stringCP = jsonSerialiser.Serialize(lCustomParcels);

            string stringOrderReference = string.Join(",", processingOrderPreferences);


            //Forming data to pass back
            string address     = "";
            string note        = "";
            string addresses   = "";
            string strOrderIds = "";

            if (deliveryAddress.Count == 0)
            {//No delivery address found
                address = "NoAddress";
            }
            else if (deliveryAddress.Count > 1)
            {//More than one addresses found
                address     = "MoreThanOne";
                addresses   = jsonSerialiser.Serialize(deliveryAddress);
                strOrderIds = string.Join(",", processingOrderIds);
            }
            else
            {//one address
                address = jsonSerialiser.Serialize(deliveryAddress[0]);
                switch (cCode)
                {
                case 6:
                    if (deliveryAddress[0].Country != "New Zealand")
                    {
                        address = "International";
                    }
                    break;

                case 1:
                    if (deliveryAddress[0].Country != "Australia")
                    {
                        address = "International";
                    }
                    break;
                }
                for (int i = 0; i < orderDetails.Count; i++)
                {
                    if (orderDetails[i].Note != "")
                    {
                        note += orderDetails[i].Note;
                    }
                }
            }


            Response.Write("<input id='shopUrl' type='hidden' value='" + shop + "'>");                        //passing shopUrl to View() for further queries
            Response.Write("<input id='cpStrings' type='hidden' value='" + stringCP + "'>");                  //passing Custom Parcels if any to View() for further queries
            Response.Write("<input id='orderReference' type='hidden' value='" + stringOrderReference + "'>"); //passing order reference number if any to View() for further queries
            Response.Write("<input id='countryCode' type='hidden' value='" + cCode + "'>");                   //passing countryCode to View() for further queries
            Response.Write("<input id='orderDetails' type='hidden' value='" + orders + "'>");                 //passing orderIds to View() for further queries
            Response.Write("<input id='deliveryAddress' type='hidden' value='" + address + "'>");             //passing address to View() for further queries
            Response.Write("<input id='ordersAddresses' type='hidden' value='" + addresses + "'>");           //passing ordersdetails to View() for further queries
            Response.Write("<input id='orderIds' type='hidden' value='" + strOrderIds + "'>");                //passing ordersdetails to View() for further queries
            if (emails.Count >= 1)
            {
                Response.Write("<input id='emailAddress' type='hidden' value='" + string.Join(",", emails) + "'>");                   //passing email address
            }
            if (note != "")
            {
                Response.Write("<input id='specialInstruction' type='hidden' value='" + note + "'>");
            }
            return(View());
        }
예제 #46
0
 public void AddSpecific(DbEngine engine, string definition)
 {
     definition.MustNotBeEmpty();
     _added.Add(new Tuple <DbEngine, string>(engine, definition));
 }
예제 #47
0
 protected AbstractUniqueKeyWriter(StringBuilder builder, DbEngine engine) : base(builder, engine)
 {
 }
예제 #48
0
 public ExcelReportGeneratorManager(ILoggerFactory loggerFactory, DbEngine dbEngine, string connectionString)
 {
     _loggerFactory = loggerFactory;
     _logger        = _loggerFactory.CreateLogger <ExcelReportGeneratorManager>();
     _extractor     = new SimpleDbExtractor(_loggerFactory, dbEngine, connectionString);
 }
        public JsonResult MultiLabelQuery(string ShopUrl, string Address1, string Address2, string Suburb, string Postcode, float Weight, string Instruction, string Type)
        {
            //DB connection to query store details
            DbEngine newDB = new DbEngine();
            //get store details with provided url
            StoreRecord storeDetails = newDB.GetShopRecord(ShopUrl);
            //Labeldetails entity to query
            Labeldetails label = new Labeldetails();

            //populate store details for query
            label.apiKey       = storeDetails.FastwayApiKey;
            label.fromAddress1 = storeDetails.StoreAddress1;
            label.fromCity     = storeDetails.Suburb;
            label.fromPostcode = storeDetails.Postcode;
            //populate delivery details for query
            label.toAddress1 = Address1;
            label.toAddress2 = Address2;
            label.toCity     = Suburb;
            label.toPostcode = Postcode;
            //populate parcel details for query
            label.weight      = (double)Weight;
            label.countryCode = storeDetails.CountryCode;

            List <string> labelNumbers = new List <string>();
            string        destRF       = "";

            try
            {
                if (Type != "Parcel")
                {
                    if (Weight > 5)
                    {
                        labelNumbers.Add("No Service Found");
                    }
                    else
                    {
                        label.specialInstruction1 = Instruction;

                        //new fastwayAPI object to query
                        FastwayAPI getLabel = new FastwayAPI();
                        //get label with V2 method
                        Labeldetails l = new Labeldetails();

                        if (Type == "SAT-NAT-A3")
                        {
                            List <UsableLabel> services = getLabel.ServiceQuery(label);
                            if (services.First().BaseLabelColour == "BROWN")
                            {
                                label.labelColour = services[services.FindIndex(a => a.BaseLabelColour == "SAT-LOC-A3")].BaseLabelColour;
                            }
                            else
                            {
                                label.labelColour = Type;
                            }
                        }
                        else
                        {
                            label.labelColour = Type;
                        }
                        l = getLabel.LabelQueryV2(label);
                        labelNumbers.Add(l.labelNumber);
                        labelNumbers.Add(l.ruralNumber);
                        destRF = l.toRfName;
                    }
                }
                else
                {
                    //new fastwayAPI object to query
                    FastwayAPI getLabel = new FastwayAPI();
                    //get label with V2 method
                    Labeldetails       l        = new Labeldetails();
                    List <UsableLabel> services = getLabel.ServiceQuery(label);
                    label.labelColour = services.First().BaseLabelColour;
                    l = getLabel.LabelQueryV2(label);
                    labelNumbers.Add(l.labelNumber);
                    labelNumbers.Add(l.ruralNumber);
                    destRF = l.toRfName;
                }
            }
            catch (Exception)
            {
                labelNumbers.Add("No Service Found");
            }
            return(Json(new
            {//return details about availabel service
                BaseLabel = labelNumbers[0],
                RuralLabel = labelNumbers[1],
                Service = label.labelColour,
                DestRF = destRF
            }));
        }
예제 #50
0
 public SqlServerColumnWriter(StringBuilder builder, DbEngine engine) : base(builder, engine)
 {
 }
예제 #51
0
 public CommonDbManager(DbEngine dbEngine, ILogger <CommonDbManager> logger)
 {
     _dbEngine = dbEngine;
     _logger   = logger;
 }
예제 #52
0
 public IModifyIndexes WithOptionsForDatabase(DbEngine engine, params DbSpecificOption[] options)
 {
     _current.Options.AddRange(options);
     return(this);
 }
예제 #53
0
 public IEnumerable <string> GetSpecificIndexes(DbEngine engine)
 {
     return(_added.FindAll(d => d.Item1 == engine).Select(d => d.Item2));
 }
예제 #54
0
 public IDefineSpecificIndexOptions IfDatabaseIs(DbEngine engine)
 {
     _engine = engine;
     return(this);
 }
예제 #55
0
 public SqlServerForeignKeyWriter(StringBuilder builder, DbEngine engine)
     : base(builder, engine)
 {
 }
예제 #56
0
 public IDefineSpecificIndexOptions AddCustom(DbEngine engine, string definition)
 {
     Schema.AddSpecific(engine, definition);
     return(this);
 }
예제 #57
0
파일: DbAccess.cs 프로젝트: snielsson/SqlFu
 public DbAccess(string cnxString, DbEngine provider)
 {
     Init(cnxString, ProviderFactory.GetProvider(provider));
 }
        public JsonResult LabelPrintingV2(string ShopUrl, string DeliveryDetails, string PackagingDetails, bool Saturday)
        {
            //labeldetails object to call Fastway API
            Labeldetails label = new Labeldetails();
            //DB connection to query sender details
            DbEngine conn = new DbEngine();

            label.apiKey = conn.GetStringValues(ShopUrl, "FastwayApiKey");
            //assign sender details
            label.fromAddress1 = conn.GetStringValues(ShopUrl, "StoreAddress1");
            label.fromPostcode = conn.GetStringValues(ShopUrl, "Postcode");
            label.fromCity     = conn.GetStringValues(ShopUrl, "Suburb");
            label.fromCompany  = conn.GetStringValues(ShopUrl, "StoreName");
            label.countryCode  = conn.GetIntergerValues(ShopUrl, "CountryCode");
            label.fromPhone    = conn.GetStringValues(ShopUrl, "Phone");

            //parse delivery details
            JObject d = JObject.Parse(DeliveryDetails);

            //assign receiver details
            label.toAddress1 = d["Address1"].ToString();
            label.toAddress2 = d["Address2"].ToString();
            label.toPostcode = d["Postcode"].ToString();
            label.toCity     = d["Suburb"].ToString();

            label.specialInstruction1 = d["SpecialInstruction1"].ToString();

            if (d["Company"].ToString() != "" && d["Company"].ToString() != "null" && d["Company"].ToString() != null)
            {
                label.toCompany     = d["Company"].ToString();
                label.toContactName = d["ContactName"].ToString();
            }
            else
            {
                label.toCompany = d["ContactName"].ToString();
            }

            label.toContactPhone = d["ContactPhone"].ToString();
            //pull through email address for expect messaging
            label.toEmail = d["ContactEmail"].ToString();

            //parse packaging details
            JArray p = JArray.Parse(PackagingDetails);
            //list of labelDetails that hold the labels being used
            List <Labeldetails> labelDetails = new List <Labeldetails>();
            List <string>       labelNumbers = new List <string>();



            for (int i = 0; i < p.Count; i++)
            {
                for (int j = 0; j < (int)p[i]["Items"]; j++)
                {
                    //package details
                    label.weight      = (double)p[i]["Weight"];
                    label.labelColour = p[i]["BaseLabel"].ToString();
                    label.reference   = p[i]["Reference"].ToString();
                    label.saturday    = Saturday;

                    //new fastwayAPI object to query
                    FastwayAPI getLabel = new FastwayAPI();
                    //get label with V2 method
                    Labeldetails l = new Labeldetails();
                    l = getLabel.LabelQueryV2(label);
                    labelDetails.Add(l);
                    labelNumbers.Add(l.labelNumber);
                }
            }

            PdfDocument doc = new PdfDocument();

            if (labelDetails.Count > 0)
            {
                FastwayAPI getBase = new FastwayAPI();
                doc = getBase.PrintLabels(labelDetails, doc);
            }

            MemoryStream pdfStream = new MemoryStream();

            doc.Save(pdfStream, false);
            byte[] pdfBytes = pdfStream.ToArray();

            var pdfString = Convert.ToBase64String(pdfBytes);

            try
            {
                return(Json(new
                {//return status success
                    Labels = String.Join(",", labelNumbers),
                    PdfBase64Stream = pdfString
                }));
            }
            catch (Exception e)
            {//error
                throw e;
            }
        }
예제 #59
0
 protected AbstractConstraintWriter(StringBuilder builder, DbEngine engine) : base(builder, engine)
 {
 }
예제 #60
0
        public object BuildData(IDbConnection conn, IDbTransaction transaction, DbEngine engine, Int16 serverId, string database, string schema, TableMetadata table, ColumnDefinition column)
        {
            var size = column.SqlType.Precision != 0 ? column.SqlType.Precision : 10;

            return(KeyGenerator.GetUniqueKey(size));
        }