예제 #1
0
 public CompleteWorkoutController(IMemberIdProvider memberIdProvider, IMemberService memberService, IMapper mapper, IPendingWorkoutService pendingWorkoutService, IModelViewFactory modelViewFactory, IDataModelFactory dataModelFactory)
 {
     this.memberIdProvider      = memberIdProvider ?? throw new ArgumentException("MemberIdProvider cannot be null");
     this.memberService         = memberService ?? throw new ArgumentException("memberService cannot be null");
     this.mapper                = mapper ?? throw new ArgumentException("mapper cannot be null");
     this.pendingWorkoutService = pendingWorkoutService ?? throw new ArgumentException("pendingWorkoutService cannot be null");
     this.modelViewFactory      = modelViewFactory ?? throw new ArgumentException("modelViewFactory cannot be null");
     this.dataModelFactory      = dataModelFactory ?? throw new ArgumentException("dataModelFactory cannot be null");
 }
예제 #2
0
        // public void CreateTableIfNotExists<T>(DataModelFactory<T> dataModelFactory) where T : DataModel
        public void CreateTableIfNotExists(IDataModelFactory dataModelFactory)
        {
            var sbQuery       = new StringBuilder();
            var sbQueryFKCode = new StringBuilder();

            sbQuery.AppendLine($"CREATE TABLE IF NOT EXISTS {dataModelFactory.TableName}(");
            sbQuery.AppendLine(dataModelFactory.Get_PrimaryKeyProperties().GetColumnCodeForCreateTable());

            for (int i = 0; i < dataModelFactory.DataModelColumnProperties.Count; i++)
            {
                var dmc = dataModelFactory.DataModelColumnProperties[i];
                if (!dmc.IsPrimaryKey)
                {
                    sbQuery.Append($", {dmc.GetColumnCodeForCreateTable()}");
                }
            }

            //CONTINUE FROM HERE

            /*
             * // var foreignKeys = dataModelFactory.DataModelColumnProperties.Where(dmc => !string.IsNullOrEmpty(dmc.ForeignTableName)).ToList();
             * var foreignKeys = dataModelFactory.DataModelColumnProperties.Where(dmc => dmc.IsForeignKey()).ToList();
             * for (int i = 0; i < foreignKeys.Count; i++)
             * {
             *  sbQuery.AppendLine(foreignKeys[i].GetForeignKeyCodeForCreateTable());
             * }
             */

            for (int i = 0; i < dataModelFactory.DataModelForeignKeyProperties.Count; i++)
            {
                sbQuery.Append($", {dataModelFactory.DataModelForeignKeyProperties[i].GetCreateForeignKeyColumnCode()}");
                sbQueryFKCode.Append($"{dataModelFactory.DataModelForeignKeyProperties[i].GetForeignKeyCodeForCreateTable()}");
            }

            sbQuery.AppendLine(sbQueryFKCode.ToString());
            sbQuery.Append(")");

            var query = sbQuery.ToString();

            try
            {
                using (var dbConnection = new SqliteConnection(Connection))
                {
                    dbConnection.Open();
                    using (var dbCmd = dbConnection.CreateCommand())
                    {
                        dbCmd.CommandText = query;
                        dbCmd.ExecuteScalar();
                    }
                    dbConnection.Close();
                }
            }
            catch (Exception ex)
            {
                LogSQLQueryErrorInDebugMode(query, ex);
            }
        }
        public HistoricDataGrabTask(ILogger logger, IContainer container, IDataArgs dataArgs)
        {
            _logger    = logger;
            _container = container;
            _dataArgs  = dataArgs;

            _securityDataRetriever = _container.Resolve <ISecurityDataRetriever>();
            _persistenceManager    = _container.Resolve <IPersistenceManager>();
            _dataModelFactory      = _container.Resolve <IDataModelFactory>();

            _logger.Information("HistoricDataGrabTask: Instantiation successful.");
        }
예제 #4
0
 public DataModelColumnProperties(string columnName, bool isUnique = false, bool isPrimaryKey   = false, bool isNullable     = true,
                                  IDataModelFactory foreignTable   = null, bool isAutoIncrement = false, object defaultValue = null)
 {
     this.ColumnName      = columnName;
     this.ColumnType      = TypeMap[typeof(T)];
     this.IsUnique        = isUnique;
     this.IsPrimaryKey    = isPrimaryKey;
     this.IsNullable      = isNullable;
     this.IsAutoIncrement = isAutoIncrement;
     // this.ForeignTableName = foreignTableName;
     this.ForeignTable = foreignTable;
     this.DefaultValue = defaultValue;
 }
