示例#1
0
        public override NumberingPlanForNgn GetById(long id, string dataSourceName     = null,
                                                    Globals.DataSource.Type dataSource = Globals.DataSource.Type.Default)
        {
            NumberingPlanForNgn dialingRecord = null;

            try
            {
                dialingRecord = base.GetById(id, dataSourceName, dataSource);

                if (null != dialingRecord)
                {
                    var temporaryList =
                        new List <NumberingPlanForNgn> {
                        dialingRecord
                    } as IEnumerable <NumberingPlanForNgn>;
                    FillCountriesAndCurrenciesData(ref temporaryList);
                    dialingRecord = temporaryList.First();
                }

                return(dialingRecord);
            }
            catch (Exception ex)
            {
                throw ex.InnerException;
            }
        }
示例#2
0
文件: DataAccess.cs 项目: syleila/ORM
        public virtual IEnumerable <T> Get(Dictionary <string, object> whereConditions, int limit = 25,
                                           string dataSourceName = null, Globals.DataSource.Type dataSourceType = Globals.DataSource.Type.Default)
        {
            var dt = new DataTable();

            //Get our table columns from the schema
            var thisModelTableColumns = _schema.DataFields
                                        .Where(field => field.TableField != null)
                                        .Select(field => field.TableField.ColumnName)
                                        .ToList();

            //Decide on the Data Source Name
            var finalDataSourceName = (string.IsNullOrEmpty(dataSourceName) ? _schema.DataSourceName : dataSourceName);

            //Validate the presence of the where conditions
            if (whereConditions == null || whereConditions.Count == 0)
            {
                var errorMessage = String.Format(
                    "The \"whereConditions\" parameter is either null or empty. Kindly pass a valid \"whereConditions\" parameter. Class name: \"{0}\".",
                    typeof(T).Name);
                throw new Exception(errorMessage);
            }


            //Proceed with getting the data
            if (_schema.DataSourceType == Globals.DataSource.Type.DbTable)
            {
                dt = DbRoutines.Select(finalDataSourceName, thisModelTableColumns, whereConditions, limit);
            }

            return(dt.ConvertToList <T>());
        }
        public override DepartmentHeadRole GetById(long id, string dataSourceName     = null,
                                                   Globals.DataSource.Type dataSource = Globals.DataSource.Type.Default)
        {
            DepartmentHeadRole role = null;

            try
            {
                role = base.GetById(id, dataSourceName, dataSource);

                if (role != null)
                {
                    var temporaryList = new List <DepartmentHeadRole> {
                        role
                    } as IEnumerable <DepartmentHeadRole>;
                    temporaryList = temporaryList.IncludeSiteDepartments();
                    role          = temporaryList.First();
                }

                return(role);
            }
            catch (Exception ex)
            {
                throw ex.InnerException;
            }
        }
示例#4
0
        public override bool Update(GatewayInfo dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType        = Globals.DataSource.Type.Default)
        {
            var gatewayInfo =
                _gatewaysInfo.Find(item => item.GatewayId == dataObject.GatewayId && item.SiteId == dataObject.SiteId);

            if (gatewayInfo != null)
            {
                var status = base.Update(dataObject, dataSourceName, dataSourceType);

                if (status)
                {
                    _gatewaysInfo.Remove(gatewayInfo);

                    dataObject = dataObject.GetWithRelations(
                        item => item.Gateway,
                        item => item.GatewayRatesInfo,
                        item => item.Site,
                        item => item.Pool);

                    _gatewaysInfo.Add(dataObject);
                }

                return(status);
            }
            return(false);
        }
示例#5
0
        public override int Insert(Country dataObject, string dataSourceName = null,
                                   Globals.DataSource.Type dataSourceType    = Globals.DataSource.Type.Default)
        {
            var isContained = _countries.Contains(dataObject);
            var itExists    =
                _countries.Exists(
                    item =>
                    item.Iso3Code == dataObject.Iso3Code || item.Iso2Code == dataObject.Iso2Code ||
                    item.Name == dataObject.Name);


            if (isContained || itExists)
            {
                return(-1);
            }
            var rowId = base.Insert(dataObject, dataSourceName, dataSourceType);

            if (rowId > 0)
            {
                dataObject.Id = rowId;
                dataObject    = dataObject.GetWithRelations(item => item.Currency);
                _countries.Add(dataObject);
            }

            return(rowId);
        }
