public bool NASCustomFieldTypeBuiltInMultiSelectionListControlDataEditingState_PreTransitionCRUD(string transition)
        {
            if (transition.ToUpper()
                .Equals(NASCustomFieldTypeControlStateTransition.UpdateTransition.TransitionName))
            {
                List <NASCustomFieldPredefinitionData> data =
                    NASCustomFieldTypeBuiltInMultiSelectionListStrategy.GetSelectedPredefinitionDataFromList(grdlookupItemMenu);
                //Update data of custom field by ObjectCustomFieldId
                if (NASCustomFieldTypeBuiltInMultiSelectionListStrategy.UpdatePredefinitionDataForObject(ObjectCustomFieldId, data))
                {
                    if (DataUpdated != null)
                    {
                        ObjectCustomField objectCustomField =
                            session.GetObjectByKey <ObjectCustomField>(ObjectCustomFieldId);

                        //Raise DataUpdated event
                        DataUpdated(this,
                                    new CustomFieldControlEventArgs(
                                        ObjectCustomFieldId,
                                        objectCustomField.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId,
                                        objectCustomField.ObjectId.ObjectId,
                                        objectCustomField.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldId,
                                        CustomFieldControlEventArgs.CustomFieldCategoryEnum.BUILT_IN,
                                        null,
                                        BasicCustomFieldTypeEnum.NONE,
                                        data,
                                        null));
                    }
                }
            }
            return(true);
        }
コード例 #2
0
 public bool NASCustomFieldTypeDateTimeControlDataEditingState_PreTransitionCRUD(string transition)
 {
     if (transition.ToUpper()
         .Equals(NASCustomFieldTypeControlStateTransition.UpdateTransition.TransitionName))
     {
         //Update data of custom field by ObjectCustomFieldId
         CustomFieldDataDateTimeBO customFieldDataDateTimeBO = new CustomFieldDataDateTimeBO();
         DateTime dateTimeValue = calendar.Date;
         if (customFieldDataDateTimeBO.UpdateCustomFieldData(ObjectCustomFieldId, dateTimeValue))
         {
             if (DataUpdated != null)
             {
                 ObjectCustomField objectCustomField =
                     session.GetObjectByKey <ObjectCustomField>(ObjectCustomFieldId);
                 //Raise DataUpdated event
                 DataUpdated(this,
                             new CustomFieldControlEventArgs(
                                 ObjectCustomFieldId,
                                 objectCustomField.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId,
                                 objectCustomField.ObjectId.ObjectId,
                                 objectCustomField.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldId,
                                 CustomFieldControlEventArgs.CustomFieldCategoryEnum.BASIC,
                                 dateTimeValue,
                                 BasicCustomFieldTypeEnum.DATETIME,
                                 null,
                                 null));
             }
         }
     }
     return(true);
 }
コード例 #3
0
 public bool NASCustomFieldTypeStringControlDataEditingState_PreTransitionCRUD(string transition)
 {
     if (transition.ToUpper()
         .Equals(NASCustomFieldTypeControlStateTransition.UpdateTransition.TransitionName))
     {
         //Update data of custom field by ObjectCustomFieldId
         CustomFieldDataStringBO customFieldDataStringBO = new CustomFieldDataStringBO();
         string stringValue = txtStringValueEditing.Text;
         if (customFieldDataStringBO.UpdateCustomFieldData(ObjectCustomFieldId, stringValue))
         {
             if (DataUpdated != null)
             {
                 ObjectCustomField objectCustomField =
                     session.GetObjectByKey <ObjectCustomField>(ObjectCustomFieldId);
                 //Raise DataUpdated event
                 DataUpdated(this,
                             new CustomFieldControlEventArgs(
                                 ObjectCustomFieldId,
                                 objectCustomField.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId,
                                 objectCustomField.ObjectId.ObjectId,
                                 objectCustomField.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldId,
                                 CustomFieldControlEventArgs.CustomFieldCategoryEnum.BASIC,
                                 stringValue,
                                 BasicCustomFieldTypeEnum.STRING,
                                 null,
                                 null));
             }
         }
     }
     return(true);
 }
