private UnitOfMeasureDocument GetUOMDocument(Sage.Integration.Northwind.Application.Entities.Product.DataSets.Product.ProductsRow productRow, Token lastToken, NorthwindConfig config)
        {
            #region Declarations
            UnitOfMeasureDocument uomDoc;
            string identity;
            #endregion


            identity = productRow.ProductID.ToString();

            // create Account Doc
            uomDoc    = new UnitOfMeasureDocument();
            uomDoc.Id = identity;

            if (lastToken.InitRequest)
            {
                uomDoc.LogState = LogState.Created;
            }

            else if (productRow.IsCreateIDNull() || productRow.IsModifyIDNull() ||
                     productRow.IsCreateUserNull() || productRow.IsModifyUserNull())
            {
                uomDoc.LogState = LogState.Created;
            }

            else if ((productRow.CreateID > lastToken.SequenceNumber) &&
                     (productRow.CreateUser != config.CrmUser))
            {
                uomDoc.LogState = LogState.Created;
            }

            else if ((productRow.CreateID == lastToken.SequenceNumber) &&
                     (productRow.CreateUser != config.CrmUser) &&
                     (identity.CompareTo(lastToken.Id.Id) > 0))
            {
                uomDoc.LogState = LogState.Created;
            }
            else if ((productRow.ModifyID >= lastToken.SequenceNumber) && (productRow.ModifyUser != config.CrmUser))
            {
                uomDoc.LogState = LogState.Updated;
            }

            uomDoc.active.Value = Constants.DefaultValues.Active;

            uomDoc.name.Value = productRow.IsQuantityPerUnitNull() ? null : productRow.QuantityPerUnit.ToString();;

            uomDoc.units.Value = 1;

            uomDoc.defaultvalue.Value = true;

            uomDoc.familyid.Value = identity;

            return(uomDoc);
        }