private ICollection <Template> TrySelectingByCriteria(Expression <Func <OpeningTemplateEntity, bool> > aCriteria)
        {
            ICollection <Template> elegibleUsers = new List <Template>();

            using (BlueBuilderDBContext context = new BlueBuilderDBContext())
            {
                MaterialAndEntityConverter         translator      = new MaterialAndEntityConverter();
                IQueryable <OpeningTemplateEntity> elegibleRecords = context.OpeningTemplates.Where(aCriteria);
                foreach (OpeningTemplateEntity record in elegibleRecords)
                {
                    elegibleUsers.Add(translator.EntityToOpeningTemplate(record));
                }
            }

            return(elegibleUsers);
        }
        private Template TrySelectFirstOrDefault(Expression <Func <OpeningTemplateEntity, bool> > aCondition)
        {
            Template firstToComply;

            using (BlueBuilderDBContext context = new BlueBuilderDBContext())
            {
                MaterialAndEntityConverter translator  = new MaterialAndEntityConverter();
                OpeningTemplateEntity      firstRecord = context.OpeningTemplates.FirstOrDefault(aCondition);

                if (firstRecord == null)
                {
                    throw new TemplateDoesNotExistException();
                }
                else
                {
                    firstToComply = translator.EntityToOpeningTemplate(firstRecord);
                }
            }

            return(firstToComply);
        }