示例#6
0
        public override bool Update(PhoneCallExclusion existingExclusionObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSource = Globals.DataSource.Type.Default)
        {
            // NULL value check
            if (null == existingExclusionObject)
            {
                throw new Exception("PhoneCallExclusions#Update: Cannot update NULL phone call exclusion objects.");
            }

            try
            {
                existingExclusionObject.ExclusionSubject =
                    CleanExclusionSubject(existingExclusionObject.ExclusionSubject);

                existingExclusionObject.ExclusionType = LookUpExclusionType(existingExclusionObject.ExclusionType, true);
                existingExclusionObject.AutoMark      = LookUpAutoMark(existingExclusionObject.AutoMark, true);
                existingExclusionObject.ZeroCost      = LookUpZeroCost(existingExclusionObject.ZeroCost, true);

                return(base.Update(existingExclusionObject, dataSourceName, dataSource));
            }
            catch (Exception ex)
            {
                throw ex.InnerException;
            }
        }
示例#7
0
        public override PhoneCallExclusion GetById(long id, string dataSourceName     = null,
                                                   Globals.DataSource.Type dataSource = Globals.DataSource.Type.Default)
        {
            PhoneCallExclusion exclusion = null;

            try
            {
                exclusion = base.GetById(id, dataSourceName, dataSource);

                if (exclusion != null)
                {
                    var temporaryList = new List <PhoneCallExclusion> {
                        exclusion
                    };
                    MapDataToReadable(ref temporaryList);
                    exclusion = temporaryList.First();
                }

                return(exclusion);
            }
            catch (Exception ex)
            {
                throw ex.InnerException;
            }
        }
示例#8
0
        public override IEnumerable <PhoneCall> GetAll(string dataSourceName = null, Globals.DataSource.Type dataSourceType = Globals.DataSource.Type.Default)
        {
            //string sqlStatement = sqlAccessor.GetAllPhoneCalls(dbTables);
            //return base.GetAll(SQL_QUERY: sqlStatement);

            throw new NotImplementedException();
        }
示例#9
0
        public override int Insert(GatewayInfo dataObject, string dataSourceName = null,
                                   Globals.DataSource.Type dataSourceType        = Globals.DataSource.Type.Default)
        {
            var isContained = _gatewaysInfo.Contains(dataObject);
            var itExists    =
                _gatewaysInfo.Exists(item => item.GatewayId == dataObject.GatewayId && item.SiteId == dataObject.SiteId);

            if (isContained || itExists)
            {
                return(-1);
            }
            var rowId = base.Insert(dataObject, dataSourceName, dataSourceType);

            if (rowId > 0)
            {
                dataObject = dataObject.GetWithRelations(
                    item => item.Gateway,
                    item => item.GatewayRatesInfo,
                    item => item.Site,
                    item => item.Pool);
            }

            _gatewaysInfo.Add(dataObject);

            return(rowId);
        }
示例#10
0
文件: DataAccess.cs 项目: syleila/ORM
        public virtual bool Delete(T dataObject, string dataSourceName    = null,
                                   Globals.DataSource.Type dataSourceType = Globals.DataSource.Type.Default)
        {
            string finalDataSourceName;
            var    whereConditions = new Dictionary <string, object>();

            DataField idField;

            //var objectFieldNameWithIdAttribute = string.Empty;


            //
            // Decide the DataSource Name
            if (false == string.IsNullOrEmpty(dataSourceName))
            {
                finalDataSourceName = dataSourceName;
            }
            else if (false == string.IsNullOrEmpty(_schema.DataSourceName))
            {
                finalDataSourceName = _schema.DataSourceName;
            }
            else
            {
                throw new Exception("Insert Error: No Data Source was provided in the " + dataObject.GetType().Name +
                                    ". Kindly review the class definition or the data mapper definition.");
            }


            //
            // Decide the IDField value
            idField = _schema.DataFields.Find(field => field.TableField != null && field.TableField.IsIdField);

            if (null == idField)
            {
                throw new Exception(
                          "Delete Error: The Data Model does not have IDField property. Kindly mark the properties of " +
                          typeof(T).Name + " with [IsIDField].");
            }


            //
            // Get the object field that is marked with the IsIDField attribute
            var dataObjectAttr = dataObject.GetType().GetProperty(idField.Name);

            var dataObjectAttrValue = dataObjectAttr.GetValue(dataObject, null);

            if (dataObjectAttrValue == null)
            {
                throw new Exception(
                          "The ID Field's value is to NULL. Kindly set the value of the ID Field for the object of type: " +
                          typeof(T).Name);
            }
            //long.TryParse(dataObjectAttrValue.ToString(), out ID);
            //return DBRoutines.DELETE(tableName: finalDataSourceName, idFieldName: IDField.TableField.ColumnName, ID: ID);

            whereConditions.Add(idField.TableField.ColumnName,
                                Convert.ChangeType(dataObjectAttrValue, idField.TableField.FieldType));
            return(DbRoutines.Delete(finalDataSourceName, whereConditions));
        }
