2016-04-15 6 views
0

OWF_ManagersNextTwoMonthsの返品タイプは、OWF_ManagerRelationshipViewModelのコピーであり、その中のいくつかのコメントはコメントアウトされています。このメソッドは、戻り値の型としてOWF_ManagerRelationshipViewModelを使用したオリジナルの修正バージョンです。目標は、プロキシクラスの1つを削除して、返されるレコードの数を減らすことです。このタイプがパラメータタイプに割り当てられないのはなぜですか?

return文の新しいOWF_ManagersNextTwoMonthsViewModelautomapperに1つの違いがあります。

返品タイプのautomapperには、managerListFinal.Add(item);(managerListFinal)の商品の下に赤い波打ちがあります。

managerListFinal.Add(item);の最初の赤い波線は言う:

は '引数の型Jupiter.Core.Model.OWF_ManagerRelationshipは、パラメータの型 Jupiter.Core.Model.OWF_ManagersNextTwoMonthsViewModelに代入 ではありません'。

(managerListFinal)における第二赤い波線は言う:

は '引数の型Jupiter.Core.Model.OWF_ManagersNextTwoMonthsViewModel はタイプ Jupiter.Core.Model.OWF_ManagerRelationshipをパラメーターに割り当てません'。

私もautomapperリターンの下managerListFinalを返してみましたが、それはその上の最初の1のために行ったように同じことがautomapperを使用していますというメッセージが出ます。

新しいOWF_ManagersNextTwoMonthsViewModelは、これらのレコードを返さないように、ドキュメントリクエストリストを使用して作成されました。私はそれが元のOWF_ManagerRelationshipViewModelと非常に似ているので動作すると思った。

私は正常に動作する場合は、私が必要なものを返すだろうと思うのですが、automapperです。私はオンサイトの日付、ターゲットの日付、ユーザー名、マネージャの種類を取得しようとしています。ビュー名のグリッドにDisplayName、Manager Type、およびUsersが表示されている間、オンサイトおよびターゲットの日付が以下のメソッドで使用されます。

私はこれがviewmodelをコピーして、docリクエストリスト部分を排除するのと同じくらい簡単だと思いました。私はなぜコンパイラがこれを嫌いか、それを修正する方法を理解していない。

オリジナルOWF_ManagerRelationshipViewModel:

public class OWF_ManagerRelationshipViewModel 
{ 
    public OWF_ManagerRelationshipViewModel() 
    { 
     OWF_Onsites = new List<OWF_OnsitesViewModel>(); 
     OWF_DocumentRequestList = new List<OWF_DocumentRequestListViewModel>(); 
    } 

    public int RelationshipId { get; set; } 

    [Required] 
    public int ManagerId { get; set; } 
    public string Users { get; set; } 
    public string ManagerType { get; set; } 

    [Required] 
    public string DisplayName { get; set; } 
    public string CurrentState { get; set; } 
    public Nullable<bool> IsActive { get; set; } 

    public IEnumerable<OWF_AccessGroupViewModel> UsernameList { get; set; } 
    public virtual ICollection<OWF_DocumentRequestListViewModel> OWF_DocumentRequestList { get; set; } 
    public virtual ICollection<OWF_OnsitesViewModel> OWF_Onsites { get; set; } 
} 

私の新しいOWF_ManagersNextTwoMonthsViewModel:赤い波線と

 public class OWF_ManagersNextTwoMonthsViewModel 
{ 
    public OWF_ManagersNextTwoMonthsViewModel() 
    { 
     //OWF_DocumentRequestList = new List<OWF_DocumentRequestListViewModel>(); 
     OWF_Onsites = new List<OWF_OnsitesViewModel>(); 
    } 

    public int RelationshipId { get; set; } 

    [Required] 
    public int ManagerId { get; set; } 
    public string Users { get; set; }    
    public string ManagerType { get; set; }   

    [Required] 
    public string DisplayName { get; set; } 
    public string CurrentState { get; set; } 
    public Nullable<bool> IsActive { get; set; } 

    public IEnumerable<OWF_AccessGroupViewModel> UsernameList { get; set; }         
    //public virtual ICollection<OWF_DocumentRequestListViewModel> OWF_DocumentRequestList { get; set; }  
    public virtual ICollection<OWF_OnsitesViewModel> OWF_Onsites { get; set; } 
} 

方法:

 public IEnumerable<OWF_ManagersNextTwoMonthsViewModel> GetAllExistingManagersByCurrentDate() 
    { 
     var managers = _relationshipRepo.GetAll(); 
     var managerListFinal = new List<OWF_ManagersNextTwoMonthsViewModel>(); 
     var year = DateTime.Now.Year; 
     var prevYear = DateTime.Now.AddYears(-1).Year; 

     foreach (var item in managers) 
     { 
      foreach (var onsite in item.OWF_Onsites.Where(x => x.OnsiteDate != null)) 
      { 
       if (Convert.ToDateTime(onsite.OnsiteDate).Month == DateTime.Now.Month && Convert.ToDateTime(onsite.OnsiteDate).Year == year || 
        onsite.TargetMonth == DateTime.Now.Month && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == year || 
        onsite.TargetMonth == (DateTime.Now.Month + 1) && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == year || 
        Convert.ToDateTime(onsite.OnsiteDate).Month == (DateTime.Now.Month + 1) && Convert.ToDateTime(onsite.OnsiteDate).Year == year || 
        Convert.ToDateTime(onsite.OnsiteDate).Month == DateTime.Now.Month && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear || 
        onsite.TargetMonth == DateTime.Now.Month && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear || 
        onsite.TargetMonth == (DateTime.Now.Month + 1) && onsite.OnsiteDate == null && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear || 
        Convert.ToDateTime(onsite.OnsiteDate).Month == (DateTime.Now.Month + 1) && Convert.ToDateTime(onsite.OnsiteDate).Year == prevYear) 
       { 
        managerListFinal.Add(item); 
       } 
      } 
     } 
     //return Mapper.Map<IEnumerable<OWF_ManagerRelationship>, IEnumerable<OWF_ManagersNextTwoMonthsViewModel>>(managerListFinal); 
     return managerListFinal; 
    } 
+0

?'に良いことがあります完全な実際の質問を読むためにテキスト見出し以外に疑問がないことが分かります。あなたのテキストを再読して質問を編集することをお勧めします。 – grek40

+0

少し読みやすくするために書式を少し編集しましたが、@ grek40は言ったように、この質問にもう一度触れ、あなたが求めていることを明確にしたいと思うかもしれません。 – levelonehuman

答えて

0

あなたはOWF_ManagerRelationshipからアイテムを取るには、それらをチェックし、その後にそれらを置きますOWF_ManagersNextTwoMonthsのリストViewModel。その後、それらをマップする必要があります。

は、私はあなたがこの

managerListFinal.Add(Mapper.Map<OWF_ManagerRelationship,OWF_ManagersNextTwoMonthsViewModel>(item)); 

ような何かをすべきだと思うし、私は全体の肥大化したテキストを読むことが怠惰にしたので、私は `questionmarksを検索することによって開始

関連する問題