2013-04-27 21 views
1
namespace CQGlobal.BackOffice.Domain.RmsRepository 
{ 
    using System; 
    using CQGlobal.BackOffice.Domain.RmsModel; 
    using CQGlobal.BackOffice.Service.Types; 
    using System.Collections.Generic; 
    using TmsModel = CQGlobal.BackOffice.Domain.TmsModel; 
    using tmsTypes = CQGlobal.BackOffice.Domain.TmsTypes; 

    public interface IRiskManagementRepository : IDisposable 
    { 
     void DataAffectedByPriceChange(List<Tb_ClosingPrice> prices); 

     //void DataAffectedByPositionChangeByOrder(List<Tb_OrderImport> orders); 

     //IEnumerable<string> DataAffectedByPositionChangeByOrder(List<Tb_OrderImport> orders, ref List<RMSSummary> summary); 

     IEnumerable<string> ExecuteNewOrders(List<Tb_OrderImport> orders, bool simulate = false); 

     IEnumerable<string> FetchRMSTopics(string search); 

     IEnumerable<string> FetchRMSTopics(string search, string orderby="AcctNo", int page=0, int size=0); 

     IEnumerable<RMSDisplay> FetchRMSSummary(string search); 

     IEnumerable<RMSDisplay> FetchRMSSummary(string search, string orderby = "AcctNo", int page = 0, int size = 0); 

     IEnumerable<RMSDisplay> FetchRMSSummaryByTopic(List<string> topics, long companyId); 

     IEnumerable<string> InsertRiskManagementSummaryRemarks(Tb_RiskManagementSummaryRemarks remark); 

     IEnumerable<string> UpdateRiskManagementSummaryRemarks(Tb_RiskManagementSummaryRemarks remark); 

     IEnumerable<string> DeleteRiskManagementSummaryRemarks(Tb_RiskManagementSummaryRemarks remark); 

     IEnumerable<string> DeleteRiskManagementSummaryRemarks(Guid recordId); 

     IEnumerable<Tb_RiskManagementSummaryRemarks> FetchSummaryRemarks(string acctNo, long companyId, int period = 0); 

     #region "RMS details" 

     IEnumerable<Tb_CashRPValuationCollateral> FetchValuationCollateral(long companyId, string acctNo = null, string currCd = null, long fundSourceID = 0); 

     IEnumerable<Tb_CustodyAssetsRPValuationCollateral> FetchValuationCollateral(long companyId, string acctNo = null, string currCd = null, long fundSourceID = 0, long instrumentId = 0, long productId = 0); 

     IEnumerable<Tb_NonEquityAssetsValuationCollateral> FetchValuationCollateral(long companyId, string acctNo = null, string assetNo = null); 

     IEnumerable<TmsModel.Tb_Transactions> FetchTMSTransactions(long companyId, string acctNo = null, string transNo = null, string transGroupNo = null, string currCd = null, long fundSourceID = 0); 

     IEnumerable<Tb_ContractOutstanding> FetchOutstandingContracts(long companyId, string acctNo = null, string contractNo = null, short contractPartNo = -1, string currCd = null, long fundSourceID = 0); 

     IEnumerable<TmsModel.Tb_ContractOutstanding> FetchTMSOutstandingContracts(long companyId, string acctNo = null, string contractNo = null, short contractPartNo = -1, string currCd = null, long fundSourceID = 0); 

     IEnumerable<Tb_OrderImport> FetchOrders(long companyId, string acctNo = null, long orderNo = 0, long subOrderNo = -1, string currCd = null); 

     IEnumerable<TmsModel.Tb_ContractOutstanding> FetchExecutedOrdersAndTMSContracts(long companyId, string acctNo = null, string currCd = null); 

     Tb_Date FetchBusinessDate(long companyId = 0); 

     #endregion "RMS details" 

    } 
} 