示例#11
0
        public override bool Delete(MailTemplate dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType         = Globals.DataSource.Type.Default)
        {
            var template = _mailTemplates.Find(item => item.Id == dataObject.Id);

            if (template != null)
            {
                _mailTemplates.Remove(template);

                return(base.Delete(dataObject, dataSourceName, dataSourceType));
            }
            return(false);
        }
示例#12
0
        public override bool Delete(Pool dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType = Globals.DataSource.Type.Default)
        {
            var pool = _pools.Find(item => item.Id == dataObject.Id);

            if (pool != null)
            {
                _pools.Remove(pool);

                return(base.Delete(dataObject, dataSourceName, dataSourceType));
            }
            return(false);
        }
示例#13
0
        public override bool Update(CallMarkerStatus dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType             = Globals.DataSource.Type.Default)
        {
            var markerstatus = _callMarkerStatus.FirstOrDefault(item => item.Id == dataObject.Id);

            if (markerstatus != null)
            {
                _callMarkerStatus.Remove(markerstatus);
                _callMarkerStatus.Add(dataObject);
                return(base.Update(dataObject, dataSourceName, dataSourceType));
            }
            return(false);
        }
示例#14
0
        public override bool Delete(CallType dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType     = Globals.DataSource.Type.Default)
        {
            var callType = _callTypes.Find(item => item.Id == dataObject.Id);

            if (callType != null)
            {
                _callTypes.Remove(callType);

                return(base.Delete(dataObject, dataSourceName, dataSourceType));
            }
            return(false);
        }
        public override bool Delete(MonitoringServerInfo dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType = Globals.DataSource.Type.Default)
        {
            var server = _monitoringServers.Find(item => item.Id == dataObject.Id);

            if (server != null)
            {
                _monitoringServers.Remove(server);

                return(base.Delete(dataObject, dataSourceName, dataSourceType));
            }
            return(false);
        }
示例#16
0
        public override bool Delete(Did dataObject, string dataSourceName  = null,
                                    Globals.DataSource.Type dataSourceType = Globals.DataSource.Type.Default)
        {
            var did = _diDs.Find(item => item.Id == dataObject.Id);

            if (did != null)
            {
                _diDs.Remove(did);

                return(base.Delete(dataObject, dataSourceName, dataSourceType));
            }
            return(false);
        }
示例#17
0
        public override bool Delete(Gateway dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType    = Globals.DataSource.Type.Default)
        {
            var gateway = _gateways.Find(item => item.Id == dataObject.Id);

            if (gateway != null)
            {
                _gateways.Remove(gateway);

                return(base.Delete(dataObject, dataSourceName, dataSourceType));
            }
            return(false);
        }
示例#18
0
        public override bool Update(Department dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType       = Globals.DataSource.Type.Default)
        {
            var department = _departments.Find(item => item.Id == dataObject.Id);

            if (department != null)
            {
                _departments.Remove(department);
                _departments.Add(dataObject);

                return(base.Update(dataObject, dataSourceName, dataSourceType));
            }
            return(false);
        }
示例#19
0
        public override bool Update(Currency dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType     = Globals.DataSource.Type.Default)
        {
            var currency = _currencies.Find(item => item.Id == dataObject.Id);

            if (currency != null)
            {
                _currencies.Remove(currency);
                _currencies.Add(dataObject);

                return(base.Update(dataObject, dataSourceName, dataSourceType));
            }
            return(false);
        }