예제 #5
0
 public WorkoutController(IMapper mapper, IWorkoutInformationService workoutInformationService, IWeekScheduleService weekScheduleService, IDatetimeProvider datetimeProvider, IDailyWorkoutService dailyWorkoutService, IMemberIdProvider memberIdProvider, IMemberService memberService, IWorkoutService workoutService, IModelViewFactory modelViewFactory, IDataModelFactory dataModelFactory)
 {
     this.mapper = mapper ?? throw new ArgumentException("Mapper cannot be null");
     this.workoutInformationService = workoutInformationService ?? throw new ArgumentException("workoutInformationService cannot be null");
     this.weekScheduleService       = weekScheduleService ?? throw new ArgumentException("weekScheduleService cannot be null");
     this.datetimeProvider          = datetimeProvider ?? throw new ArgumentException("datetimeProvider cannot be null");
     this.dailyWorkoutService       = dailyWorkoutService ?? throw new ArgumentException("dailyWorkoutService cannot be null");
     this.memberIdProvider          = memberIdProvider ?? throw new ArgumentException("memberIdProvider cannot be null");
     this.memberService             = memberService ?? throw new ArgumentException("memberService cannot be null");
     this.workoutService            = workoutService ?? throw new ArgumentException("workoutService cannot be null");
     this.modelViewFactory          = modelViewFactory ?? throw new ArgumentException("modelViewFactory cannot be null");
     this.dataModelFactory          = dataModelFactory ?? throw new ArgumentException("dataModelFactory cannot be null");
 }
예제 #6
0
 public DataModeForeignKey(IDataModelFactory foreignDataModelFactory, bool performJoin,
                           IDataModelForeignKey parentForeignKeyProperties = null,
                           string columnName = "")
 {
     if (string.IsNullOrEmpty(columnName))
     {
         ColumnName = $"{foreignDataModelFactory.TableName}_FK";
     }
     else
     {
         ColumnName = columnName;
     }
     ForeignDataModelFactory    = foreignDataModelFactory;
     ParentForeignKeyProperties = parentForeignKeyProperties;
     PerformJoin = performJoin;
 }
예제 #7
0
        // public void AddColumnToTable<T>(string columnName, DataModelFactory<T> dataModelFactory, DataModel dataModel) where T : DataModel
        public bool AddColumnToTable(string columnName, IDataModelFactory dataModelFactory)
        {
            var sbQuery     = new StringBuilder();
            var columnToAdd = dataModelFactory.DataModelColumnProperties.First(c => c.ColumnName == columnName);

            if (columnToAdd != null)
            {
                sbQuery.AppendLine(string.Format("alter table {0} add column {1}",
                                                 dataModelFactory.TableName, columnToAdd.GetColumnCodeForCreateTable()));
            }
            else
            {
                //CONTINUE FROM HERE
                //var fkToAdd = dataModelFactory..DataModelColumnProperties.First(c => c.ColumnName == columnName);
            }
            // if (dataModel.IsForeignKey)

            /*
             * if (columnToAdd.IsForeignKey())
             * {
             *  sbQuery.AppendLine(columnToAdd.GetForeignKeyCodeForCreateTable());
             *  sbQuery.AppendLine("GO");
             * }
             */

            var query = sbQuery.ToString();

            try
            {
                using (var dbConnection = new SqliteConnection(Connection))
                {
                    dbConnection.Open();
                    using (var dbCmd = dbConnection.CreateCommand())
                    {
                        dbCmd.CommandText = query;
                        dbCmd.ExecuteScalar();
                    }
                    dbConnection.Close();
                }
            }
            catch (Exception ex)
            {
                LogSQLQueryErrorInDebugMode(query, ex);
            }
            return(true);
        }
예제 #8
0
 // public void DropTable<T>(DataModelFactory<T> dataModel) where T : DataModel
 public void DropTable(IDataModelFactory dataModel)
 {
     DropTable(dataModel.TableName);
 }