예제 #1
0
 /// <summary>
 /// Refreshs the entity instance from the database.
 /// </summary>
 ///
 /// <param name="userContext">
 /// User context.
 /// </param>
 ///
 /// <param name="appSettings">
 /// Entity to refresh (must be in database).
 /// </param>
 public void Refresh(IUserContext userContext, ref VahapYigit.Test.Models.Translation entity)
 {
     using (var et = new ExecutionTracerService())
         using (var db = new TranslationCrud(userContext))
         {
             db.Refresh(ref entity);
         }
 }
예제 #2
0
 /// <summary>
 /// Gets an entity given its unique ID.
 /// </summary>
 ///
 /// <param name="userContext">
 /// User context.
 /// </param>
 ///
 /// <param name="id">
 /// Unique ID.
 /// </param>
 ///
 /// <returns>
 /// The entity.
 /// </returns>
 public VahapYigit.Test.Models.Translation GetById(IUserContext userContext, long id)
 {
     using (var et = new ExecutionTracerService())
         using (var db = new TranslationCrud(userContext))
         {
             return(db.GetById(id));
         }
 }
예제 #3
0
 /// <summary>
 /// Deletes the entity given its unique ID.
 /// </summary>
 ///
 /// <param name="userContext">
 /// User context.
 /// </param>
 ///
 /// <param name="id">
 /// Unique ID.
 /// </param>
 ///
 /// <returns>
 /// The number of affected rows.
 /// </returns>
 public int Delete(IUserContext userContext, long id)
 {
     using (var et = new ExecutionTracerService())
         using (var db = new TranslationCrud(userContext))
         {
             return(db.Delete(id));
         }
 }
예제 #4
0
 /// <summary>
 /// Deletes the entity from the database.
 /// </summary>
 ///
 /// <param name="userContext">
 /// User context.
 /// </param>
 ///
 /// <param name="entity">
 /// Entity to delete.
 /// </param>
 ///
 /// <returns>
 /// The number of affected rows.
 /// </returns>
 public int Delete(IUserContext userContext, VahapYigit.Test.Models.Translation entity)
 {
     using (var et = new ExecutionTracerService())
         using (var db = new TranslationCrud(userContext))
         {
             return(db.Delete(entity));
         }
 }
예제 #5
0
 /// <summary>
 /// Saves (or updates) the entity in the database.
 /// </summary>
 ///
 /// <param name="userContext">
 /// User context.
 /// </param>
 ///
 /// <param name="entity">
 /// Entity to save or update.
 /// </param>
 ///
 /// <param name="options">
 /// Optional options.
 /// </param>
 ///
 /// <returns>
 /// The number of affected rows.
 /// </returns>
 public int Save(IUserContext userContext, ref VahapYigit.Test.Models.Translation entity, SaveOptions options = null)
 {
     using (var et = new ExecutionTracerService(tag: entity.State.ToString()))
         using (var db = new TranslationCrud(userContext))
         {
             return(db.Save(ref entity, options));
         }
 }
예제 #6
0
 /// <summary>
 /// Indicates whether the search returns at least 1 entity.
 /// </summary>
 ///
 /// <param name="userContext">
 /// User context.
 /// </param>
 ///
 /// <param name="options">
 /// Optional search options. If not defined, all records are returned.
 /// </param>
 ///
 /// <returns>
 /// True if the search returns at least 1 entity; otherwise, false.
 /// </returns>
 public bool HasResult(IUserContext userContext, SearchOptions options = null)
 {
     using (var et = new ExecutionTracerService())
         using (var db = new TranslationCrud(userContext))
         {
             return(db.HasResult(options));
         }
 }
예제 #7
0
 /// <summary>
 /// Gets entities with search options.
 /// </summary>
 ///
 /// <param name="userContext">
 /// User context.
 /// </param>
 ///
 /// <param name="options">
 /// Optional options, filters, orderby, paging, etc.
 /// </param>
 ///
 /// <returns>
 /// A collection of entities.
 /// </returns>
 public TCollection <VahapYigit.Test.Models.Translation> Search(IUserContext userContext, ref SearchOptions options)
 {
     using (var et = new ExecutionTracerService())
         using (var db = new TranslationCrud(userContext))
         {
             return(db.Search(ref options));
         }
 }
        public Translation Resolve(IUserContext userContext, TranslationEnum translationKey)
        {
            if (translationKey == TranslationEnum.None)             // special case
            {
                return(Translation.None);
            }

            using (var et = new ExecutionTracerService())
            {
                string key = translationKey.ToString();

                var translation = this.GetFromCache(key);
                if (translation == null)
                {
                    lock (_innerLocker)
                    {
                        translation = this.GetFromCache(key);
                        if (translation == null)
                        {
                            var options = new SearchOptions();

                            options.Filters.Add(Translation.ColumnNames.Key, FilterOperator.Equals, key);
                            options.MaxRecords = 1;

                            using (var db = new TranslationCrud(userContext))
                            {
                                translation = db.Search(ref options).FirstOrDefault();
                            }

                            if (translation != null)
                            {
                                _innerCacheService.Add(new CacheItem {
                                    Key = key, Data = translation
                                });
                            }
                        }
                    }
                }

                return(translation);
            }
        }