示例#20
0
        public override int Insert(CallType dataObject, string dataSourceName = null,
                                   Globals.DataSource.Type dataSourceType     = Globals.DataSource.Type.Default)
        {
            var isContained = _callTypes.Contains(dataObject);
            var itExists    = _callTypes.Exists(item => item.TypeId == dataObject.TypeId && item.Name == dataObject.Name);

            if (isContained || itExists)
            {
                return(-1);
            }
            dataObject.Id = base.Insert(dataObject, dataSourceName, dataSourceType);
            _callTypes.Add(dataObject);

            return(dataObject.Id);
        }
示例#21
0
        public override int Insert(MailTemplate dataObject, string dataSourceName = null,
                                   Globals.DataSource.Type dataSourceType         = Globals.DataSource.Type.Default)
        {
            var isContained = _mailTemplates.Contains(dataObject);
            var itExists    =
                _mailTemplates.Exists(
                    item => item.Subject == dataObject.Subject && item.TemplateBody == dataObject.TemplateBody);

            if (isContained || itExists)
            {
                return(-1);
            }
            dataObject.Id = base.Insert(dataObject, dataSourceName, dataSourceType);
            _mailTemplates.Add(dataObject);

            return(dataObject.Id);
        }
示例#22
0
        public override bool Delete(GatewayInfo dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType        = Globals.DataSource.Type.Default)
        {
            var gatewayInfo =
                _gatewaysInfo.Find(
                    item =>
                    item.GatewayId == dataObject.GatewayId && item.SiteId == dataObject.SiteId &&
                    item.PoolId == dataObject.PoolId);

            if (gatewayInfo != null)
            {
                _gatewaysInfo.Remove(gatewayInfo);

                return(base.Delete(dataObject, dataSourceName, dataSourceType));
            }
            return(false);
        }
示例#23
0
        public override int Insert(Did dataObject, string dataSourceName  = null,
                                   Globals.DataSource.Type dataSourceType = Globals.DataSource.Type.Default)
        {
            var isContained = _diDs.Contains(dataObject);
            var itExists    =
                _diDs.Exists(
                    item =>
                    item.Regex == dataObject.Regex ||
                    (item.Regex == dataObject.Regex && item.SiteId == dataObject.SiteId));

            if (isContained || itExists)
            {
                return(-1);
            }
            dataObject.Id = base.Insert(dataObject, dataSourceName, dataSourceType);
            _diDs.Add(dataObject);

            return(dataObject.Id);
        }
示例#24
0
文件: DataAccess.cs 项目: syleila/ORM
        public virtual T GetById(long id, string dataSourceName         = null,
                                 Globals.DataSource.Type dataSourceType = Globals.DataSource.Type.Default)
        {
            var dt = new DataTable();

            const int maximumLimit = 1;

            //Get our table columns from the schema
            var thisModelTableColumns = _schema.DataFields
                                        .Where(field => field.TableField != null)
                                        .Select(field => field.TableField.ColumnName)
                                        .ToList();

            //Decide on the Data Source Name
            var finalDataSourceName = (string.IsNullOrEmpty(dataSourceName) ? _schema.DataSourceName : dataSourceName);

            //Validate the presence of the ID
            if (id <= 0)
            {
                var errorMessage = String.Format("The ID Field is either null or zero. Kindly pass a valid ID. Class name: \"{0}\".",
                                                 typeof(T).Name);
                throw new Exception(errorMessage);
            }

            //Construct the record ID condition
            var condition = new Dictionary <string, object>();

            condition.Add(_schema.IdFieldName, id);

            //Proceed with getting the data
            if (_schema.DataSourceType == Globals.DataSource.Type.DbTable)
            {
                dt = DbRoutines.Select(finalDataSourceName, thisModelTableColumns, condition, maximumLimit);
            }

            //It will either return a data table with one row or zero rows
            if (dt.Rows.Count == 0)
            {
                return((T)Activator.CreateInstance(typeof(T)));
            }
            return(dt.ConvertToList <T>().FirstOrDefault <T>());
        }