[LogOperation] 
[LogServiceErrors] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerCall)] 
public class RmsOrchestrationContext : EntityService<IRiskManagementRepository>, CQGlobal.BackOffice.Service.Types.Contracts.IRmsContract 
    { 
     public string DoWork(string work) 
     { 
      //System.Diagnostics.Trace.WriteLine("Called From Service"); 
      return string.Format("You entered: {0}", work); 
     } 


public IEnumerable<RMSDisplay> SearchSummary(string filter,string ordering="AccountNo",int pageNo=0, int pageSize=0) 
     { 
      try 
      { 
       using (IRiskManagementRepository repo = new RiskManagementRepository()) 
       { 
        return repo.FetchRMSSummary(filter, ordering, pageNo, pageSize); 
       } 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 
      finally 
      { 
      } 

     } 




namespace CQGlobal.BackOffice.Service.Types 
{ 
    using System; 
    using System.Runtime.Serialization; 
    using System.Text; 
    using System.Collections.Generic; 

    [DataContract(IsReference = true, Namespace = "http://www.cqglobal.com/rms/")] 
    [Serializable] 
    public class RMSDisplay 
    { 
     [DataMember] 
     public System.DateTime ReportDate { get; set; } 

     [DataMember] 
     public string RecordType { get; set; } 

     [DataMember] 
     public string AggregateLevel { get; set; } 

     [DataMember] 
     public string AcctNo { get; set; } 

     [DataMember] 
     public long CompanyId { get; set; } 

     [DataMember] 
     public string CurrCd { get; set; } 

     [DataMember] 
     public int SchemeId { get; set; } 

     [DataMember] 
     public decimal ExchRate { get; set; } 

     [DataMember] 
     public decimal LedgerBFBalance { get; set; } 

     [DataMember] 
     public decimal EquitySettlement { get; set; } 

     [DataMember] 
     public decimal Adjustment { get; set; } 

     [DataMember] 
     public decimal RealisedPL { get; set; } 

     [DataMember] 
     public decimal CommissionCharges { get; set; } 

     [DataMember] 
     public decimal OptionPremium { get; set; } 

     [DataMember] 
     public decimal LedgerRPBalance { get; set; } 

     [DataMember] 
     public decimal CollateralRPBalance { get; set; } 

     [DataMember] 
     public decimal UnrealisedPLBalance { get; set; } 

     [DataMember] 
     public decimal MarginIM { get; set; } 

     [DataMember] 
     public decimal MarginMM { get; set; } 

     [DataMember] 
     public decimal MarginIMExcessDeficit { get; set; } 

     [DataMember] 
     public decimal MarginIMRPExcessDeficit { get; set; } 

     [DataMember] 
     public decimal MarginMMExcessDeficit { get; set; } 

     [DataMember] 
     public decimal MarginMMRPExcessDeficit { get; set; } 

     [DataMember] 
     public System.DateTime LastUpdated { get; set; } 

     [DataMember] 
     public string AcctExecutiveCd { get; set; } 

     [DataMember] 
     public Nullable<System.Guid> RecordId { get; set; } 

     [DataMember] 
     public string Topic { get; set; } 

     [DataMember] 
     public string Remarks { get; set; } 

     [DataMember] 
     public int Page { get; set; } 

     [DataMember] 
     public int Size { get; set; } 

     [DataMember] 
     public int TotalCount { get; set; } 

     [DataMember] 
     public List<string> ValidationErrors { get; set; } 

     *[DataMember] 
     public string ClientName { get; set; }* 



     #region IExtensibleDataObject Members 

     public ExtensionDataObject ExtensionData { get; set; } 

     #endregion IExtensibleDataObject Members 
    } 
} 

我在visual studio 2010版本中编写了我的服务。然后我将它升级到Visual Studio 2012.当我将属性添加到我的合同中时,ClientName对此属性获得了空值。我已经尝试在字段中输入顺序,但我仍然没有得到我所期望的值,即使我对该值进行了硬编码。我也尝试回收AppPool,重启我的电脑仍然有错误。对不起,我没有告诉你这个函数的实际实现repo.FetchRMSSummary(过滤器,排序,pageNo,pageSize)。当我在服务器端追踪它时,它有一个值,但是当我使用服务时,我无法获得正确的值。我的房产成为空对象,但其余的旧房产具有正确的价值。wcf合同添加属性在现有合同上得到空值

请帮帮我。

+1

您是否更新客户端的参考? – Tim 2013-04-27 05:48:40

+0

是的,我更新了我的客户。我删除了引用和附加参考再次与更新的dll – Kline 2013-04-27 09:06:08

回答

0

我会尝试重写您的对象的反序列化来调试它。反序列化失败时,我遇到了类似的问题。

+0

实际上这个项目是由谁已经离开,现在我是他的代码的继任者开发的。他有一个项目,如[程序集:System.Reflection.AssemblyVersionAttribute(“1.0.0.0”)] [assembly:System.Xml.Serialization.XmlSerializerVersionAttribute(ParentAssemblyId = @“128e48f7-e37b-4470-8a30-9c970ac05f15”,Version = @“4.0.0.0”)] namespace Microsoft.Xml.Serialization.GeneratedAssembly { public class XmlSerializationWriter1:System.Xml.Serialization.XmlSerializationWriter { ......在这个项目中,我摘要的是它自动收拢合同。 – Kline 2013-04-30 06:48:45

0

我已经解决了这个问题。实际上,我们制定了合同的序列化程序,以便它可以提高服务的性能,并且由于它缓存到系统中,我的客户得到了一个古怪的行为,这有些不好。