private void InitialiseMembers()
 {
     TakeRate  = new EmptyTakeRateSummary();
     TakeRates = new PagedResults <TakeRateSummary>();
     Statuses  = Enumerable.Empty <TakeRateStatus>();
     CurrentTakeRateDataItem = new EmptyTakeRateDataItem();
     CurrentAction           = TakeRateDataItemAction.NotSet;
     IdentifierPrefix        = "Page";
     Document           = new EmptyTakeRateDocument();
     MarketReviewStatus = MarketReviewStatus.NotSet;
 }
        public TakeRateDataItem TakeRateDataItemGet(TakeRateFilter filter)
        {
            TakeRateDataItem retVal;

            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("@MarketGroupId", filter.MarketGroupId, DbType.Int32);
                    para.Add("@ModelId", filter.ModelId, DbType.Int32);
                    para.Add("@FdpModelId", filter.FdpModelId, DbType.Int32);
                    para.Add("@FeatureId", filter.FeatureId, DbType.Int32);
                    para.Add("@FdpFeatureId", filter.FdpFeatureId, DbType.Int32);

                    var results = conn.QueryMultiple(fdpTakeRateDataItemGetStoredProcedureName, para, commandType: CommandType.StoredProcedure);
                    retVal = results.Read<TakeRateDataItem>().FirstOrDefault();
                    if (retVal == null)
                    {
                        retVal = new EmptyTakeRateDataItem();
                    }
                    else
                    {
                        retVal.Notes = results.Read<TakeRateDataItemNote>();
                        retVal.History = results.Read<TakeRateDataItemAudit>();
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex);
                    throw;
                }
            }
            return retVal;
        }
        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;
        }
 private void InitialiseMembers()
 {
     TakeRate = new EmptyTakeRateSummary();
     TakeRates = new PagedResults<TakeRateSummary>();
     Statuses = Enumerable.Empty<TakeRateStatus>();
     CurrentTakeRateDataItem = new EmptyTakeRateDataItem();
     CurrentAction = TakeRateDataItemAction.NotSet;
     IdentifierPrefix = "Page";
     Document = new EmptyTakeRateDocument();
     MarketReviewStatus = MarketReviewStatus.NotSet;
 }