示例#25
0
        public override IEnumerable <PhoneCallExclusion> GetAll(string dataSourceName = null,
                                                                Globals.DataSource.Type dataSource = Globals.DataSource.Type.Default)
        {
            List <PhoneCallExclusion> exclusions = null;

            try
            {
                exclusions = base.GetAll(dataSourceName, dataSource).ToList();

                if (exclusions != null && exclusions.Count > 0)
                {
                    MapDataToReadable(ref exclusions);
                }

                return(exclusions);
            }
            catch (Exception ex)
            {
                throw ex.InnerException;
            }
        }
示例#26
0
        public override int Insert(CallMarkerStatus dataObject, string dataSourceName = null,
                                   Globals.DataSource.Type dataSourceType             = Globals.DataSource.Type.Default)
        {
            var markerstatus = _callMarkerStatus.FirstOrDefault(
                item =>
                item.PhoneCallsTable == dataObject.PhoneCallsTable ||
                item.Type == dataObject.Type ||
                item.Timestamp == dataObject.Timestamp
                );

            if (markerstatus == null)
            {
                var rowId = base.Insert(dataObject, dataSourceName, dataSourceType);
                dataObject.Id = rowId;

                _callMarkerStatus.Add(dataObject);

                return(rowId);
            }
            return(-1);
        }
示例#27
0
        public override bool Update(Country dataObject, string dataSourceName = null,
                                    Globals.DataSource.Type dataSourceType    = Globals.DataSource.Type.Default)
        {
            var country = _countries.Find(item => item.Id == dataObject.Id);

            if (country != null)
            {
                var status = base.Update(dataObject, dataSourceName, dataSourceType);

                if (status)
                {
                    _countries.Remove(country);

                    dataObject = dataObject.GetWithRelations(item => item.Currency);
                    _countries.Add(dataObject);
                }

                return(status);
            }
            return(false);
        }
        public override IEnumerable <DepartmentHeadRole> GetAll(string dataSourceName = null,
                                                                Globals.DataSource.Type dataSource = Globals.DataSource.Type.Default)
        {
            IEnumerable <DepartmentHeadRole> roles = null;

            try
            {
                roles = base.GetAll(dataSourceName, dataSource);

                if (roles != null && roles.Count() > 0)
                {
                    roles = roles.IncludeSiteDepartments();
                }

                return(roles);
            }
            catch (Exception ex)
            {
                throw ex.InnerException;
            }
        }
示例#29
0
文件: DataAccess.cs 项目: syleila/ORM
        public virtual IEnumerable <T> Get(Expression <Func <T, bool> > predicate, string dataSourceName = null,
                                           Globals.DataSource.Type dataSourceType = Globals.DataSource.Type.Default)
        {
            DataTable dt;

            if (predicate == null)
            {
                var errorMessage = string.Format("There is no defined Predicate. {0} ", typeof(T).Name);

                throw new Exception(errorMessage);
            }
            var ev = new CustomExpressionVisitor();

            var whereClause = ev.Translate(predicate);

            if (string.IsNullOrEmpty(dataSourceName))
            {
                if (string.IsNullOrEmpty(whereClause))
                {
                    dt = DbRoutines.Select(_schema.DataSourceName);
                }
                else
                {
                    dt = DbRoutines.Select(_schema.DataSourceName, whereClause);
                }
            }
            else
            {
                if (string.IsNullOrEmpty(whereClause))
                {
                    dt = DbRoutines.Select(dataSourceName);
                }
                else
                {
                    dt = DbRoutines.Select(dataSourceName, whereClause);
                }
            }

            return(dt.ConvertToList <T>());
        }
        public override int Insert(MonitoringServerInfo dataObject, string dataSourceName = null,
                                   Globals.DataSource.Type dataSourceType = Globals.DataSource.Type.Default)
        {
            var isContained = _monitoringServers.Contains(dataObject);
            var itExists    = _monitoringServers.Exists(
                item =>
                item.InstanceHostName == dataObject.InstanceHostName &&
                item.InstanceName == dataObject.InstanceName &&
                item.DatabaseName == dataObject.DatabaseName &&
                item.PhoneCallsTable == dataObject.PhoneCallsTable
                );


            if (isContained || itExists)
            {
                return(-1);
            }
            dataObject.Id = base.Insert(dataObject, dataSourceName, dataSourceType);
            _monitoringServers.Add(dataObject);

            return(dataObject.Id);
        }