2017-04-26 7 views
-6

私はMVCアーキテクチャのC#でVisual Studioで作業しています。現在、アプリケーションに接続しているデータベースから必要なデータをレンダリングするための条件文を作成しています。私は約16の条件文を持っています。私がSalePersonだけでデータを取得しようとするとレンダリングされますが、クエリで別のフィルタを使用すると2つの条件が崩れます。誰も私のロジックをどのように再構成できるかについて私に助言を与えることができますか?ここで が私の条件文です:C#を使用したモデルの条件

if ((start != null && end != null) && (IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == false) && (String.IsNullOrEmpty(ProductCode)) && (quotes1.SalesCode.ToString() != SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == false) && (ExcludeNoBid == true && quotes1.NoBid == false) && (String.IsNullOrEmpty(ProductCode)) && (quotes1.SalesCode.ToString() != SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if((start != null && end != null) && (IncludeClosedQuotes == false) && (ExcludeNoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() != SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == false) && (ExcludeNoBid == false) && (quotes1.ProductCode != ProductCode) && quotes1.SalesCode.ToString() == SalesPerson) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == true && quotes1.NoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == true && quotes1.NoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() != SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == true && quotes1.NoBid == false) && ((quotes1.ProductCode == ProductCode)) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == false) && (ExcludeNoBid == true && quotes1.NoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == true && quotes1.NoBid == false) && (quotes1.ProductCode != ProductCode) && (quotes1.SalesCode.ToString() != SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == false) && (ExcludeNoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == false) && (quotes1.ProductCode != ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() != SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == false) && (ExcludeNoBid == true && quotes1.NoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() != SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        else if ((start != null && end != null) && (IncludeClosedQuotes == false) && (ExcludeNoBid == true && quotes1.NoBid == false) && (String.IsNullOrEmpty(ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson))) 
        { 
         myList.Add(quotes1); 
        } 
+6

これは右、冗談ですか? – Smartis

+2

まず、この質問から、スタックコードのレビューが優れています。 1、 '(start!= null && end!= null)'をすべて展開している場合は、それ自身に展開します。ほとんどすべてのロジックが重複しているので、それらをすべてif文に取り除きます –

+1

すべてのコードを 'myList.Add(quotes1);に置き換えます。 – maxbeaudoin

答えて

-1

これははるかに優れています:

  if ((start != null && end != null)) 
      { 
       if (IncludeClosedQuotes == true && quotes1.QuoteStatus != null) 
       { 
        if((ExcludeNoBid == false) && ((String.IsNullOrEmpty(ProductCode)) || (quotes1.ProductCode != ProductCode))) 
        { 
         myList.Add(quotes1); 
        } 
        if ((ExcludeNoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 

        if ((ExcludeNoBid == true && quotes1.NoBid == false) && (quotes1.ProductCode == ProductCode)) 
        { 
         myList.Add(quotes1); 
        } 
        if((ExcludeNoBid == true && quotes1.NoBid == false) && (quotes1.ProductCode != ProductCode) && (quotes1.SalesCode.ToString() != SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
       } 

       if ((IncludeClosedQuotes == false) && (ExcludeNoBid == false)) 
       { 
        if (quotes1.ProductCode == ProductCode) 
        { 
         myList.Add(quotes1); 
        } 
        if ((quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
       } 
       if ((IncludeClosedQuotes == false) && (ExcludeNoBid == true && quotes1.NoBid == false)) 
       { 
        if ((quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() != SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 

        if((String.IsNullOrEmpty(ProductCode) && quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
       } 
      } 
0
if ((IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == false) && (String.IsNullOrEmpty(ProductCode)) && String.IsNullOrEmpty(SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 

        if ((IncludeClosedQuotes == false) && (ExcludeNoBid == true && quotes1.NoBid == false) && (String.IsNullOrEmpty(ProductCode)) && String.IsNullOrEmpty(SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == false) && (ExcludeNoBid == false) && (quotes1.ProductCode == ProductCode) && String.IsNullOrEmpty(SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == false) && (ExcludeNoBid == false) && (String.IsNullOrEmpty(ProductCode)) && quotes1.SalesCode.ToString() == SalesPerson) 
        { 
         myList.Add(quotes1); 
        } 

        if ((IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == true && quotes1.NoBid == false) && (quotes1.ProductCode == ProductCode) && String.IsNullOrEmpty(SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == true && quotes1.NoBid == false) && ((quotes1.ProductCode == ProductCode)) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == false) && (ExcludeNoBid == true && quotes1.NoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == true && quotes1.NoBid == false) && (String.IsNullOrEmpty(ProductCode)) && String.IsNullOrEmpty(SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == false) && (ExcludeNoBid == false) && (quotes1.ProductCode == ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == false) && (String.IsNullOrEmpty(ProductCode)) && (quotes1.SalesCode.ToString() == SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == false) && (quotes1.ProductCode == ProductCode) && String.IsNullOrEmpty(SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == false) && (ExcludeNoBid == true && quotes1.NoBid == false) && (quotes1.ProductCode == ProductCode) && String.IsNullOrEmpty(SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == false) && (ExcludeNoBid == true && quotes1.NoBid == false) && (String.IsNullOrEmpty(ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson))) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == true && quotes1.QuoteStatus != null) && (ExcludeNoBid == true && quotes1.NoBid == false) && (String.IsNullOrEmpty(ProductCode) && (quotes1.SalesCode.ToString() == SalesPerson))) 
        { 
         myList.Add(quotes1); 
        } 
        if ((IncludeClosedQuotes == false) && (ExcludeNoBid == false) && (String.IsNullOrEmpty(ProductCode)) && String.IsNullOrEmpty(SalesPerson)) 
        { 
         myList.Add(quotes1); 
        } 
関連する問題