public IEnumerable<EngineCodeMapping> EngineCodeMappingGetMany()
        {
            IList<EngineCodeMapping> retVal;
            using (var conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    para.Add("@TotalRecords", null, DbType.Int32, ParameterDirection.Output);

                    var results = conn.Query<EngineCodeMapping>("dbo.Fdp_EngineCode_GetMany", para, commandType: CommandType.StoredProcedure);
                    var totalRecords = para.Get<int?>("@TotalRecords");

                    retVal = new List<EngineCodeMapping>();

                    foreach (var result in results)
                    {
                        result.TotalRecords = totalRecords.Value;
                        retVal.Add(result);
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return retVal;
        }
        public IEnumerable<FdpModel> FdpAvailableModelByMarketGetMany(TakeRateFilter filter)
        {
            var retVal = Enumerable.Empty<FdpModel>();

            using (var conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();

                    para.Add("@FdpVolumeHeaderId", filter.TakeRateId, DbType.Int32);
                    para.Add("@MarketId", filter.MarketId, DbType.Int32);
                    para.Add("@BMC", filter.BMC, DbType.String);
                    para.Add("@DPCK", filter.DPCK, DbType.String);
                    para.Add("@PageIndex", filter.PageIndex, DbType.Int32);
                    para.Add("@PageSize", filter.PageSize, DbType.Int32);

                    para.Add("@TotalPages", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalDisplayRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);

                    retVal = conn.Query<FdpModel>("dbo.Fdp_AvailableModelByMarket_GetMany", para, commandType: CommandType.StoredProcedure);
                    if (retVal != null && retVal.Any())
                    {
                        filter.TotalRecords = para.Get<int>("@TotalRecords");
                        filter.TotalDisplayRecords = para.Get<int>("@TotalDisplayRecords");
                        filter.TotalPages = para.Get<int>("@TotalPages");
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }
            return retVal;
        }
Ejemplo n.º 3
0
        public int OXOCloneGatewayDoc(int docId, int progId, string gateway, string nextGateway, decimal versionId)
        {
            int newDocId = 0;

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                IDbTransaction transaction = null;
                try
                {
                    conn.Open();
                    transaction = conn.BeginTransaction();
                    var para = new DynamicParameters();
                    para.Add("@p_doc_id", docId, dbType: DbType.Int32);
                    para.Add("@p_prog_id", progId, dbType: DbType.Int32);
                    para.Add("@p_gateway", gateway, dbType: DbType.String, size: 50);
                    para.Add("@p_next_gateway", nextGateway, dbType: DbType.String, size: 50);               
                    para.Add("@p_version_id", versionId, dbType: DbType.Decimal);
                    para.Add("@p_clone_by", CurrentCDSID, dbType: DbType.String, size: 50);
                    para.Add("@p_new_doc_id", newDocId, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);             
                    conn.Execute("dbo.OXO_Doc_Clone_Gateway_Doc", para, transaction, commandType: CommandType.StoredProcedure);
                    newDocId = para.Get<int>("@p_new_doc_id");
                    transaction.Commit();                   

                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    Log.Error(ex);
                    throw;
                }
                finally
                {
                    conn.Close();
                }

            }

            return newDocId;
        }
        public bool ReferenceListSave(ReferenceList obj)
        {
            bool retVal = true;
            string procName = (obj.IsNew ? "dbo.OXO_Reference_List_New" : "dbo.OXO_Reference_List_Edit");

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();

                    para.Add("@p_Code", obj.Code, dbType: DbType.String, size: 50);
                    para.Add("@p_Description", obj.Description, dbType: DbType.String, size: 500);
                    para.Add("@p_List_Name", obj.ListName, dbType: DbType.String, size: 100);
                    para.Add("@p_Display_Order", obj.DisplayOrder, dbType: DbType.Int32);

                    if (obj.Id == 0)
                        para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    else
                        para.Add("@p_Id", obj.Id, dbType: DbType.Int32);
                   
                    conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

                    if (obj.Id == 0)
                        obj.Id = para.Get<int>("@p_Id");  
                 
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return retVal;
            
        }
Ejemplo n.º 5
0
        public bool OXORuleSave(OXORule obj, Array aRuleFeats)
        {
            bool retVal = true;
            string procName = (obj.Id == 0 ? "dbo.OXO_Programme_Rule_New" : "dbo.OXO_Programme_Rule_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{

                    obj.Save(this.CurrentCDSID);

                    var para = new DynamicParameters();

					 para.Add("@p_ProgrammeId", obj.ProgrammeId, dbType: DbType.Int32);
					 para.Add("@p_RuleCategory", obj.RuleCategory, dbType: DbType.String, size: 50);
                     para.Add("@p_RuleGroup", obj.RuleGroup, dbType: DbType.String, size: 50);
					 para.Add("@p_RuleAssertLogic", obj.RuleAssertLogic, dbType: DbType.String, size: -1);
					 para.Add("@p_RuleReportLogic", obj.RuleReportLogic, dbType: DbType.String, size: -1);
					 para.Add("@p_RuleResponse", obj.RuleResponse, dbType: DbType.String, size: -1);
                     para.Add("@p_RuleReason", obj.RuleReason, dbType: DbType.String, size: -1);
					 para.Add("@p_Owner", obj.Owner, dbType: DbType.String, size: 50);
					 para.Add("@p_Active", obj.Active, dbType: DbType.Boolean);
					 para.Add("@p_CreatedBy", obj.CreatedBy, dbType: DbType.String, size: 8);
					 para.Add("@p_CreatedOn", obj.CreatedOn, dbType: DbType.DateTime);
					 para.Add("@p_UpdatedBy", obj.UpdatedBy, dbType: DbType.String, size: 8);
					 para.Add("@p_LastUpdated", obj.LastUpdated, dbType: DbType.DateTime);
					    

					if (obj.Id == 0)
					{
						para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
					}
					else
					{
						para.Add("@p_Id", obj.Id, dbType: DbType.Int32);
					}

					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

                    para = new DynamicParameters();
                    
                    procName = "dbo.OXO_Rule_Feature_Delete";

                    try
                    {
                        para.Add("@p_RuleId", obj.Id, dbType: DbType.Int32);
                        para.Add("@p_ProgrammeId", obj.ProgrammeId, dbType: DbType.Int32);

                        conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

                    }
                    catch (Exception ex)
                    {
                        Log.Error(ex);
                        throw;
                    }

                    procName = "dbo.OXO_Rule_Feature_New";

                    foreach (var item in aRuleFeats) {

                        para = new DynamicParameters();
                        
                        try
                        {

                            para.Add("@p_RuleId", obj.Id, dbType: DbType.Int32);
                            para.Add("@p_ProgrammeId", obj.ProgrammeId, dbType: DbType.Int32);
                            para.Add("@p_FeatureId", item, dbType: DbType.Int32);
                            para.Add("@p_CreatedBy", "pbriscoe", dbType: DbType.String, size: 8);
                            para.Add("@p_CreatedOn", DateTime.Now, dbType: DbType.DateTime);
                            para.Add("@p_UpdatedBy", obj.UpdatedBy, dbType: DbType.String, size: 8);
                            para.Add("@p_LastUpdated", obj.LastUpdated, dbType: DbType.DateTime);

                            conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

                        }
                        catch (Exception ex)
                        {
                            Log.Error(ex);
                            throw;
                        }

                    }
				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public bool OXOProgrammeFileSave(OXOProgrammeFile obj)
        {
            bool retVal = true;
            string procName = (obj.Id == 0 ? "dbo.OXO_Programme_File_New" : "dbo.OXO_Programme_File_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{

                    obj.Save(this.CurrentCDSID);
                    
                    var para = new DynamicParameters();

                     para.Add("@p_Programme_Id", obj.ProgrammeId, dbType: DbType.Int32);
                     para.Add("@p_File_Category", obj.FileCategory, dbType: DbType.String, size: 100);
                     para.Add("@p_File_Comment", obj.FileComment, dbType: DbType.String, size: 2000);                    
                     para.Add("@p_File_Name", obj.FileName, dbType: DbType.String, size: 100);
                     para.Add("@p_File_Ext", obj.FileExt, dbType: DbType.String, size: 4);
					 para.Add("@p_File_Type", obj.FileType, dbType: DbType.String, size: 20);
					 para.Add("@p_File_Size", obj.FileSize, dbType: DbType.Int32);
                     para.Add("@p_gateway", obj.Gateway, dbType: DbType.String, size: 100);
                     para.Add("@p_PACN", obj.PACN, dbType: DbType.String, size: 10);					
					 para.Add("@p_File_Content", obj.FileContent, dbType: DbType.Binary);
					 para.Add("@p_Created_By", obj.CreatedBy, dbType: DbType.String, size: 8);
					 para.Add("@p_Created_On", obj.CreatedOn, dbType: DbType.DateTime);
					 para.Add("@p_Updated_By", obj.UpdatedBy, dbType: DbType.String, size: 8);
					 para.Add("@p_Last_Updated", obj.LastUpdated, dbType: DbType.DateTime);
					    

					if (obj.Id == 0)
					{
						para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
					}
					else
					{
						para.Add("@p_Id", obj.Id, dbType: DbType.Int32);
					}

					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public bool PermissionObjectTypeSave(PermissionObjectType obj)
        {
            bool retVal = true;
            string procName = (obj.Id == 0 ? "dbo.PermissionObjectType_New" : "dbo.PermissionObjectType_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
					var para = new DynamicParameters();

					 para.Add("@p_FdpPermissionObjectType", obj.FdpPermissionObjectType, dbType: DbType.String, size: 50);
					 para.Add("@p_Description", obj.Description, dbType: DbType.String, size: -1);
					    

					if (obj.Id == 0)
					{
						para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
					}
					else
					{
						para.Add("@p_Id", obj.Id, dbType: DbType.Int32);
					}

					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public bool ForecastViewSave(ForecastView obj)
        {
            bool retVal = true;
            string procName = (obj.Id == 0 ? "dbo.ForecastView_New" : "dbo.ForecastView_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
					var para = new DynamicParameters();

					 para.Add("@p_ForecastId", obj.ForecastId, dbType: DbType.Int32);
					 para.Add("@p_CreatedOn", obj.CreatedOn, dbType: DbType.DateTime);
					 para.Add("@p_CreatedBy", obj.CreatedBy, dbType: DbType.String, size: 16);
					 para.Add("@p_VehicleId", obj.VehicleId, dbType: DbType.Int32);
					 para.Add("@p_ProgrammeId", obj.ProgrammeId, dbType: DbType.Int32);
					 para.Add("@p_GatewayId", obj.GatewayId, dbType: DbType.Int32);
					 para.Add("@p_Make", obj.Make, dbType: DbType.String, size: 500);
					 para.Add("@p_Code", obj.Code, dbType: DbType.String, size: 500);
					 para.Add("@p_Description", obj.Description, dbType: DbType.String, size: 1003);
					 para.Add("@p_ModelYear", obj.ModelYear, dbType: DbType.String, size: 50);
					 para.Add("@p_Gateway", obj.Gateway, dbType: DbType.String, size: 50);
					    

					if (obj.Id == 0)
					{
						para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
					}
					else
					{
						para.Add("@p_Id", obj.Id, dbType: DbType.Int32);
					}

					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public bool FeatureRequestSave(FeatureRequest obj)
        {
            bool retVal = true;
            string procName = (obj.Id == 0 ? "dbo.OXO_FeatureRequest_New" : "dbo.OXO_FeatureRequest_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
					var para = new DynamicParameters();

					 para.Add("@p_Programme_Id", obj.Programme_Id, dbType: DbType.Int32);
					 para.Add("@p_Description", obj.Description, dbType: DbType.String, size: 500);
					 para.Add("@p_Marketing_Description", obj.Marketing_Description, dbType: DbType.String, size: 500);
					 para.Add("@p_Notes", obj.Notes, dbType: DbType.String, size: 2000);
					 para.Add("@p_Feature_Group", obj.Feature_Group, dbType: DbType.String, size: 500);
					 para.Add("@p_Decision", obj.Decision, dbType: DbType.String, size: 500);
					 para.Add("@p_Created_By", obj.Created_By, dbType: DbType.String, size: 8);
					 para.Add("@p_Created_On", obj.Created_On, dbType: DbType.DateTime);
					 para.Add("@p_Updated_By", obj.Updated_By, dbType: DbType.String, size: 8);
					 para.Add("@p_Last_Updated", obj.Last_Updated, dbType: DbType.DateTime);
					    

					if (obj.Id == 0)
					{
						para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
					}
					else
					{
						para.Add("@p_Id", obj.Id, dbType: DbType.Int32);
					}

					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public bool RuleResultSave(OXORuleResult obj)
        {
            bool retVal = true;
            string procName = (obj.Id == 0 ? "dbo.OXO_Programme_Rule_Result_New" : "dbo.OXO_Programme_Rule_Result_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
                    obj.Save(this.CurrentCDSID);

					var para = new DynamicParameters();

					 para.Add("@p_OXODocId", obj.OXODocId, dbType: DbType.Int32);
					 para.Add("@p_ProgrammeId", obj.ProgrammeId, dbType: DbType.Int32);
                     para.Add("@p_Level", obj.ObjectLevel, dbType: DbType.String, size: 3);
                     para.Add("@p_ObjectId", obj.ObjectId, dbType: DbType.Int32);
					 para.Add("@p_RuleId", obj.RuleId, dbType: DbType.Int32);
					 para.Add("@p_ModelId", obj.ModelId, dbType: DbType.Int32);
					 para.Add("@p_RuleResult", obj.RuleResult, dbType: DbType.Boolean);
					 para.Add("@p_CreatedBy", obj.CreatedBy, dbType: DbType.String, size: 8);
					 para.Add("@p_CreatedOn", obj.CreatedOn, dbType: DbType.DateTime);
					    

					if (obj.Id == 0)
					{
						para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
					}
					else
					{
						para.Add("@p_Id", obj.Id, dbType: DbType.Int32);
					}

					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public bool ModelSave(Model.Model obj)
        {
            bool retVal = true;
            string procName = (obj.IsNew ? "dbo.OXO_Model_New" : "dbo.OXO_Model_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
                    obj.Save(this.CurrentCDSID);

					var para = new DynamicParameters();

                    para.Add("@p_Programme_Id", obj.ProgrammeId, dbType: DbType.Int32);
                    para.Add("@p_Body_Id", obj.BodyId, dbType: DbType.Int32);
                    para.Add("@p_Engine_Id", obj.EngineId, dbType: DbType.Int32);
                    para.Add("@p_Transmission_Id", obj.TransmissionId, dbType: DbType.Int32);
                    para.Add("@p_Trim_Id", obj.TrimId, dbType: DbType.Int32);
                    para.Add("@p_BMC", obj.BMC, dbType: DbType.String, size: 10);
                    para.Add("@p_CoA", obj.CoA, dbType: DbType.String, size: 10);
                    para.Add("@p_KD", obj.KD, dbType: DbType.Boolean);
                    para.Add("@p_Active", obj.Active, dbType: DbType.Boolean);
                    para.Add("@p_ChangeSet_Id", obj.ChangesetId, dbType: DbType.Int32);
                    if (obj.IsNew)
                    {
                        para.Add("@p_Created_By", obj.CreatedBy, dbType: DbType.String, size: 8);
                        para.Add("@p_Created_On", obj.CreatedOn, dbType: DbType.DateTime);
                    }    
                    para.Add("@p_Updated_By", obj.UpdatedBy, dbType: DbType.String, size: 8);
                    para.Add("@p_Last_Updated", obj.LastUpdated, dbType: DbType.DateTime);
                    para.Add("@p_Id", obj.Id, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);    

                    conn.Execute(procName, para, commandType: CommandType.StoredProcedure);
                    obj.Id = para.Get<int>("@p_Id");
			

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public PagedResults<ImportQueue> ImportQueueGetMany(ImportQueueFilter filter)
        {
            PagedResults<ImportQueue> retVal = null;

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    var totalRecords = 0;
                    var totalDisplayRecords = 0;

                    if (filter.PageIndex.HasValue)
                    {
                        para.Add("@PageIndex", filter.PageIndex.Value, DbType.Int32);
                    }
                    if (filter.PageSize.HasValue)
                    {
                        para.Add("@PageSize", filter.PageSize.Value, DbType.Int32);
                    }
                    if (filter.ImportStatus != enums.ImportStatus.NotSet)
                    {
                        para.Add("@FdpImportStatusId", (int)filter.ImportStatus, DbType.Int32);
                    }
                    if (!string.IsNullOrEmpty(filter.FilterMessage))
                    {
                        para.Add("@FilterMessage", filter.FilterMessage, DbType.String, size: 50);
                    }
                    //if (filter.SortIndex.HasValue)
                    //{
                    //    para.Add("@SortIndex", filter.SortIndex.Value, dbType: DbType.Int32);
                    //}
                    para.Add("@SortIndex", filter.SortIndex.GetValueOrDefault(), DbType.Int32);
                    if (filter.SortDirection != enums.SortDirection.NotSet)
                    {
                        var direction = filter.SortDirection == enums.SortDirection.Descending ? "DESC" : "ASC";
                        para.Add("@SortDirection", direction, DbType.String);
                    }
                    else
                    {
                        para.Add("@SortDirection", "DESC", DbType.String);
                    }
                    para.Add("@TotalPages", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalDisplayRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);

                    var results = conn.Query<ImportQueueDataItem>("dbo.Fdp_ImportQueue_GetMany", para, commandType: CommandType.StoredProcedure);
                    
                    if (results.Any())
                    {
                        totalRecords = para.Get<int>("@TotalRecords");
                        totalDisplayRecords = para.Get<int>("@TotalDisplayRecords");
                    }
                    retVal = new PagedResults<ImportQueue>
                    {
                        PageIndex = filter.PageIndex ?? 1,
                        TotalRecords = totalRecords,
                        TotalDisplayRecords = totalDisplayRecords,
                        PageSize = filter.PageSize ?? totalRecords
                    };

                    var currentPage = new List<ImportQueue>();
                    
                    foreach (var result in results)
                    {
                        result.ImportType = ImportTypeDataItem.ToImportType(result);
                        result.ImportStatus = ImportStatusDataItem.ToImportStatus(result);
                        //HydrateImportErrors(result, conn);

                        currentPage.Add(ImportQueueDataItem.ToImportQueue(result));
                    }

                    retVal.CurrentPage = currentPage;
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return retVal;
        }
        public PagedResults<ImportError> ImportErrorGetMany(ImportQueueFilter filter)
        {
            PagedResults<ImportError> retVal = null;

            using (IDbConnection connection = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    var totalRecords = 0;
                    var totalDisplayRecords = 0;
                    var totalImportedRecords = 0;
                    var totalFailedRecords = 0;

                    para.Add("@FdpImportQueueId", filter.ImportQueueId.Value, DbType.Int32);

                    if (filter.ExceptionType != enums.ImportExceptionType.NotSet)
                    {
                        para.Add("@FdpImportExceptionTypeId", (int)filter.ExceptionType, DbType.Int32);
                    }
                    if (!string.IsNullOrEmpty(filter.FilterMessage))
                    {
                        para.Add("@FilterMessage", filter.FilterMessage, DbType.String, size: 50);
                    }
                    if (filter.PageIndex.HasValue)
                    {
                        para.Add("@PageIndex", filter.PageIndex.Value, DbType.Int32);
                    }
                    para.Add("@PageSize", filter.PageSize.HasValue ? filter.PageSize.Value : 100, DbType.Int32);
                    
                    if (filter.SortIndex.HasValue)
                    {
                        para.Add("@SortIndex", filter.SortIndex.Value, DbType.Int32);
                    }
                    if (filter.SortIndex.HasValue)
                    {
                        para.Add("@SortIndex", filter.SortIndex.GetValueOrDefault(), DbType.Int32);
                    }
                    if (filter.SortDirection != enums.SortDirection.NotSet)
                    {
                        var direction = filter.SortDirection == enums.SortDirection.Descending ? "DESC" : "ASC";
                        para.Add("@SortDirection", direction, DbType.String);
                    }
                    para.Add("@TotalPages", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalDisplayRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalImportedRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalFailedRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);

                    var results = connection.Query<ImportError>("dbo.Fdp_ImportError_GetMany", para, commandType: CommandType.StoredProcedure);

                    if (results.Any())
                    {
                        totalRecords = para.Get<int>("@TotalRecords");
                        totalDisplayRecords = para.Get<int>("@TotalDisplayRecords");
                        totalImportedRecords = para.Get<int>("@TotalImportedRecords");
                        totalFailedRecords = para.Get<int>("@TotalFailedRecords");
                    }
                    retVal = new PagedResults<ImportError>
                    {
                        PageIndex = filter.PageIndex.HasValue ? filter.PageIndex.Value : 1,
                        TotalRecords = totalRecords,
                        TotalDisplayRecords = totalDisplayRecords,
                        TotalSuccess = totalImportedRecords,
                        TotalFail = totalFailedRecords,
                        PageSize = filter.PageSize.HasValue ? filter.PageSize.Value : totalRecords
                    };

                    retVal.CurrentPage = results;
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return retVal;
        }
        public bool ModelTrimSave(ModelTrim obj)
        {
            bool retVal = true;
            string procName = (obj.IsNew ? "dbo.OXO_ModelTrim_New" : "dbo.OXO_ModelTrim_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
                    obj.Save(CurrentCDSID);

					var para = new DynamicParameters();

					para.Add("@p_Programme_Id", obj.ProgrammeId, DbType.Int32);
					para.Add("@p_Name", obj.Name, DbType.String, size: 500);
                    para.Add("@p_Abbreviation", obj.Abbreviation, DbType.String, size: 50);
					para.Add("@p_Level", obj.Level, DbType.String, size: 500);
                    para.Add("@p_DPCK", obj.DPCK, DbType.String, size: 10);
					para.Add("@p_Active", obj.Active, DbType.Boolean);
                    if (obj.IsNew)
                    {
                        para.Add("@p_Created_By", obj.CreatedBy, DbType.String, size: 8);
                        para.Add("@p_Created_On", obj.CreatedOn, DbType.DateTime);
                    }
                    para.Add("@p_Updated_By", obj.UpdatedBy, DbType.String, size: 8);
                    para.Add("@p_Last_Updated", obj.LastUpdated, DbType.DateTime);
                    para.Add("@p_Id", obj.Id, DbType.Int32, ParameterDirection.InputOutput);
   
					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public PagedResults<TakeRateSummary> FdpTakeRateHeaderGetManyByUsername(TakeRateFilter filter)
        {
            using (var conn = DbHelper.GetDBConnection())
            {
                PagedResults<TakeRateSummary> retVal;
                try
                {
                    var para = new DynamicParameters();
                    var totalRecords = 0;
                    var totalDisplayRecords = 0;

                    if (filter.DocumentId.HasValue)
                    {
                        para.Add("@DocumentId", filter.DocumentId, DbType.Int32);
                    }
                    if (filter.TakeRateId.HasValue)
                    {
                        para.Add("@FdpVolumeHeaderId", filter.TakeRateId, DbType.Int32);
                    }
                    if (!string.IsNullOrEmpty(filter.FilterMessage))
                    {
                        para.Add("@FilterMessage", filter.FilterMessage, DbType.String, size: 50);
                    }
                    if (filter.TakeRateStatusId.HasValue)
                    {
                        para.Add("@FdpTakeRateStatusId", filter.TakeRateStatusId, DbType.Int32);
                    }
                    if (filter.PageIndex.HasValue)
                    {
                        para.Add("@PageIndex", filter.PageIndex.Value, DbType.Int32);
                    }
                    if (filter.PageSize.HasValue)
                    {
                        para.Add("@PageSize", filter.PageSize.Value, DbType.Int32);
                    }
                    if (filter.SortIndex.HasValue)
                    {
                        para.Add("@SortIndex", filter.SortIndex.Value, DbType.Int32);
                    }
                    if (filter.SortDirection != SortDirection.NotSet)
                    {
                        var direction = filter.SortDirection == SortDirection.Descending ? "DESC" : "ASC";
                        para.Add("@SortDirection", direction, DbType.String);
                    }

                    // TODO implement the CDSId to get only those forecasts the user has permissions for
                    para.Add("@CDSId", CurrentCDSID, DbType.String);
                    para.Add("@TotalPages", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalDisplayRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);

                    var results = conn.Query<TakeRateSummary>("dbo.Fdp_TakeRateHeader_GetManyByUsername", para, commandType: CommandType.StoredProcedure);
                    var takeRateSummaries = results as IList<TakeRateSummary> ?? results.ToList();
                    if (takeRateSummaries.Any())
                    {
                        totalRecords = para.Get<int>("@TotalRecords");
                        totalDisplayRecords = para.Get<int>("@TotalDisplayRecords");
                    }
                    retVal = new PagedResults<TakeRateSummary>
                    {
                        PageIndex = filter.PageIndex ?? 1,
                        TotalRecords = totalRecords,
                        TotalDisplayRecords = totalDisplayRecords,
                        PageSize = filter.PageSize ?? totalRecords
                    };

                    var currentPage = takeRateSummaries.ToList();

                    retVal.CurrentPage = currentPage;
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }

                return retVal;
            }
        }
        public bool ChangeDiarySave(ChangeDiary obj)
        {
            bool retVal = true;
            string procName = (obj.Id == 0 ? "dbo.OXO_ChangeDiary_New" : "dbo.OXO_ChangeDiary_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
					var para = new DynamicParameters();

					 para.Add("@p_OXO_Doc_Id", obj.OXODocId, dbType: DbType.Int32);
					 para.Add("@p_Programme_Id", obj.ProgrammeId, dbType: DbType.Int32);
                     para.Add("@p_Version_Info", obj.VersionInfo, dbType: DbType.String, size: 500);					
					 para.Add("@p_Entry_Header", obj.EntryHeader, dbType: DbType.String, size: -1);
					 para.Add("@p_Entry_Date", obj.EntryDate, dbType: DbType.DateTime);
					 para.Add("@p_Markets", obj.Markets, dbType: DbType.String, size: -1);
					 para.Add("@p_Models", obj.Models, dbType: DbType.String, size: -1);
					 para.Add("@p_Features", obj.Features, dbType: DbType.String, size: -1);
					 para.Add("@p_Current_Fitment", obj.CurrentFitment, dbType: DbType.String, size: 50);
					 para.Add("@p_Proposed_Fitment", obj.ProposedFitment, dbType: DbType.String, size: 50);
					 para.Add("@p_Comment", obj.Comment, dbType: DbType.String, size: -1);
                     para.Add("@p_Pricing_Status", obj.PricingStatus, dbType: DbType.String, size: 500);
                     para.Add("@p_Digital_Status", obj.DigitalStatus, dbType: DbType.String, size: 500);
                     para.Add("@p_Requester", obj.Requester, dbType: DbType.String, size: 100);
					 para.Add("@p_PACN", obj.PACN, dbType: DbType.String, size: 100);
					 para.Add("@p_ETracker", obj.ETracker, dbType: DbType.String, size: 100);
					 para.Add("@p_Order_Call", obj.OrderCall, dbType: DbType.String, size: 100);
					 para.Add("@p_Build_Effective_Date", obj.BuildEffectiveDate, dbType: DbType.DateTime);
					    

					if (obj.Id == 0)
					{
						para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
					}
					else
					{
						para.Add("@p_Id", obj.Id, dbType: DbType.Int32);
					}

					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public bool ChangeSetSave(ChangeSet obj)
        {
            bool retVal = true;
            string procName = "dbo.OXO_ChangeSet_New";

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    obj.Save(this.CurrentCDSID);

                    var para = new DynamicParameters();

                    para.Add("@p_doc_Id", obj.OXODocId, dbType: DbType.Int32);
                    para.Add("@p_section", obj.Section, dbType: DbType.String, size: 8);
                    para.Add("@p_reminder", obj.Reminder, dbType: DbType.String, size: 500);
                    para.Add("@p_Updated_By", obj.UpdatedBy, dbType: DbType.String, size: 8);
                    para.Add("@p_Id", obj.Id, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);

                    conn.Execute(procName, para, commandType: CommandType.StoredProcedure);
                    obj.Id = para.Get<int>("@p_Id");


                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return retVal;

        }
		//public Forecast ForecastTrimMappingGet(int forecastId)
		//{
		//    using (IDbConnection conn = DbHelper.GetDBConnection())
		//    {
		//        try
		//        {
		//            var para = new DynamicParameters();
		//            para.Add("@ForecastId", forecastId, dbType: DbType.Int32);

		//            var results = conn.QueryMultiple("dbo.Fdp_ForecastMappedTrim_Get", para, commandType: CommandType.StoredProcedure);

		//            // First resultset represents forecast vehicle trim information

		//            forecast = results.Read<Forecast>().FirstOrDefault();

		//            // Second resultset represents the comparison vehicles trim and any mapping information

		//            if (forecast != null)
		//            {
		//                forecast.ForecastVehicle = results.Read<Vehicle>().FirstOrDefault();
		//            }

		//            // Final resultset represents the comparison vehicles

		//            if (forecast != null)
		//            {
		//                forecast.ComparisonVehicles = results.Read<Vehicle>();
		//            }
		//        }
		//        catch (Exception ex)
		//        {
		//            AppHelper.LogError("ForecastDataStore.ForecastGet", ex.Message, CurrentCDSID);
		//            throw;
		//        }
		//    }
		//}

		public IForecast ForecastSave(IForecast forecastToSave)
		{
			try
			{
				using (var connection = DbHelper.GetDBConnection())
				{
					var para = new DynamicParameters();

					para.Add("@ForecastId", forecastToSave.ForecastId, DbType.Int32, ParameterDirection.InputOutput);
					para.Add("@SystemUser", CurrentCDSID, DbType.String, size: 16);
					para.Add("@ProgrammeId", forecastToSave.ForecastVehicle.ProgrammeId, DbType.Int32);
					para.Add("@Gateway", forecastToSave.ForecastVehicle.Gateway, DbType.String, size: 50);

					var trans = connection.BeginTransaction();

					connection.Execute("Fdp_Forecast_Save", para, commandType: CommandType.StoredProcedure, transaction: trans);

					if (!forecastToSave.ForecastId.HasValue)
					{
						forecastToSave.ForecastId = para.Get<int>("@ForecastId");
					}

                    ForecastComparisonVehiclesSave(forecastToSave, connection, trans);
                    ForecastComparisonTrimSave(forecastToSave, connection, trans);

					trans.Commit();
				}
			}
            catch (SqlException sqex)
            {
                AppHelper.LogError("ForecastDataStore.ForecastSave", sqex.Message, CurrentCDSID);
                throw new ApplicationException("Database store error", sqex);
            }
            catch (ApplicationException ex)
            {
                AppHelper.LogError("ForecastDataStore.ForecastSave", ex.Message, CurrentCDSID);
                throw;
            }

			return forecastToSave;
		}
        public bool ForecastComparisonSave(ForecastComparison obj)
        {
            bool retVal = true;
            string procName = (obj.Id == 0 ? "dbo.ForecastComparison_New" : "dbo.ForecastComparison_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
					var para = new DynamicParameters();

					 para.Add("@p_ForecastComparisonId", obj.ForecastComparisonId, dbType: DbType.Int32);
					 para.Add("@p_ForecastId", obj.ForecastId, dbType: DbType.Int32);
					 para.Add("@p_ForecastVehicleId", obj.ForecastVehicleId, dbType: DbType.Int32);
					 para.Add("@p_CreatedOn", obj.CreatedOn, dbType: DbType.DateTime);
					 para.Add("@p_CreatedBy", obj.CreatedBy, dbType: DbType.String, size: 16);
					 para.Add("@p_SortOrder", obj.SortOrder, dbType: DbType.Int32);
					 para.Add("@p_IsActive", obj.IsActive, dbType: DbType.Boolean);
					    

					if (obj.Id == 0)
					{
						para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
					}
					else
					{
						para.Add("@p_Id", obj.Id, dbType: DbType.Int32);
					}

					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
		public void ForecastComparisonVehicleSave(  IForecast forecastToSave, 
												    IVehicle vehicleToSave,
												    IDbConnection connection,
												    IDbTransaction transaction,
												    int vehicleIndex)
		{
			using (var conn = DbHelper.GetDBConnection())
			{
				try
				{
				    var para = new DynamicParameters();
					para.Add("@ForecastId", forecastToSave.ForecastId, DbType.Int32);
					para.Add("@SystemUser", CurrentCDSID, DbType.String, size: 16);
					para.Add("@ProgrammeId", vehicleToSave.ProgrammeId, DbType.Int32);
					para.Add("@VehicleIndex", vehicleIndex, DbType.Int32);
                    para.Add("@ForecastComparisonId", null, DbType.Int32, ParameterDirection.Output);

					connection.Execute("Fdp_ForecastComparisonVehicle_Save", para, commandType: CommandType.StoredProcedure, transaction: transaction);

                    para.Get<int>("@ForecastComparisonId");
				}
                catch (SqlException sqex)
                {
                    AppHelper.LogError("ForecastDataStore.ForecastComparisonVehicleSave", sqex.Message, CurrentCDSID);
                    throw new ApplicationException("Data store error", sqex);
                }
				catch (ApplicationException ex)
				{
					AppHelper.LogError("ForecastDataStore.ForecastComparisonVehicleSave", ex.Message, CurrentCDSID);
					throw;
				}
			}
		}
        public bool PermissionSave(Permission obj)
        {
            bool retVal = true;
            string procName = (obj.Id == 0 ? "dbo.OXO_Permission_New" : "dbo.OXO_Permission_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
					var para = new DynamicParameters();

					 para.Add("@p_CDSID", obj.CDSID, dbType: DbType.String, size: 50);
					 para.Add("@p_Object_Type", obj.ObjectType, dbType: DbType.String, size: 500);
					 para.Add("@p_Object_Id", obj.ObjectId, dbType: DbType.Int32);
					 para.Add("@p_Object_Val", obj.ObjectVal, dbType: DbType.String, size: 500);
					 para.Add("@p_Operation", obj.Operation, dbType: DbType.String, size: 500);
					 para.Add("@p_Created_By", obj.CreatedBy, dbType: DbType.String, size: 50);
					 para.Add("@p_Created_On", obj.CreatedOn, dbType: DbType.DateTime);
					 para.Add("@p_Updated_By", obj.UpdatedBy, dbType: DbType.String, size: 50);
					 para.Add("@p_Last_Updated", obj.LastUpdated, dbType: DbType.DateTime);
					    

					if (obj.Id == 0)
					{
						para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.Output);
					}
					else
					{
						para.Add("@p_Id", obj.Id, dbType: DbType.Int32);
					}

					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public PagedResults<ForecastSummary> ForecastGetMany(ForecastFilter filter)
        {
            PagedResults<ForecastSummary> retVal;

            using (var conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    var totalRecords = 0;
                    var totalDisplayRecords = 0;

                    if (filter.ForecastId.HasValue)
                    {
                        para.Add("@ForecastId", filter.ForecastId.Value, DbType.Int32);
                    }
                    if (!string.IsNullOrEmpty(filter.FilterMessage))
                    {
                        para.Add("@FilterMessage", filter.FilterMessage, DbType.String, size: 50);
                    }
                    if (filter.PageIndex.HasValue)
                    {
                        para.Add("@PageIndex", filter.PageIndex.Value, DbType.Int32);
                    }
                    if (filter.PageSize.HasValue)
                    {
                        para.Add("@PageSize", filter.PageSize.Value, DbType.Int32);
                    }
                    if (filter.SortIndex.HasValue)
                    {
                        para.Add("@SortIndex", filter.SortIndex.Value, DbType.Int32);
                    }
                    if (filter.SortDirection != Model.Enumerations.SortDirection.NotSet)
                    {
                        var direction = filter.SortDirection == Model.Enumerations.SortDirection.Descending ? "DESC" : "ASC";
                        para.Add("@SortDirection", direction, DbType.String);
                    }

                    // TODO implement the CDSId to get only those forecasts the user has permissions for
                    para.Add("@CDSId", CurrentCDSID, DbType.String);
                    para.Add("@TotalPages", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalDisplayRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);

                    var results = conn.Query<ForecastSummary>("dbo.Fdp_Forecast_GetMany", para, commandType: CommandType.StoredProcedure);

                    var forecastSummaries = results as IList<ForecastSummary> ?? results.ToList();
                    if (forecastSummaries.Any())
                    {
                        totalRecords = para.Get<int>("@TotalRecords");
                        totalDisplayRecords = para.Get<int>("@TotalDisplayRecords");
                    }
                    retVal = new PagedResults<ForecastSummary>()
                    {
                        PageIndex = filter.PageIndex ?? 1,
                        TotalRecords = totalRecords,
                        TotalDisplayRecords = totalDisplayRecords,
                        PageSize = filter.PageSize ?? totalRecords
                    };

                    var currentPage = new List<ForecastSummary>();
                    foreach (var result in forecastSummaries)
                    {
                        currentPage.Add(result);
                    }

                    retVal.CurrentPage = currentPage;
                }
                catch (Exception ex)
                {
                    AppHelper.LogError("ForecastDataStore.ForecastGetMany", ex.Message, CurrentCDSID);
                    throw;
                }
            }

            return retVal;
        }
        public PagedResults<UserDataItem> FdpUserGetMany(UserFilter filter)
        {
            PagedResults<UserDataItem> retVal;

            using (var conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    var totalRecords = 0;
                    var totalDisplayRecords = 0;

                    if (!string.IsNullOrEmpty(filter.CDSId))
                    {
                        para.Add("@CDSId", filter.CDSId, DbType.String);
                    }
                    if (!string.IsNullOrEmpty(filter.FilterMessage))
                    {
                        para.Add("@FilterMessage", filter.FilterMessage, DbType.String);
                    }
                    if (filter.HideInactiveUsers.HasValue)
                    {
                        para.Add("@HideInactiveUsers", filter.HideInactiveUsers, DbType.Boolean);
                    }
                    if (filter.PageIndex.HasValue)
                    {
                        para.Add("@PageIndex", filter.PageIndex.Value, DbType.Int32);
                    }
                    if (filter.PageSize.HasValue)
                    {
                        para.Add("@PageSize", filter.PageSize.Value, DbType.Int32);
                    }
                    if (filter.SortIndex.HasValue)
                    {
                        para.Add("@SortIndex", filter.SortIndex.Value, DbType.Int32);
                    }
                    if (filter.SortDirection != SortDirection.NotSet)
                    {
                        var direction = filter.SortDirection == SortDirection.Descending ? "DESC" : "ASC";
                        para.Add("@SortDirection", direction, DbType.String);
                    }
                    para.Add("@TotalPages", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    para.Add("@TotalDisplayRecords", dbType: DbType.Int32, direction: ParameterDirection.Output);

                    var results = conn.Query<UserDataItem>("dbo.Fdp_User_GetMany", para, commandType: CommandType.StoredProcedure);

                    var enumerable = results as IList<UserDataItem> ?? results.ToList();
                    if (enumerable.Any())
                    {
                        totalRecords = para.Get<int>("@TotalRecords");
                        totalDisplayRecords = para.Get<int>("@TotalDisplayRecords");
                    }
                    retVal = new PagedResults<UserDataItem>
                    {
                        PageIndex = filter.PageIndex ?? 1,
                        TotalRecords = totalRecords,
                        TotalDisplayRecords = totalDisplayRecords,
                        PageSize = filter.PageSize ?? totalRecords
                    };

                    var currentPage = enumerable.ToList();

                    retVal.CurrentPage = currentPage;
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return retVal;
        }
        public bool MarketGroupSave(MarketGroup obj)
        {
            bool retVal = true;
            string procName = "";
            if (obj.Type == "Master")
            {
                procName = (obj.Id == 0 ? "dbo.OXO_Master_MarketGroup_New" : "dbo.OXO_Master_MarketGroup_Edit");
            }
            else
            {
                procName = (obj.Id == 0 ? "dbo.OXO_Programme_MarketGroup_New" : "dbo.OXO_Programme_MarketGroup_Edit");
            }

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
                    obj.Save(CurrentCDSID);

					var para = new DynamicParameters();
                    para.Add("@p_Group_Name", obj.GroupName, DbType.String, size: 500);
                    if (obj.Type != "Master")
                    {
                        para.Add("@p_prog_id", obj.ProgrammeId, DbType.Int32);
                    }
                    para.Add("@p_Active", obj.Active, DbType.Boolean);
                    para.Add("@p_Display_Order", obj.DisplayOrder, DbType.Int32);
                    para.Add("@p_Created_By", obj.CreatedBy, DbType.String, size: 8);
                    para.Add("@p_Created_On", obj.CreatedOn, DbType.DateTime);
                    para.Add("@p_Updated_By", obj.UpdatedBy, DbType.String, size: 8);
                    para.Add("@p_Last_Updated", obj.LastUpdated, DbType.DateTime);
                    para.Add("@p_Id", obj.Id, DbType.Int32, ParameterDirection.InputOutput);    					
					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
        public bool ProgrammeSave(Programme obj)
        {
            var retVal = true;
            var procName = (obj.IsNew ? "dbo.OXO_Programme_New" : "dbo.OXO_Programme_Edit");

            using (var conn = DbHelper.GetDBConnection())
            {
                try
                {
                    obj.Save(CurrentCDSID);
 
                    var para = new DynamicParameters();

                   // para.Add("@p_AKA", obj.AKA, dbType: DbType.String, size: 500);
                    para.Add("@p_Notes", obj.Notes, DbType.String, size: 2000);
                    para.Add("@p_Product_Manager", obj.ProductManager, DbType.String, size: 8);
                    para.Add("@p_RSG_UID", obj.RSGUID, DbType.String, size: 500);
                    para.Add("@p_Active", obj.Active, DbType.Boolean);
                    para.Add("@p_Created_By", obj.CreatedBy, DbType.String, size: 8);
                    para.Add("@p_Created_On", obj.CreatedOn, DbType.DateTime);
                    para.Add("@p_Updated_By", obj.UpdatedBy, DbType.String, size: 8);
                    para.Add("@p_Last_Updated", obj.LastUpdated, DbType.DateTime);
                    para.Add("@p_Id", dbType: DbType.Int32, direction: ParameterDirection.InputOutput);

                    conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

                    if (obj.Id == 0)
                    {
                        obj.Id = para.Get<int>("@p_Id");
                    }

                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return retVal;
            
        }
Ejemplo n.º 26
0
        public bool PackSave(Pack obj)
        {
            bool retVal = true;
            string procName = (obj.IsNew ? "dbo.OXO_Pack_New" : "dbo.OXO_Pack_Edit");

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    obj.Save(this.CurrentCDSID);

                    var para = new DynamicParameters();

                    para.Add("@p_Doc_Id", obj.DocId, dbType: DbType.Int32);
                    para.Add("@p_Programme_Id", obj.ProgrammeId, dbType: DbType.Int32);
                    para.Add("@p_Name", obj.Name, dbType: DbType.String, size: 500);
                    para.Add("@p_extra_info", obj.ExtraInfo, dbType: DbType.String, size: 500);
                    para.Add("@p_feature_Code", obj.FeatureCode, dbType: DbType.String, size: 50);
                    if (obj.IsNew)
                    {
                        para.Add("@p_Created_By", obj.CreatedBy, dbType: DbType.String, size: 8);
                        para.Add("@p_Created_On", obj.CreatedOn, dbType: DbType.DateTime);
                    }
                    para.Add("@p_Updated_By", obj.UpdatedBy, dbType: DbType.String, size: 8);
                    para.Add("@p_Last_Updated", obj.LastUpdated, dbType: DbType.DateTime);
                    para.Add("@p_Id", obj.Id, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);

                    conn.Execute(procName, para, commandType: CommandType.StoredProcedure);
                    obj.Id = para.Get<int>("@p_Id");


                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return retVal;

        }
        public EngineCodeMapping EngineCodeMappingSave(EngineCodeMapping mapping)
        {
            var retVal = mapping;

            using (var conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();

                    para.Add("@ProgrammeId", mapping.ProgrammeId, DbType.Int32);
                    para.Add("@EngineId", mapping.EngineId, DbType.Int32);
                    para.Add("@ExternalEngineCode", 
                        string.IsNullOrEmpty(mapping.ExternalEngineCode) ? null : mapping.ExternalEngineCode, DbType.String);
                    para.Add("@MappingId", null, DbType.Int32, ParameterDirection.Output);

                    conn.Execute("dbo.Fdp_EngineCode_Save", para, commandType: CommandType.StoredProcedure);

                    if (!mapping.MappingId.HasValue)
                    {
                        mapping.MappingId = para.Get<int>("@MappingId");
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return mapping;
        }
        public TakeRateDataItem TakeRateDataItemSave(TakeRateDataItem dataItemToSave)
        {
            TakeRateDataItem retVal = new EmptyTakeRateDataItem();

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    int? takeRateDataItemId = null;
             
                    para.Add("@FdpTakeRateDataItemId", dataItemToSave.FdpTakeRateDataItemId, DbType.Int32, ParameterDirection.InputOutput);
                    para.Add("@DocumentId", dataItemToSave.DocumentId, DbType.Int32);
                    para.Add("@ModelId", dataItemToSave.ModelId, DbType.Int32);
                    para.Add("@FdpModelId", dataItemToSave.FdpModelId, DbType.Int32);
                    para.Add("@FeatureId", dataItemToSave.FeatureId, DbType.Int32);
                    para.Add("@FdpFeatureId", dataItemToSave.FdpFeatureId, DbType.Int32);
                    para.Add("@MarketGroupId", dataItemToSave.MarketGroupId, DbType.Int32);
                    para.Add("@MarketId", dataItemToSave.MarketId, DbType.Int32);
                    para.Add("@Volume", dataItemToSave.Volume, DbType.Int32);
                    para.Add("@PercentageTakeRate", dataItemToSave.PercentageTakeRate, DbType.Decimal);
                    para.Add("@FeaturePackId", dataItemToSave.FeaturePackId, DbType.Int32);
                    para.Add("@CDSID", CurrentCDSID, DbType.String);

                    var rows = conn.Execute(fdpTakeRateDataItemSaveStoredProcedureName, para, commandType: CommandType.StoredProcedure);
                    if (rows > 0)
                    {
                        takeRateDataItemId = para.Get<int?>("@FdpTakeRateDataItemId");
                    }
                    
                    //// Save any notes 
                    //foreach (var note in dataItemToSave.Notes.Where(n => !n.FdpTakeRateDataItemNoteId.HasValue))
                    //{
                    //    note.FdpTakeRateDataItemId = takeRateDataItemId;
                    //    TakeRateDataItemNoteSave(note);
                    //}

                    retVal = TakeRateDataItemGet(new TakeRateFilter { TakeRateDataItemId = takeRateDataItemId });
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return retVal;
        }
        public bool ModelEngineSave(ModelEngine obj)
        {
            bool retVal = true;
            string procName = (obj.IsNew ? "dbo.OXO_ModelEngine_New" : "dbo.OXO_ModelEngine_Edit");

			using (IDbConnection conn = DbHelper.GetDBConnection())
            {
				try
				{
                    obj.Save(this.CurrentCDSID);

					var para = new DynamicParameters();

					para.Add("@p_Programme_Id", obj.ProgrammeId, dbType: DbType.Int32);
					para.Add("@p_Size", obj.Size, dbType: DbType.String, size: 50);
					para.Add("@p_Cylinder", obj.Cylinder, dbType: DbType.String, size: 50);
					para.Add("@p_Turbo", obj.Turbo, dbType: DbType.String, size: 50);
					para.Add("@p_Fuel_Type", obj.FuelType, dbType: DbType.String, size: 50);
					para.Add("@p_Power", obj.Power, dbType: DbType.String, size: 50);
              //      para.Add("@p_Electrification", obj.Electrification, dbType: DbType.String, size: 50);
					para.Add("@p_Active", obj.Active, dbType: DbType.Boolean);
                    if (obj.IsNew)
                    {
                        para.Add("@p_Created_By", obj.CreatedBy, dbType: DbType.String, size: 8);
                        para.Add("@p_Created_On", obj.CreatedOn, dbType: DbType.DateTime);
                    }
                    para.Add("@p_Updated_By", obj.UpdatedBy, dbType: DbType.String, size: 8);
                    para.Add("@p_Last_Updated", obj.LastUpdated, dbType: DbType.DateTime);
                    para.Add("@p_Id", obj.Id, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);					    					
					conn.Execute(procName, para, commandType: CommandType.StoredProcedure);

					if (obj.Id == 0)
					{
						obj.Id = para.Get<int>("@p_Id");
					}

				}
				catch (Exception ex)
				{
                    Log.Error(ex);
                    throw;
				}
			}

            return retVal;
            
        }
Ejemplo n.º 30
0
        public int OXODocValidateEmptyCells(int id, int progid)
        {
            int retVal = 0;

            using (IDbConnection conn = DbHelper.GetDBConnection())
            {
                try
                {
                    var para = new DynamicParameters();
                    para.Add("@p_doc_id", id, dbType: DbType.Int32);
                    para.Add("@p_prog_id", progid, dbType: DbType.Int32);
                    para.Add("@rec_count", null, dbType: DbType.Int32, direction: ParameterDirection.Output);
                    conn.Execute("dbo.OXO_OXODoc_ValidateEmptyCells", para, commandType: CommandType.StoredProcedure);
                    retVal = para.Get<int>("@rec_count");
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }

            return retVal;
        }