コード例 #4
0
        public XPCollection <CustomFieldDataString> GetSelecteCustomFieldAllDataItems(Session session, Guid objectCustomFieldId)
        {
            try
            {
                ObjectCustomField ocf = session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);
                if (ocf == null)
                {
                    throw new Exception("Input key is not exist in ObjectCustomField");
                }

                if (ocf.ObjectTypeCustomFieldId == null || ocf.ObjectTypeCustomFieldId.CustomFieldId == null ||
                    ocf.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldTypeId == null)
                {
                    throw new Exception("ObjectCustomField's configuration is wrong");
                }

                if (!ocf.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldTypeId.Code.Equals("MULTI_CHOICE_LIST"))
                {
                    throw new Exception("ObjectCustomField is not single selection list type");
                }

                CriteriaOperator criteria = new ContainsOperator("ObjectCustomFieldDatas", new BinaryOperator("ObjectCustomFieldId", ocf));
                XPCollection <CustomFieldDataString> rs = new XPCollection <CustomFieldDataString>(session, criteria);
                return(rs);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
コード例 #5
0
        public bool PreCRUD_EdittingState()
        {
            int value = int.MinValue;

            if (txtIntegerValueEditing.Value != null)
            {
                value = int.Parse(txtIntegerValueEditing.Value.ToString());
            }
            if (BO.UpdateCustomFieldData(ObjectCustomFieldId, value))
            {
                if (DataUpdated != null)
                {
                    ObjectCustomField objectCustomField =
                        session.GetObjectByKey <ObjectCustomField>(ObjectCustomFieldId);
                    //Raise DataUpdated event
                    DataUpdated(this,
                                new CustomFieldControlEventArgs(
                                    ObjectCustomFieldId,
                                    objectCustomField.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId,
                                    objectCustomField.ObjectId.ObjectId,
                                    objectCustomField.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldId,
                                    CustomFieldControlEventArgs.CustomFieldCategoryEnum.BASIC,
                                    value,
                                    BasicCustomFieldTypeEnum.INTEGER,
                                    null,
                                    null));
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #6
0
        public CustomFieldDataFloat getCustomfiedData(Session session, Guid ObjectCustomFieldId)
        {
            try
            {
                ObjectCustomField ocf = session.GetObjectByKey <ObjectCustomField>(ObjectCustomFieldId);
                if (ocf == null)
                {
                    throw new Exception("Input key is not exist in ObjectCustomField");
                }

                if (ocf.ObjectTypeCustomFieldId == null || ocf.ObjectTypeCustomFieldId.CustomFieldId == null ||
                    ocf.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldTypeId == null)
                {
                    throw new Exception("ObjectCustomField's configuration is wrong");
                }

                if (!ocf.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldTypeId.Code.Equals("FLOAT"))
                {
                    throw new Exception("ObjectCustomField is not FLOAT type");
                }

                if (ocf.ObjectCustomFieldDatas == null || ocf.ObjectCustomFieldDatas.Count == 0)
                {
                    return(null);
                }

                return(ocf.ObjectCustomFieldDatas.FirstOrDefault().CustomFieldDataId as CustomFieldDataFloat);
            }
            catch (Exception e) {
                throw e;
            }
        }
コード例 #7
0
ファイル: ObjectBO.cs プロジェクト: ewin66/dev
        public bool UpdateBasicData(Guid cmsObjectId,
                                    Guid objectTypeCustomFieldId,
                                    object value,
                                    BasicCustomFieldTypeEnum basicCustomFieldType,
                                    CustomFieldTypeFlag customFieldTypeFlag)
        {
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();
                ObjectCustomFieldBO objectCustomFieldBO = new ObjectCustomFieldBO();
                ObjectCustomField   objectCustomField   =
                    objectCustomFieldBO.GetObjectCustomField(session, cmsObjectId, objectTypeCustomFieldId);
                if (objectCustomField == null)
                {
                    throw new Exception("Could not found ObjectCustomField");
                }
                BasicCustomFieldTypeBOBase basicCustomFieldTypeBO = null;
                switch (basicCustomFieldType)
                {
                case BasicCustomFieldTypeEnum.STRING:
                    basicCustomFieldTypeBO = new CustomFieldDataStringBO();
                    break;

                case BasicCustomFieldTypeEnum.DATETIME:
                    basicCustomFieldTypeBO = new CustomFieldDataDateTimeBO();
                    break;

                case BasicCustomFieldTypeEnum.FLOAT:
                    basicCustomFieldTypeBO = new ObjectCustomFieldDataFloatBO();
                    break;

                case BasicCustomFieldTypeEnum.INTEGER:
                    basicCustomFieldTypeBO = new ObjectCustomFieldDataIntegerBO();
                    break;

                default:
                    break;
                }
                return(basicCustomFieldTypeBO.UpdateCustomFieldData(objectCustomField.ObjectCustomFieldId,
                                                                    value,
                                                                    customFieldTypeFlag));
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
コード例 #8
0
        public bool NASCustomFieldTypeBuiltInSingleSelectionListControlDataViewingState_CRUD()
        {
            NASCustomFieldPredefinitionData predefinitionData =
                NASCustomFieldTypeBuiltInSingleSelectionListStrategy.GetPredefinitionDataOfObject(ObjectCustomFieldId);
            string text = String.Empty;

            if (predefinitionData != null)
            {
                text = predefinitionData.Name == null || predefinitionData.Name.Trim().Length == 0 ?
                       predefinitionData.Code : predefinitionData.Name;
                imgRemove.Visible = true;
            }
            else
            {
                text = "Chỉnh sửa";
                imgRemove.Visible = false;
            }
            hyperlinkBuiltInSingleSelectionListDataViewing.Text = text;

            ObjectCustomField objectCustomField =
                session.GetObjectByKey <ObjectCustomField>(ObjectCustomFieldId);

            //////12/22/2013 Duc.Vo----START
            /// Dump - null object khi ko co du lieu cho CustomFieldType
            ////////////////////////////////
            if (objectCustomField.CustomFieldType == null)
            {
                objectCustomField.CustomFieldType = CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_DEFAULT.Value;
                objectCustomField.Save();
            }
            //////12/22/2013 Duc.Vo----END
            if (objectCustomField.CustomFieldType.Equals(CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_MASTER.Value))
            {
                hyperlinkBuiltInSingleSelectionListDataViewing.Font.Bold = true;
                imgRemove.Visible = false;
            }
            else if (objectCustomField.CustomFieldType.Equals(CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_READONLY.Value))
            {
                hyperlinkBuiltInSingleSelectionListDataViewing.ClientSideEvents.Click = null;
                hyperlinkBuiltInSingleSelectionListDataViewing.Cursor    = "default";
                hyperlinkBuiltInSingleSelectionListDataViewing.ForeColor = Color.Gray;
                imgRemove.Visible = false;
            }
            else if (objectCustomField.CustomFieldType.Equals(CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_MASTER_READONLY.Value))
            {
                hyperlinkBuiltInSingleSelectionListDataViewing.ClientSideEvents.Click = null;
                hyperlinkBuiltInSingleSelectionListDataViewing.Cursor    = "default";
                hyperlinkBuiltInSingleSelectionListDataViewing.ForeColor = Color.Gray;
                hyperlinkBuiltInSingleSelectionListDataViewing.Font.Bold = true;
                imgRemove.Visible = false;
            }

            return(true);
        }
コード例 #9
0
ファイル: ObjectBO.cs プロジェクト: ewin66/dev
        private bool AttachObjectCustomFieldWithDefaultValue(Session session
                                                             , DAL.CMS.ObjectDocument.Object CMSObject
                                                             , NAS.DAL.CMS.ObjectDocument.ObjectTypeCustomField objectTypeCustomField
                                                             , CustomFieldTypeFlag option)
        {
            try
            {
                //Create ObjectCustomField
                ObjectCustomField objectCustomField = new ObjectCustomField(session)
                {
                    ObjectCustomFieldId     = Guid.NewGuid(),
                    ObjectId                = CMSObject,
                    ObjectTypeCustomFieldId = objectTypeCustomField,
                    CustomFieldType         = option.Value
                };
                objectCustomField.Save();

                //Insert default value for custom field
                CustomFieldData customFieldData = null;

                string customFieldTypeCode = objectTypeCustomField.CustomFieldId.CustomFieldTypeId.Code;

                BasicCustomFieldTypeEnum basicCustomFieldType = BasicCustomFieldTypeEnum.NONE;

                bool isBasicType =
                    Enum.TryParse <BasicCustomFieldTypeEnum>(customFieldTypeCode, out basicCustomFieldType);

                if (isBasicType)
                {
                    customFieldData = InitDefaultDataForBasicCustomFieldType(session,
                                                                             (BasicCustomFieldTypeEnum)Enum.Parse(typeof(BasicCustomFieldTypeEnum), customFieldTypeCode),
                                                                             objectTypeCustomField.CustomFieldId.CustomFieldId);

                    if (customFieldData != null)
                    {
                        //Insert into ObjectCustomFieldData
                        ObjectCustomFieldData defaultObjectCustomFieldData =
                            new ObjectCustomFieldData(session)
                        {
                            ObjectCustomFieldDataId = Guid.NewGuid(),
                            CustomFieldDataId       = customFieldData,
                            ObjectCustomFieldId     = objectCustomField
                        };
                        defaultObjectCustomFieldData.Save();
                    }
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #10
0
        public override bool UpdateCustomFieldData(Guid objectCustomFieldId, object value, CustomFieldTypeFlag flag)
        {
            UnitOfWork uow = null;

            try
            {
                uow = XpoHelper.GetNewUnitOfWork();
                //Get ObjectCustomField by Id
                ObjectCustomField objectCustomField =
                    uow.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);
                if (objectCustomField.ObjectCustomFieldDatas.Count > 0 && objectCustomField.ObjectCustomFieldDatas.FirstOrDefault() != null)
                {
                    objectCustomField.CustomFieldType = flag.Value;
                    uow.FlushChanges();
                    CustomFieldDataInt customFieldData =
                        (CustomFieldDataInt)objectCustomField.ObjectCustomFieldDatas
                        .FirstOrDefault().CustomFieldDataId;

                    customFieldData.IntValue = (int)value;

                    ObjectBO objectBO = new ObjectBO();
                    DynamicObjectListSerializeDataItem dataitem = new DynamicObjectListSerializeDataItem()
                    {
                        ObjectCustomFieldId = objectCustomFieldId,
                        CustomFieldName     = customFieldData.CustomFieldId.Name,
                        CustomFieldData     = customFieldData.IntValue.ToString()
                    };
                    objectBO.SetDynamicObjectListItem(uow, objectCustomField.ObjectId.ObjectId, dataitem);

                    uow.CommitChanges();
                }
                else
                {
                    throw new Exception();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (uow != null)
                {
                    uow.Dispose();
                }
            }

            throw new NotImplementedException();
        }
        public override List <NASCustomFieldPredefinitionData> GetPredefinitionDataOfObject(Guid objectCustomFieldId)
        {
            List <NASCustomFieldPredefinitionData> ret = null;
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();

                ObjectCustomField objectCustomField = session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);

                if (objectCustomField.ObjectCustomFieldDatas != null)
                {
                    ret = new List <NASCustomFieldPredefinitionData>();

                    foreach (var data in objectCustomField.ObjectCustomFieldDatas)
                    {
                        PredefinitionData predefinitionData = (PredefinitionData)data.CustomFieldDataId;

                        SalesInvoice salesInvoice =
                            session.GetObjectByKey <SalesInvoice>(predefinitionData.RefId);

                        if (salesInvoice != null)
                        {
                            NASCustomFieldPredefinitionData retItem = new NASCustomFieldPredefinitionData()
                            {
                                Code              = salesInvoice.Code,
                                Description       = String.Empty,
                                Name              = String.Empty,
                                PredefinitionType = Enum.GetName(typeof(MultiSelectionBuiltInTypeEnum),
                                                                 MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_INVOICE_SALE),
                                RefId = salesInvoice.BillId
                            };
                            ret.Add(retItem);
                        }
                    }
                }
                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
        public override List <NASCustomFieldPredefinitionData> GetPredefinitionDataOfObject(Guid objectCustomFieldId)
        {
            List <NASCustomFieldPredefinitionData> ret = null;
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();

                ObjectCustomField objectCustomField = session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);

                if (objectCustomField.ObjectCustomFieldDatas != null)
                {
                    ret = new List <NASCustomFieldPredefinitionData>();

                    foreach (var data in objectCustomField.ObjectCustomFieldDatas)
                    {
                        PredefinitionData predefinitionData = (PredefinitionData)data.CustomFieldDataId;

                        Organization organization =
                            session.GetObjectByKey <Organization>(predefinitionData.RefId);

                        if (organization != null)
                        {
                            NASCustomFieldPredefinitionData retItem = new NASCustomFieldPredefinitionData()
                            {
                                Code              = organization.Code,
                                Description       = organization.Description,
                                Name              = organization.Name,
                                PredefinitionType = Enum.GetName(typeof(MultiSelectionBuiltInTypeEnum),
                                                                 MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_CUSTOMER),
                                RefId = organization.OrganizationId
                            };
                            ret.Add(retItem);
                        }
                    }
                }
                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
コード例 #13
0
        public CustomFieldDataPreDefinitionData GetData(Guid objectCustomFieldId)
        {
            CustomFieldDataPreDefinitionData ret = null;
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();

                ObjectCustomField objectCustomField = session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);

                if (objectCustomField.ObjectCustomFieldDatas != null)
                {
                    ret = new CustomFieldDataPreDefinitionData();

                    foreach (var data in objectCustomField.ObjectCustomFieldDatas)
                    {
                        PredefinitionData predefinitionData = (PredefinitionData)data.CustomFieldDataId;

                        NAS.DAL.Inventory.Command.InventoryCommand Command =
                            session.GetObjectByKey <NAS.DAL.Inventory.Command.InventoryCommand>(predefinitionData.RefId);

                        if (Command != null)
                        {
                            CustomFieldDataPreDefinitionDataItem item = new CustomFieldDataPreDefinitionDataItem()
                            {
                                CustomFieldDataId = predefinitionData.CustomFieldDataId,
                                PredefinitionType = predefinitionData.PredefinitionType,
                                RefId             = predefinitionData.RefId,
                                DisplayText       = Command.Name
                            };
                            ret.Add(item);
                        }
                    }
                }
                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
コード例 #14
0
        public CustomFieldDataPreDefinitionData GetData(Guid objectCustomFieldId)
        {
            CustomFieldDataPreDefinitionData ret = null;
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();

                ObjectCustomField objectCustomField = session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);

                if (objectCustomField.ObjectCustomFieldDatas != null)
                {
                    ret = new CustomFieldDataPreDefinitionData();

                    foreach (var data in objectCustomField.ObjectCustomFieldDatas)
                    {
                        PredefinitionData predefinitionData = (PredefinitionData)data.CustomFieldDataId;

                        Item itemData = session.GetObjectByKey <Item>(predefinitionData.RefId);

                        if (itemData != null)
                        {
                            CustomFieldDataPreDefinitionDataItem item = new CustomFieldDataPreDefinitionDataItem()
                            {
                                CustomFieldDataId = predefinitionData.CustomFieldDataId,
                                PredefinitionType = predefinitionData.PredefinitionType,
                                RefId             = predefinitionData.RefId,
                                DisplayText       = String.Format("{0} - {1}", itemData.Code, itemData.Name)
                            };
                            ret.Add(item);
                        }
                    }
                }
                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
コード例 #15
0
        public bool AddItemToSelectedCustomFieldDataItems(UnitOfWork uow, Guid objectCustomFieldId, Guid customFieldDataStringId)
        {
            try
            {
                //Get ObjectCustomField by Id
                ObjectCustomField objectCustomField =
                    uow.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);

                if (objectCustomField == null)
                {
                    throw new Exception("The key is not exist in ObjectCustomField");
                }

                CustomFieldDataString customFieldDataString =
                    uow.GetObjectByKey <CustomFieldDataString>(customFieldDataStringId);

                if (customFieldDataString == null)
                {
                    throw new Exception("The key is not exist in CustomFieldDataString");
                }

                CriteriaOperator criteria = CriteriaOperator.And(
                    new BinaryOperator("ObjectCustomFieldId", objectCustomField),
                    new BinaryOperator("CustomFieldDataId", customFieldDataString)
                    );

                ObjectCustomFieldData ocfd = uow.FindObject <ObjectCustomFieldData>(criteria);

                if (ocfd == null)
                {
                    ocfd = new ObjectCustomFieldData(uow);
                    ocfd.ObjectCustomFieldId = objectCustomField;
                    ocfd.CustomFieldDataId   = customFieldDataString;
                }

                uow.CommitChanges();
                //else
                //    throw new Exception("The item has been added before");
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #16
0
 protected void cpnNASCustomFieldTypeSingleSelectionListControl_Callback(object sender, DevExpress.Web.ASPxClasses.CallbackEventArgsBase e)
 {
     string[] para = e.Parameter.Split(',');
     if (para[0].ToUpper().Equals("CLEAR"))
     {
         BO.UpdateCustomFieldData(ObjectCustomFieldId, Guid.Empty);
         GUIContext.State = new NASCustomFieldTypeSingleSelectionListControlDataViewingState(this);
         return;
     }
     else if (para[0].ToUpper().Equals("UPDATE"))
     {
         Guid stringCustomFieldDataId = Guid.Parse(cboSingleSelectionList.Value.ToString());
         if (BO.UpdateCustomFieldData(ObjectCustomFieldId, stringCustomFieldDataId))
         {
             if (DataUpdated != null)
             {
                 ObjectCustomField objectCustomField =
                     session.GetObjectByKey <ObjectCustomField>(ObjectCustomFieldId);
                 List <Guid> IdList = new List <Guid>();
                 IdList.Add(Guid.Parse(cboSingleSelectionList.Value.ToString()));
                 //Raise DataUpdated event
                 DataUpdated(this,
                             new CustomFieldControlEventArgs(
                                 ObjectCustomFieldId,
                                 objectCustomField.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId,
                                 objectCustomField.ObjectId.ObjectId,
                                 objectCustomField.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldId,
                                 CustomFieldControlEventArgs.CustomFieldCategoryEnum.LIST,
                                 null,
                                 BasicCustomFieldTypeEnum.NONE,
                                 null,
                                 IdList));
             }
         }
     }
     else if (para[0].ToUpper().Equals("EDIT"))
     {
         if (BeforeDataEditing != null)
         {
             BeforeDataEditing(this, new EventArgs());
         }
     }
     GUIContext.Request(para[0], this);
 }
コード例 #17
0
        public InventoryCommand GetAllocatedInputInventoryCommandByManualTransaction(Session session, Guid manualBookingTransactionId)
        {
            InventoryCommand ret = null;

            try
            {
                Transaction transaction =
                    session.GetObjectByKey <Transaction>(manualBookingTransactionId);
                TransactionObject transactionObject = transaction.TransactionObjects.First();
                if (transactionObject == null)
                {
                    return(null);
                }
                ObjectTypeCustomField objectTypeCustomField =
                    ObjectTypeCustomField.GetDefault(session, DefaultObjectTypeCustomFieldEnum.MANUAL_BOOKING_INPUT_INVENTORY_COMMAND);

                ObjectCustomField objectCustomField = transactionObject.ObjectId.ObjectCustomFields.Where(
                    r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId ==
                    objectTypeCustomField.ObjectTypeCustomFieldId).FirstOrDefault();
                if (objectCustomField == null)
                {
                    return(null);
                }

                ObjectCustomFieldData objectCustomFieldData =
                    objectCustomField.ObjectCustomFieldDatas.FirstOrDefault();
                if (objectCustomFieldData == null)
                {
                    return(null);
                }

                PredefinitionData predefinitionData =
                    (PredefinitionData)objectCustomFieldData.CustomFieldDataId;

                ret = session.GetObjectByKey <InventoryCommand>(predefinitionData.RefId);

                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #18
0
        /// <summary>
        /// Get supplier that allocated for the ReceiptVouchesTransaction
        /// </summary>
        /// <param name="session">DevExpress.Xpo.Session</param>
        /// <param name="transactionId">Id of type ReceiptVouchesTransaction</param>
        /// <returns></returns>
        public Organization GetAllocatedSupplier(Session session, Guid transactionId)
        {
            Organization ret = null;

            try
            {
                ReceiptVouchesTransaction transaction =
                    session.GetObjectByKey <ReceiptVouchesTransaction>(transactionId);
                TransactionObject transactionObject = transaction.TransactionObjects.First();
                if (transactionObject == null)
                {
                    return(null);
                }
                ObjectTypeCustomField objectTypeCustomField =
                    ObjectTypeCustomField.GetDefault(session, DefaultObjectTypeCustomFieldEnum.RECEIPT_VOUCHER_SUPPLIER);

                ObjectCustomField objectCustomField = transactionObject.ObjectId.ObjectCustomFields.Where(
                    r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId ==
                    objectTypeCustomField.ObjectTypeCustomFieldId).FirstOrDefault();
                if (objectCustomField == null)
                {
                    return(null);
                }

                ObjectCustomFieldData objectCustomFieldData =
                    objectCustomField.ObjectCustomFieldDatas.FirstOrDefault();
                if (objectCustomFieldData == null)
                {
                    return(null);
                }

                PredefinitionData predefinitionData =
                    (PredefinitionData)objectCustomFieldData.CustomFieldDataId;

                ret = session.GetObjectByKey <Organization>(predefinitionData.RefId);

                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #19
0
ファイル: ETLAccountingBO.cs プロジェクト: ewin66/dev
        public NAS.DAL.Nomenclature.Organization.Organization GetAllocatedCustomerByManualTransaction(Session session, Guid manualBookingTransactionId)
        {
            NAS.DAL.Nomenclature.Organization.Organization ret = null;
            try
            {
                Transaction transaction =
                    session.GetObjectByKey <Transaction>(manualBookingTransactionId);
                TransactionObject transactionObject = transaction.TransactionObjects.First();
                if (transactionObject == null)
                {
                    return(null);
                }
                ObjectTypeCustomField objectTypeCustomField =
                    ObjectTypeCustomField.GetDefault(session, DefaultObjectTypeCustomFieldEnum.MANUAL_BOOKING_CUSTOMER);

                ObjectCustomField objectCustomField = transactionObject.ObjectId.ObjectCustomFields.Where(
                    r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId ==
                    objectTypeCustomField.ObjectTypeCustomFieldId).FirstOrDefault();
                if (objectCustomField == null)
                {
                    return(null);
                }

                ObjectCustomFieldData objectCustomFieldData =
                    objectCustomField.ObjectCustomFieldDatas.FirstOrDefault();
                if (objectCustomFieldData == null)
                {
                    return(null);
                }

                PredefinitionData predefinitionData =
                    (PredefinitionData)objectCustomFieldData.CustomFieldDataId;

                ret = session.GetObjectByKey <NAS.DAL.Nomenclature.Organization.Organization>(predefinitionData.RefId);

                return(ret);
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #20
0
        public NAS.DAL.Invoice.PurchaseInvoice GetAllocatedPurchaseInvoiceByInventoryCommand(Session session, Guid inventoryCommandId)
        {
            NAS.DAL.Invoice.PurchaseInvoice ret = null;
            try
            {
                InventoryCommand command =
                    session.GetObjectByKey <InventoryCommand>(inventoryCommandId);
                InventoryCommandObject commandObject = command.InventoryCommandObjects.First();
                if (commandObject == null)
                {
                    return(null);
                }
                ObjectTypeCustomField objectTypeCustomField =
                    ObjectTypeCustomField.GetDefault(session, DefaultObjectTypeCustomFieldEnum.INVENTORY_IN_PURCHASE_INVOICE);

                ObjectCustomField objectCustomField = commandObject.ObjectId.ObjectCustomFields.Where(
                    r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId ==
                    objectTypeCustomField.ObjectTypeCustomFieldId).FirstOrDefault();
                if (objectCustomField == null)
                {
                    return(null);
                }

                ObjectCustomFieldData objectCustomFieldData =
                    objectCustomField.ObjectCustomFieldDatas.FirstOrDefault();
                if (objectCustomFieldData == null)
                {
                    return(null);
                }

                PredefinitionData predefinitionData =
                    (PredefinitionData)objectCustomFieldData.CustomFieldDataId;

                ret = session.GetObjectByKey <NAS.DAL.Invoice.PurchaseInvoice>(predefinitionData.RefId);

                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #21
0
        public NAS.DAL.Invoice.PurchaseInvoice GetAllocatedPurchaseInvoiceByManualTransaction(Session session, Guid manualBookingTransactionId)
        {
            NAS.DAL.Invoice.PurchaseInvoice ret = null;
            try
            {
                Transaction transaction =
                    session.GetObjectByKey <Transaction>(manualBookingTransactionId);
                TransactionObject transactionObject = transaction.TransactionObjects.First();
                if (transactionObject == null)
                {
                    return(null);
                }
                ObjectTypeCustomField objectTypeCustomField =
                    ObjectTypeCustomField.GetDefault(session, DefaultObjectTypeCustomFieldEnum.MANUAL_BOOKING_PURCHASE_INVOICE);

                ObjectCustomField objectCustomField = transactionObject.ObjectId.ObjectCustomFields.Where(
                    r => r.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId ==
                    objectTypeCustomField.ObjectTypeCustomFieldId).FirstOrDefault();
                if (objectCustomField == null)
                {
                    return(null);
                }

                ObjectCustomFieldData objectCustomFieldData =
                    objectCustomField.ObjectCustomFieldDatas.FirstOrDefault();
                if (objectCustomFieldData == null)
                {
                    return(null);
                }

                PredefinitionData predefinitionData =
                    (PredefinitionData)objectCustomFieldData.CustomFieldDataId;

                ret = session.GetObjectByKey <NAS.DAL.Invoice.PurchaseInvoice>(predefinitionData.RefId);

                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #22
0
        protected void cpnNASCustomFieldTypeMultiSelectionListControl_Callback(object sender, DevExpress.Web.ASPxClasses.CallbackEventArgsBase e)
        {
            string[] para = e.Parameter.Split(',');
            if (para[0].Equals("Update"))
            {
                List <object> selectedRows  = grdlookupItemMenu.GridView.GetSelectedFieldValues("CustomFieldDataId");
                List <Guid>   selectedItems = new List <Guid>();
                foreach (object row in selectedRows)
                {
                    selectedItems.Add(Guid.Parse(row.ToString()));
                }

                if (BO.UpdateSelecteCustomFieldAllDataItems(ObjectCustomFieldId, selectedItems))
                {
                    if (DataUpdated != null)
                    {
                        ObjectCustomField objectCustomField =
                            session.GetObjectByKey <ObjectCustomField>(ObjectCustomFieldId);
                        //Raise DataUpdated event
                        DataUpdated(this,
                                    new CustomFieldControlEventArgs(
                                        ObjectCustomFieldId,
                                        objectCustomField.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId,
                                        objectCustomField.ObjectId.ObjectId,
                                        objectCustomField.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldId,
                                        CustomFieldControlEventArgs.CustomFieldCategoryEnum.LIST,
                                        null,
                                        BasicCustomFieldTypeEnum.NONE,
                                        null,
                                        selectedItems));
                    }
                }
            }
            if (para[0].ToUpper().Equals("EDIT"))
            {
                if (BeforeDataEditing != null)
                {
                    BeforeDataEditing(this, new EventArgs());
                }
            }
            GUIContext.Request(para[0], this);
        }
コード例 #23
0
        private void LinkVoucherWithBill(Session _session, Guid _billId, Vouches voucher)
        {
            ObjectCustomFieldBO objectCustomFieldBO = new ObjectCustomFieldBO();

            ObjectTypeCustomField defaultObjectTypeCustomField =
                ObjectTypeCustomField.GetDefault(_session, DefaultObjectTypeCustomFieldEnum.RECEIPT_VOUCHER_SALE_INVOICE);

            ObjectCustomField objectCustomField = voucher.VoucherObjects.First().ObjectId.ObjectCustomFields
                                                  .Where(r => r.ObjectTypeCustomFieldId.Equals(defaultObjectTypeCustomField)).First();

            List <Guid> billId = new List <Guid>();

            billId.Add(_billId);

            objectCustomFieldBO.UpdatePredefinitionData(
                objectCustomField.ObjectCustomFieldId,
                billId,
                PredefinitionCustomFieldTypeEnum.SINGLE_CHOICE_LIST_INVOICE_SALE,
                CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_MASTER_READONLY);
        }
コード例 #24
0
ファイル: ObjectBO.cs プロジェクト: ewin66/dev
        public bool UpdatePredefinitionData(Guid cmsObjectId,
                                            Guid objectTypeCustomFieldId,
                                            IEnumerable <Guid> refIds,
                                            PredefinitionCustomFieldTypeEnum predefinitionCustomFieldType,
                                            CustomFieldTypeFlag customFieldTypeFlag)
        {
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();
                ObjectCustomFieldDataPreDefinitionBO objectCustomFieldDataPreDefinitionBO =
                    new ObjectCustomFieldDataPreDefinitionBO();

                ObjectCustomFieldBO objectCustomFieldBO = new ObjectCustomFieldBO();
                ObjectCustomField   objectCustomField   =
                    objectCustomFieldBO.GetObjectCustomField(session, cmsObjectId, objectTypeCustomFieldId);
                if (objectCustomField == null)
                {
                    throw new Exception("Could not found ObjectCustomField");
                }

                return(objectCustomFieldDataPreDefinitionBO.UpdateCustomFieldData(
                           objectCustomField.ObjectCustomFieldId,
                           refIds,
                           predefinitionCustomFieldType,
                           customFieldTypeFlag));
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
コード例 #25
0
 public bool NASCustomFieldTypeBuiltInSingleSelectionListControlDataEditingState_PreTransitionCRUD(string transition)
 {
     if (transition.ToUpper()
         .Equals(NASCustomFieldTypeControlStateTransition.UpdateTransition.TransitionName))
     {
         //Validate flag
         ObjectCustomField objectCustomField =
             session.GetObjectByKey <ObjectCustomField>(ObjectCustomFieldId);
         if (!objectCustomField.CustomFieldType.Equals(CustomFieldTypeFlag.CUSTOM_FIELD_TYPE_DEFAULT.Value))
         {
             return(false);
         }
         NASCustomFieldPredefinitionData selectedItem =
             NASCustomFieldTypeBuiltInSingleSelectionListStrategy.GetSelectedPredefinitionDataFromList(cboBuiltInSingleSelectionList);
         //Update data of custom field by ObjectCustomFieldId
         if (NASCustomFieldTypeBuiltInSingleSelectionListStrategy.UpdatePredefinitionDataForObject(ObjectCustomFieldId, selectedItem))
         {
             if (DataUpdated != null)
             {
                 List <NASCustomFieldPredefinitionData> builtInData = new List <NASCustomFieldPredefinitionData>();
                 builtInData.Add(selectedItem);
                 //Raise DataUpdated event
                 DataUpdated(this,
                             new CustomFieldControlEventArgs(
                                 ObjectCustomFieldId,
                                 objectCustomField.ObjectTypeCustomFieldId.ObjectTypeCustomFieldId,
                                 objectCustomField.ObjectId.ObjectId,
                                 objectCustomField.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldId,
                                 CustomFieldControlEventArgs.CustomFieldCategoryEnum.BUILT_IN,
                                 null,
                                 BasicCustomFieldTypeEnum.NONE,
                                 builtInData,
                                 null));
             }
         }
     }
     return(true);
 }
コード例 #26
0
        public CustomFieldDataString GetCustomFieldData(Session session, Guid objectCustomFieldId)
        {
            CustomFieldDataString customFieldData = null;

            try
            {
                session = XpoHelper.GetNewSession();
                //Get ObjectCustomField by Id
                ObjectCustomField objectCustomField =
                    session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);
                if (objectCustomField.ObjectCustomFieldDatas.FirstOrDefault() != null)
                {
                    //Return string data
                    return((CustomFieldDataString)
                           objectCustomField.ObjectCustomFieldDatas.FirstOrDefault().CustomFieldDataId);
                }
                return(customFieldData);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #27
0
        public bool UpdateSelecteCustomFieldAllDataItems(Guid objectCustomFieldId, List <Guid> list)
        {
            using (UnitOfWork uow = XpoHelper.GetNewUnitOfWork())
            {
                try
                {
                    ObjectCustomField objectCustomField =
                        uow.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);

                    if (objectCustomField == null)
                    {
                        throw new Exception("The key is not exist in ObjectCustomField");
                    }

                    int cnt = objectCustomField.ObjectCustomFieldDatas.Count;
                    if (objectCustomField.ObjectCustomFieldDatas != null && cnt > 0)
                    {
                        uow.Delete(objectCustomField.ObjectCustomFieldDatas);
                        uow.FlushChanges();
                    }

                    foreach (Guid g in list)
                    {
                        AddItemToSelectedCustomFieldDataItems(uow, objectCustomFieldId, g);
                    }

                    uow.FlushChanges();

                    objectCustomField =
                        uow.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);

                    string displayText = String.Empty;
                    foreach (var item in objectCustomField.ObjectCustomFieldDatas)
                    {
                        if (objectCustomField.ObjectCustomFieldDatas.IndexOf(item) == 0)
                        {
                            displayText = ((CustomFieldDataString)item.CustomFieldDataId).StringValue;
                        }
                        else
                        {
                            displayText += String.Format(";{0}",
                                                         ((CustomFieldDataString)item.CustomFieldDataId).StringValue);
                        }
                    }

                    ObjectBO objectBO = new ObjectBO();
                    DynamicObjectListSerializeDataItem dataitem = new DynamicObjectListSerializeDataItem()
                    {
                        ObjectCustomFieldId = objectCustomFieldId,
                        CustomFieldName     = objectCustomField.ObjectTypeCustomFieldId.CustomFieldId.Name,
                        CustomFieldData     = displayText
                    };
                    objectBO.SetDynamicObjectListItem(uow, objectCustomField.ObjectId.ObjectId, dataitem);
                    uow.CommitChanges();
                    return(true);
                }
                catch
                {
                    //uow.ExplicitRollbackTransaction();
                    throw;
                }
            }
        }
コード例 #28
0
        protected void customFieldDataGridView_DataUpdated(object sender,
                                                           ERPSystem.CustomField.GUI.Control.CustomFieldControlEventArgs args)
        {
            using (UnitOfWork uow = XpoHelper.GetNewUnitOfWork())
            {
                //Get all journal of transaction
                NAS.DAL.Accounting.Journal.Transaction transaction =
                    uow.GetObjectByKey <NAS.DAL.Accounting.Journal.Transaction>(TransactionId);
                var cmsObjects =
                    transaction.GeneralJournals
                    .Where(r => r.RowStatus >= 0)
                    .Select(r => r.GeneralJournalObjects.FirstOrDefault())
                    .Select(r => r.ObjectId);

                ObjectTypeCustomField objectTypeCustomField =
                    uow.GetObjectByKey <ObjectTypeCustomField>(args.ObjectTypeCustomFieldId);

                if (cmsObjects != null)
                {
                    ObjectCustomFieldBO objectCustomFieldBO = new ObjectCustomFieldBO();
                    foreach (var cmsObject in cmsObjects)
                    {
                        ObjectCustomField objectCustomField =
                            cmsObject.ObjectCustomFields
                            .Where(r => r.ObjectTypeCustomFieldId == objectTypeCustomField)
                            .FirstOrDefault();
                        if (objectCustomField != null)
                        {
                            //Copy new data to all jounal of the transaction
                            switch (args.CustomFieldCategory)
                            {
                            case CustomFieldControlEventArgs.CustomFieldCategoryEnum.BASIC:
                                objectCustomFieldBO.UpdateBasicData(
                                    objectCustomField.ObjectCustomFieldId,
                                    args.NewBasicDataValue,
                                    args.BasicCustomFieldType);
                                break;

                            case CustomFieldControlEventArgs.CustomFieldCategoryEnum.LIST:
                                objectCustomFieldBO.UpdateUserDefinedListData(
                                    objectCustomField.ObjectCustomFieldId,
                                    args.NewCustomFieldDataIds);
                                break;

                            case CustomFieldControlEventArgs.CustomFieldCategoryEnum.BUILT_IN:
                                NASCustomFieldPredefinitionData temp = args.NewBuiltInData.FirstOrDefault();
                                if (temp != null)
                                {
                                    PredefinitionCustomFieldTypeEnum predefinitionType =
                                        (PredefinitionCustomFieldTypeEnum)Enum
                                        .Parse(typeof(PredefinitionCustomFieldTypeEnum), temp.PredefinitionType);
                                    objectCustomFieldBO.UpdatePredefinitionData(
                                        objectCustomField.ObjectCustomFieldId,
                                        args.NewBuiltInData.Select(r => r.RefId).ToList(),
                                        predefinitionType);
                                }
                                break;

                            default:
                                break;
                            }
                        }
                    }
                }
            }
        }
コード例 #29
0
        public bool UpdateCustomFieldData(Guid objectCustomFieldId, Guid customFieldDataStringId)
        {
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();
                //Get ObjectCustomField by Id
                session.BeginTransaction();

                ObjectCustomField objectCustomField =
                    session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);

                if (objectCustomField == null)
                {
                    throw new Exception("The key is not exist in ObjectCustomField");
                }

                CustomFieldDataString customFieldDataString =
                    session.GetObjectByKey <CustomFieldDataString>(customFieldDataStringId);

                if (customFieldDataString == null)
                {
                    session.Delete(objectCustomField.ObjectCustomFieldDatas);
                    DynamicObjectListSerializeDataItem dataitem = new DynamicObjectListSerializeDataItem()
                    {
                        ObjectCustomFieldId = objectCustomFieldId,
                        CustomFieldName     = null,
                        CustomFieldData     = null
                    };
                    ObjectBO objectBO = new ObjectBO();
                    objectBO.SetDynamicObjectListItem(session, objectCustomField.ObjectId.ObjectId, dataitem);
                    //throw new Exception("The key is not exist in CustomFieldDataString");
                }
                else
                {
                    if (objectCustomField.ObjectCustomFieldDatas != null && objectCustomField.ObjectCustomFieldDatas.Count > 0)
                    {
                        for (int i = 0; i < objectCustomField.ObjectCustomFieldDatas.Count; i++)
                        {
                            objectCustomField.ObjectCustomFieldDatas[i].Delete();
                        }
                    }
                    ObjectCustomFieldData ocfd = new ObjectCustomFieldData(session);
                    ocfd.ObjectCustomFieldId = objectCustomField;
                    ocfd.CustomFieldDataId   = customFieldDataString;
                    ocfd.Save();

                    ObjectBO objectBO = new ObjectBO();
                    DynamicObjectListSerializeDataItem dataitem = new DynamicObjectListSerializeDataItem()
                    {
                        ObjectCustomFieldId = objectCustomFieldId,
                        CustomFieldName     = customFieldDataString.CustomFieldId.Name,
                        CustomFieldData     = customFieldDataString.StringValue
                    };
                    objectBO.SetDynamicObjectListItem(session, objectCustomField.ObjectId.ObjectId, dataitem);
                }
                session.CommitTransaction();
                return(true);
            }
            catch (Exception)
            {
                session.RollbackTransaction();
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
コード例 #30
0
        public void InstantiateIn(System.Web.UI.Control container)
        {
            try
            {
                using (Session session = XpoHelper.GetNewSession())
                {
                    GridViewDataItemTemplateContainer itemContainer = (GridViewDataItemTemplateContainer)container;
                    ASPxGridView gridview = (ASPxGridView)itemContainer.Grid;

                    NASCustomFieldDataGridView userControl = (NASCustomFieldDataGridView)gridview.Parent;
                    //if (userControl.isAddCustomFieldControls)
                    //    return;

                    Guid ObjectCustomFieldId = (Guid)itemContainer.KeyValue;
                    //Get ObjectCustomField
                    ObjectCustomField objectCustomField =
                        session.GetObjectByKey <ObjectCustomField>(ObjectCustomFieldId);

                    //Mark to re-bind gridview when the custom field was deleted
                    if (objectCustomField.ObjectTypeCustomFieldId == null)
                    {
                        throw new Exception("Một hay nhiều trường động bị xóa. Xin hãy nhấn 'F5' để làm mới.");
                    }

                    string customFieldType =
                        objectCustomField.ObjectTypeCustomFieldId.CustomFieldId.CustomFieldTypeId.Code;

                    string uniquePart = ObjectCustomFieldId.ToString().Replace("-", "");

                    string controlID = String.Format("{0}_{1}_{2}",
                                                     uniquePart,
                                                     userControl.ViewStateControlId,
                                                     customFieldType);

                    //Check control is exist
                    int countControlExist = NASCustomFieldTypeControls.Count(
                        r => ((System.Web.UI.Control)r).ID.Split('_')[0].Equals(uniquePart));

                    System.Web.UI.Control customFieldControl = null;

                    if (countControlExist != 0)
                    {
                        //Add existed control to container
                        customFieldControl = (System.Web.UI.Control)NASCustomFieldTypeControls.FirstOrDefault(
                            r => ((System.Web.UI.Control)r).ID.Split('_')[0].Equals(uniquePart));
                        if (customFieldControl != null)
                        {
                            NASCustomFieldTypeControls.Remove((INASCustomFieldTypeControl)customFieldControl);
                        }
                    }

                    #region Create controls dynamically
                    switch (customFieldType)
                    {
                        #region Basic custom field types
                    case "STRING":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeStringControl/NASCustomFieldTypeStringControl.ascx")
                            as NASCustomFieldTypeStringControl.NASCustomFieldTypeStringControl;
                        break;

                    case "DATETIME":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeDateTimeControl/NASCustomFieldTypeDateTimeControl.ascx")
                            as NASCustomFieldTypeDateTimeControl.NASCustomFieldTypeDateTimeControl;
                        break;

                    case "INTEGER":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeIntegerControl/NASCustomFieldTypeIntegerControl.ascx")
                            as NASCustomFieldTypeIntegerControl.NASCustomFieldTypeIntegerControl;
                        break;

                    case "FLOAT":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeFloatControl/NASCustomFieldTypeFloatControl.ascx")
                            as NASCustomFieldTypeFloatControl.NASCustomFieldTypeFloatControl;
                        break;

                    case "SINGLE_CHOICE_LIST":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeSingleSelectionListControl/NASCustomFieldTypeSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeSingleSelectionListControl.NASCustomFieldTypeSingleSelectionListControl;
                        break;

                    case "MULTI_CHOICE_LIST":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeMultiSelectionListControl/NASCustomFieldTypeMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeMultiSelectionListControl.NASCustomFieldTypeMultiSelectionListControl;
                        break;
                        #endregion

                        #region Single choice built-in types
                    case "SINGLE_CHOICE_LIST_MANUFACTURER":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_MANUFACTURER).Create());
                        break;

                    case "SINGLE_CHOICE_LIST_ORGANIZATION":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_ORGANIZATION).Create());
                        break;

                    case "SINGLE_CHOICE_LIST_DEPARTMENT":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_DEPARTMENT).Create());
                        break;

                    case "SINGLE_CHOICE_LIST_PERSON":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_PERSON).Create());
                        break;

                    case "SINGLE_CHOICE_LIST_CUSTOMER":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_CUSTOMER).Create());
                        break;

                    case "SINGLE_CHOICE_LIST_SUPPLIER":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_SUPPLIER).Create());
                        break;

                    case "SINGLE_CHOICE_LIST_INVENTORY":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_INVENTORY).Create());
                        break;

                    case "SINGLE_CHOICE_LIST_LOT":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_LOT).Create());
                        break;

                    case "SINGLE_CHOICE_LIST_INVOICE_PURCHASE":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_INVOICE_PURCHASE).Create());
                        break;

                    case "SINGLE_CHOICE_LIST_INVOICE_SALE":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_INVOICE_SALE).Create());
                        break;

                    case "SINGLE_CHOICE_LIST_ITEM":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_ITEM).Create());
                        break;

                    /*2014/03/01 Duc.Vo INS*/
                    case "SINGLE_CHOICE_LIST_INPUT_INVENTORY_COMMAND":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInSingleSelectionListControl/NASCustomFieldTypeBuiltInSingleSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl;
                        ((NASCustomFieldTypeBuiltInSingleSelectionListControl.NASCustomFieldTypeBuiltInSingleSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInSingleSelectionListStrategy(NASCustomFieldTypeBuiltInSingleSelectionListStrategyCreators
                                                                                 .GetCreator(SingleSelectionBuiltInTypeEnum.SINGLE_CHOICE_LIST_INPUT_INVENTORY_COMMAND).Create());
                        break;
                        /*2014/03/01 Duc.Vo INS*/
                        #endregion

                        #region Multi choice built-in types
                    case "MULTI_CHOICE_LIST_MANUFACTURER":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_MANUFACTURER).Create());
                        break;

                    case "MULTI_CHOICE_LIST_ORGANIZATION":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_ORGANIZATION).Create());
                        break;

                    case "MULTI_CHOICE_LIST_DEPARTMENT":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_DEPARTMENT).Create());
                        break;

                    case "MULTI_CHOICE_LIST_PERSON":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_PERSON).Create());
                        break;

                    case "MULTI_CHOICE_LIST_CUSTOMER":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_CUSTOMER).Create());
                        break;

                    case "MULTI_CHOICE_LIST_SUPPLIER":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_SUPPLIER).Create());
                        break;

                    case "MULTI_CHOICE_LIST_INVENTORY":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_INVENTORY).Create());
                        break;

                    case "MULTI_CHOICE_LIST_LOT":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_LOT).Create());
                        break;

                    case "MULTI_CHOICE_LIST_INVOICE_PURCHASE":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_INVOICE_PURCHASE).Create());
                        break;

                    case "MULTI_CHOICE_LIST_INVOICE_SALE":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_INVOICE_SALE).Create());
                        break;

                    case "MULTI_CHOICE_LIST_ITEM":
                        customFieldControl =
                            gridview.Page.LoadControl("~/ERPSystem/CustomField/GUI/Control/NASCustomFieldTypeBuiltInMultiSelectionListControl/NASCustomFieldTypeBuiltInMultiSelectionListControl.ascx")
                            as NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl;
                        ((NASCustomFieldTypeBuiltInMultiSelectionListControl.NASCustomFieldTypeBuiltInMultiSelectionListControl)customFieldControl)
                        .SetNASCustomFieldTypeBuiltInMultiSelectionListStrategy(NASCustomFieldTypeBuiltInMultiSelectionListStrategyCreators
                                                                                .GetCreator(MultiSelectionBuiltInTypeEnum.MULTI_CHOICE_LIST_ITEM).Create());
                        break;
                        #endregion

                    default:
                        break;
                    }
                    #endregion
                    if (customFieldControl != null)
                    {
                        customFieldControl.ID = controlID;
                        ((INASCustomFieldTypeControl)customFieldControl).DataUpdated +=
                            new CustomFieldControlDataUpdatedEventHandler(userControl.customFieldControl_DataUpdated);
                        ((INASCustomFieldTypeControl)customFieldControl).BeforeDataEditing +=
                            new CustomFieldControlBeforeDataEditingEventHandler(userControl.customFieldControl_BeforeDataEditing);
                        NASCustomFieldTypeControls.Add((INASCustomFieldTypeControl)customFieldControl);
                        container.Controls.Add(customFieldControl);
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }