title: Dynamics CRM plugin -Pre Operation Update
body: <p>I created a plug-in that calculates the pricing of the quote based on custom fields whenever update done on the quote entity.I executed the plugin on pre-opertaion update of the quote entity.I tried to debbug my plugin, it retrives null values.For example the value of the field "edm_CashAmount" contains 5000 but the code retrieved null. Kindly advise on the below. Thanks in advance.</p>
  
  <pre><code>namespace CRMPlugins.Plugins
  {
      using System;
      using System.ServiceModel;
      using Microsoft.Xrm.Sdk;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using Microsoft.Crm.Sdk.Messages;
  
      public class PrequoteUpdate : Plugin
      {
  
          public PrequoteUpdate()
              : base(typeof(PrequoteUpdate))
          {
              base.RegisteredEvents.Add(new Tuple&lt;int, string, string, Action&lt;LocalPluginContext&gt;&gt;(20, "Update", "quote", new Action&lt;LocalPluginContext&gt;(ExecutePrequoteUpdate)));
  
          }
  
          protected void ExecutePrequoteUpdate(LocalPluginContext localContext)
          {
              if (localContext == null)
              {
                  throw new ArgumentNullException("localContext");
              }
  
              Entity entity = null;
  
              if (localContext.PluginExecutionContext.InputParameters.Contains("Target") &amp;&amp; localContext.PluginExecutionContext.InputParameters["Target"] is Entity)
              {
                  entity = (Entity)localContext.PluginExecutionContext.InputParameters["Target"];
              }
              else
              {
                  return;
              }
              decimal instotal = 0;
              Quote quote = entity.ToEntity&lt;Quote&gt;();
              using (GeneratedEntities orgContext = new GeneratedEntities(localContext.OrganizationService))
              {
                  var installements = (from b in orgContext.edm_installementSet
                                       where b.GetAttributeValue&lt;Guid&gt;("edm_quote") == quote.QuoteId
                                       select b);
  
                  foreach (var c in installements)
                  {
  
                      if (c.edm_Amount != null)
                      {
                          instotal += (decimal)c.new_Decimal;
  
                      }
                  }
              }
              decimal cash = 0;
              if (quote.edm_CashAmount != null)
              {
                  cash = Convert.ToDecimal(quote.GetAttributeValue&lt;Money&gt;("edm_cashamount").Value);
              }
              decimal check = 0;
              if (quote.edm_CheckAmount != null)
              {
                  check = Convert.ToDecimal(quote.GetAttributeValue&lt;Money&gt;("edm_checkamount").Value);
              }
              decimal credit = 0;
              if (quote.edm_CreditCardAmount != null)
              {
                  credit = Convert.ToDecimal(quote.GetAttributeValue&lt;Money&gt;("edm_creditcardamount").Value);
              }
              decimal gift = 0;
              if (quote.new_GiftCard != null)
              {
                  gift = Convert.ToDecimal(quote.GetAttributeValue&lt;Money&gt;("new_giftcard").Value);
              }
              decimal total = 0;
              if (quote.TotalLineItemAmount != null)
              {
                  total = Convert.ToDecimal(quote.GetAttributeValue&lt;Money&gt;("totallineitemamount").Value);
              }
  
              decimal currentbalane = 0;
              if (quote.edm_CurrentBalane != null)
              {
                  currentbalane = Convert.ToDecimal(quote.GetAttributeValue&lt;Money&gt;("edm_currentbalane").Value);
              }
  
  
              decimal DiscAmount = 0;
              if (quote.DiscountAmount != null)
              {
                  DiscAmount = Convert.ToDecimal(quote.GetAttributeValue&lt;Money&gt;("discountamount").Value);
  
              }
  
              decimal totalafterdiscount = total - DiscAmount;
              decimal tax = (totalafterdiscount * 10) / 100;
              decimal totalwithvat = totalafterdiscount + tax;
              decimal paidamount = cash + check + credit + gift + instotal;
              decimal remainingamount = totalwithvat - paidamount;
              quote["edm_cashamount_1"] = new Money(tax);
              quote["edm_totaltax"] = new Money(tax);
              quote["edm_paidamount"] = new Money(paidamount);
              quote["edm_remainingamount"] = new Money(remainingamount);
              quote["edm_total"] = new Money(totalwithvat);
              quote["edm_totalinstallements"] = new Money(instotal);
              quote["edm_checkamount_1"] = new Money(totalwithvat);
  
          }
      }
  }
  </code></pre>