Esempio n. 1
0
        private void CreateActivity()
        {
            var startString = EditableString.Input("Activity start", null).Value;

            if (!DateTime.TryParse(startString, out var start))
            {
                Console.WriteLine("Wrong date format, aborting!");
                return;
            }

            var endString = EditableString.Input("Activity end", null).Value;

            if (!DateTime.TryParse(endString, out var end) || end < start)
            {
                Console.WriteLine("Wrong activity end time, aborting!");
                return;
            }

            var activity = new Activity
            {
                Start  = start,
                End    = end,
                Source = Source.Manual,
                Value  = EditableString.Input("Activity name", "Manual Activity").Value
            };

            _data.Activities.Add(activity);
        }
        public bool Create(string context, int?idx, string langCode, string value, string orgValue)
        {
            // start transaction
            try
            {
                beginDbTransaction();

                int key = EditableString.GetKey(context, orgValue, idx);
                storeNewPersistentString(key, context, idx, value, orgValue, langCode);

                commitDbTransaction();
            }
            catch (Exception ex)
            {
                logError("Error creating ES", ex);
                rollbackDbTransaction();
                return(false);
            }
            finally
            {
                disposeDbTransaction();
            }
            // remove conext from cache
            if (!string.IsNullOrWhiteSpace(context))
            {
                string cacheKey = getCacheContextKey(langCode, context);
                cacheService.Remove(cacheKey);
            }
            return(true);
        }
Esempio n. 3
0
        private void DetectActivity()
        {
            var lats    = _data.Latitudes.OrderByDescending(a => a.Key).ToList();
            var actEnd  = DateTime.Now;
            var prevLat = actEnd;

            for (int i = 0; i < lats.Count; i++)
            {
                var curLat = lats[i].Key;

                if (i == 0)
                {
                    actEnd  = curLat;
                    prevLat = curLat;
                    continue;
                }

                if (curLat.AddMinutes(5) > prevLat)
                {
                    prevLat = curLat;
                    continue;
                }

                var activity = new Activity
                {
                    End    = actEnd,
                    Start  = curLat,
                    Source = Source.Other,
                    Value  = "Detected"
                };

                if (EditableString
                    .Input($"Activity {activity.Start} - {actEnd} detected, add to Activities? [yes]/no", "yes")
                    .Value == "yes")
                {
                    _data.Activities.Add(activity);
                    if (lats.Count > i)
                    {
                        actEnd  = lats[i + 1].Key;
                        prevLat = actEnd;
                    }
                }

                if (EditableString
                    .Input("Detect next? yes/[no]", "no")
                    .Value == "no")
                {
                    return;
                }
            }
        }
Esempio n. 4
0
    public string GetValue(string key)
    {
        int leng = instance.globalString.Count;

        for (int i = 0; i < leng; i++)
        {
            if (instance.globalString [i].key.ToLower() == key.ToLower())
            {
                return(instance.globalString [i].value);
            }
        }
        EditableString newES = new EditableString();

        newES.key = key;
        instance.globalString.Add(newES);
        return(newES.value);
    }
Esempio n. 5
0
        static void Main(string[] args)
        {
            var config = Loader.Load() ?? new Config();

            var path = new EditableString
            {
                Value = config.LastPath ?? string.Empty
            };

            path.Input("Enter path to data");

            config.LastPath = path.Value;
            Loader.Save(config);

            var logic = new CommandLineLogic(config, path.Value);

            logic.Run();
        }
        public virtual EditableString GetString(string context, string t, int?idx)
        {
            var curUICulture = System.Threading.Thread.CurrentThread.CurrentUICulture;
            var langCode     = curUICulture.TwoLetterISOLanguageName;
            // we are caching by contexts and language
            string cacheKey         = getCacheContextKey(langCode, context);
            var    stringsInContext = cacheService.Get(cacheKey, -1,
                                                       () =>
            {
                var inContext = getDbQuery().Where(x => x.ESContext == context && x.ESLanguageCode == langCode).ToList();
                return(toEditableStringList(inContext).ToDictionary(x => x.Key));
            });

            int key = EditableString.GetKey(context, t, idx);
            // find key in our (possibly cached) list
            EditableString found = null;

            if (stringsInContext.TryGetValue(key, out found))
            {
                return(found);
            }
            return(null);
        }
        public virtual int RecalcKeys()
        {
            int updatedCount = 0;

            try
            {
                beginDbTransaction();

                var existingData = getDbQuery().ToList();
                foreach (var es in existingData)
                {
                    es.ESKey = EditableString.GetKey(es.ESContext, es.ESOriginalValue, es.ESIndex);
                    updatePersistentString(es);
                    updatedCount++;
                }

                commitDbTransaction();
            }
            catch (Exception ex)
            {
                logError("Error updating keys", ex);
                rollbackDbTransaction();
                updatedCount = -1;
            }
            finally
            {
                disposeDbTransaction();
            }

            // remove from cache
            if (updatedCount > 0)
            {
                cacheService.RemoveByPattern(CACHE_PER_LANG_CONTEXT_KEY);
            }

            return(updatedCount);
        }