Ejemplo n.º 1
0
        public bool UpdateCustomFieldData(Guid objectCustomFieldId,
                                          IEnumerable <Guid> refIds,
                                          PredefinitionCustomFieldTypeEnum preDefinitionType,
                                          CustomFieldTypeFlag flag)
        {
            bool       ret = false;
            UnitOfWork uow = null;

            try
            {
                uow = XpoHelper.GetNewUnitOfWork();

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

                objectCustomField.CustomFieldType = flag.Value;

                uow.FlushChanges();

                NAS.DAL.CMS.ObjectDocument.CustomField customField =
                    objectCustomField.ObjectTypeCustomFieldId.CustomFieldId;

                //Delete all old data
                uow.Delete(objectCustomField.ObjectCustomFieldDatas);
                uow.FlushChanges();
                //Insert new data for object
                if (refIds != null)
                {
                    foreach (var refId in refIds)
                    {
                        PredefinitionData predefinitionData = new PredefinitionData(uow)
                        {
                            CustomFieldId     = customField,
                            PredefinitionType =
                                Enum.GetName(typeof(PredefinitionCustomFieldTypeEnum), preDefinitionType),
                            RefId = refId
                        };
                        //predefinitionData.Save();

                        ObjectCustomFieldData objectCustomFieldData = new ObjectCustomFieldData(uow)
                        {
                            CustomFieldDataId   = predefinitionData,
                            ObjectCustomFieldId = objectCustomField
                        };
                        //objectCustomFieldData.Save();

                        uow.FlushChanges();
                    }
                }

                ICustomFieldDataPreDefinitionDataGetter getter = GetDataGetter(preDefinitionType);
                ObjectBO objectBO = new ObjectBO();
                DynamicObjectListSerializeDataItem dataitem = new DynamicObjectListSerializeDataItem()
                {
                    ObjectCustomFieldId = objectCustomFieldId,
                    CustomFieldName     = customField.Name,
                    CustomFieldData     = getter.GetData(objectCustomFieldId).ToString()
                };
                objectBO.SetDynamicObjectListItem(uow, objectCustomField.ObjectId.ObjectId, dataitem);

                uow.CommitChanges();
                ret = true;
                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (uow != null)
                {
                    uow.Dispose();
                }
            }
        }
        public static ICustomFieldDataPreDefinitionDataGetter Create(PreDefinitionDataGetterType type)
        {
            ICustomFieldDataPreDefinitionDataGetter ret = null;

            switch (type)
            {
            case PreDefinitionDataGetterType.MANUFACTURER:
                ret = new PreDefinitionManufacturerDataGetter();
                break;

            case PreDefinitionDataGetterType.ORGANIZATION:
                ret = new PreDefinitionOrganizationDataGetter();
                break;

            case PreDefinitionDataGetterType.DEPARTMENT:
                ret = new PreDefinitionDepartmentDataGetter();
                break;

            case PreDefinitionDataGetterType.PERSON:
                ret = new PreDefinitionPersonDataGetter();
                break;

            case PreDefinitionDataGetterType.CUSTOMER:
                ret = new PreDefinitionCustomerDataGetter();
                break;

            case PreDefinitionDataGetterType.SUPPLIER:
                ret = new PreDefinitionSupplierDataGetter();
                break;

            case PreDefinitionDataGetterType.INVENTORY:
                ret = new PreDefinitionInventoryDataGetter();
                break;

            case PreDefinitionDataGetterType.LOT:
                ret = new PreDefinitionLotDataGetter();
                break;

            case PreDefinitionDataGetterType.INVOICE_SALE:
                ret = new PreDefinitionSaleInvoiceDataGetter();
                break;

            case PreDefinitionDataGetterType.INVOICE_PURCHASE:
                ret = new PreDefinitionPurchaseInvoiceDataGetter();
                break;

            case PreDefinitionDataGetterType.ITEM:
                ret = new PreDefinitionItemDataGetter();
                break;

            /*2014/03/03 Duc.Vo INS*/
            case PreDefinitionDataGetterType.INPUT_INVENTORY_COMMAND:
                ret = new PreDefinitionInputInventoryCommandDataGetter();
                break;

            /*2014/03/03 Duc.Vo INS*/
            default:
                break;
            }
            return(ret);
        }